隐藏代码中文字值的主要现有方法是什么,以便仅使用 hexdumper 或反编译器就不容易跟踪它们?
例如,而不是这样编码:
static final int MY_VALUE = 100;
我们可以有:
static final int MY_VALUE = myFunction1();
private int myFunction1(){
int i = 23;
i += 8 << 4;
for(int j = 0; j < 3; j++){
i-= (j<<1);
}
return myFunction2(i);
}
private int myFunction2(int i){
return i + 19;
}
这只是我们正在尝试做的一个例子。(是的,我知道,编译器可能会优化它并预先计算常量)。
免责声明:我知道这根本不会提供任何额外的安全性,但它会使逆向工程的代码更加晦涩(或有趣)。这样做的目的只是迫使攻击者调试程序,并在上面浪费时间。请记住,我们这样做只是为了好玩。