能力值:
( LV2,RANK:10 )
|
-
-
2 楼
附上测试用的例子
本例子中有一个类名为 com.example.packlite.test
被替换为 com.example.packlite.com1 后
apktool 和 baksmali 工具无法逆向出 smali 文件
crypt_test.rar
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
不能阻止dex2jar啊
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
本来想用垃圾java 类 文件目录重名来实现防止 dex2jar ,确实是防止了dex2jar,但是实现后程序无法正常安装了,
看来字节码加密靠谱些,谁丢个雏形码吧
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
使用系统保留名,自带混淆工具也支持,加参数-classobfuscationdictionary xxx.txt。比如使用sdk\tools\proguard\examples\dictionaries\windows.txt
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
感谢lz的工具。
不过在使用中发现一个问题,dex经过加密后,重新放回apk里,签名,安装时却报错了
Failure [INSTALL_FAILED_DEXOPT]
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
有个方法可以实现 dex2jar 失败,实现是这样的,在编写代码时加入我们代码中并不会调用的垃圾类,或者代码执行正常情况下不会执行的异常处理代码,然后对这些代码任意处理成非法的Java字节码,则apk正常执行,而dex2jar 却要倒霉!
过两天我放个垃圾类处理工具吧
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
[QUOTE=gudboy;1212142]感谢lz的工具。
不过在使用中发现一个问题,dex经过加密后,重新放回apk里,签名,安装时却报错了
Failure [INSTALL_FAILED_DEXOPT][/QUOTE]
这个工具只是一个示例,只能加密一个类,加密多了,Java 类就出现重名了,回头我改进一个支持多类加密的吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我也是加密了一个类,但是安装时还是会提示Failure [INSTALL_FAILED_DEXOPT]
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
[QUOTE=gudboy;1212375]我也是加密了一个类,但是安装时还是会提示Failure [INSTALL_FAILED_DEXOPT][/QUOTE]
我自己试了下,确实有这个问题,我在虚拟机里安装时得到的信息是这个。
08-20 03:46:25.673: E/dalvikvm(302): Out-of-order string_ids: 'Lcom/Utility/con;' then 'Lcom/Utility/a/g;'
08-20 03:46:25.673: E/dalvikvm(302): Trouble with item 558 @ offset 0x928
08-20 03:46:25.683: E/dalvikvm(302): Cross-item verify of section type 0001 failed
08-20 03:46:25.683: E/dalvikvm(302): ERROR: Byte swap + verify failed
从谷歌代码中搜索得到的是修改了字符串后,没有重新排序字符串,正在修改中。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
lz,如果更改方法名、类名使之随机,字符串将需要重新排序,很多未改变的普通字符串(非类名,非方法名)id都将会改变,那代码中会按原来的id去引用这个字符串,那是不是会引起错误?
而且更改类名、方法名,字符串重新排序,methodid / filedid/ classdef 都将需要做相应的重新排序,这感觉要读出dex所有的结构并存储,改好之后,再按一定顺序写入新的dex,感觉难度好大啊。
不知道lz是怎么解决的,能不能提示下,
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我也是加密了一个类,但是安装时还是会提示Failure [INSTALL_FAILED_DEXOPT]
|
|
|