android proguard也有弱点
前段时间在看一个用proguard加过保护的程序,发现proguard的作用:
1)混淆类名,全变成了a.a.a.a.x
2)混淆了函数名
3)混淆了字符串
看代码比较恼火,而且,如果用jd-gui反编译也会出错。
但是,不管怎么样,proguard还是有很大的缺点的,比如
String test = “winsunxu”;
经过progurd保护之后,可能是一堆乱码“啊啊啊啊啊啊啊啊的”。
对于,有对话框提升你输入有误的时候,字符串可是一个很重要的指引,因为代码上下文逻辑肯定在附近。
这个时候,你发现明文字符串都是“啊啊啊啊啊啊啊啊的”这种形式,不好定位到对应的弹对话框的地方,一种方法,就是
自己写个小程序,用proguard保护,然后,看看对应的字符串成什么样子了,这个时候就知道了。
比如,A.apk,里面有字符串“啊啊啊啊啊啊啊啊的”,你不知道什么意思。(事实上,对应"输入有误")。
但是,你可以自己写个B.apk,然后用proguard保护,看看"输入有误",对应progurad之后是什么字符串,然后,就用这个加密后的字符串来定位。
progaurd对应的加密不是可变的。不同时间,两次相同的输入,得出一样的输出。