X hits on this document

362 views

0 shares

0 downloads

0 comments

69 / 120

Table 8.2. Jad decompilation of ProGuard obfuscated bytecode. 01: public class CheckLimitation {

02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15:

private static int a = 5; private ArrayList b;

public CheckLimitation() {

b = new ArrayList(); }

public boolean a(String s) { if (b.size() >= a) { System.out.println("[Error] The maximum number of passwords

has been exceeded!");

16: 17: 18: 19: 20:

return false; } else { b.add(s); System.out.println((new StringBuilder()).append("[Info]

password(").append(s).append(") added successfully.").toString());

21: 22:

}

return true;

23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:

}

}

public static void main(String args[]) { CheckLimitation checklimitation = new CheckLimitation(); boolean flag = true; for(int i = 0; i < args.length && flag; i++) if(!checklimitation.a(args[i])) flag = false;

}

method; it's not clear why the variable “loop” in the main method has been changed to

“flag” since it's still a very descriptive name.

Next we further obfuscate the bytecode by applying transformation (2) String

Encryption, and we do so by employing the “String Encoder” obfuscation in SandMark to

protect the string literals in the program from being understood by a reverser. The “String

61

Document info
Document views362
Page views363
Page last viewedThu Dec 08 04:58:31 UTC 2016
Pages120
Paragraphs2913
Words25794

Comments