利用无效字节码指令引发逆向工具崩溃(二)
上一节我们介绍了一种利用无效字节码指令引发逆向工具崩溃的方法。(http://blog.csdn.net/lz201234/article/details/46004573)可惜的是大部分反编译工具已经修复了该bug。但是如果我们插入有效的字节码指令,但是后跟无效的数据引用,结果会是怎么样呢?
使用C32asm,以十六进制的方式打开dex文件。按快捷键“Ctrl+G”,定位到“0003A2A4”
把“620002041A018E076E2019101000”改为“1201380103001A00FFFF00000000”(不清楚的可以看上一篇文章)
Opcodes解释:
1201 //const/4v1,0 //v1=0
38010300 //if-eqzv1,loc_3A2AC //if(v1==0)跳转到loc_3A2AC:
1A00FFFF //const-stringv0,(不存在的引用FFFF)
// 本行代码被跳过,永远不会执行
// loc_3A2AC:
保存dex。把修改后的dex文件拖入DexFixer进行修复。
用修复后的dex覆盖原apk中的dex文件。
删除META-INF签名文件
使用签名工具,对apk重新签名。
Apk安装到手机,运行成功
下面试试反逆向工具的效果
Apktool:(反编译失败)
Dex2jar:(反编译失败)
用到的工具:
IDA:http://pan.baidu.com/share/link?shareid=132208&uk=1795434040
C32Asm:http://www.crsky.com/soft/3128.html
DexFixer:http://bbs.pediy.com/showthread.php?p=1158816
Ijiamisigner:http://t.cn/R2tfvdP (下载此签名工具需登录注册http://t.cn/R2tfAiC)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。