上一节我们介绍了一种利用无效字节码指令引发逆向工具崩溃的方法。(http://www.oschina.net/question/2285044_237431)可惜的是大部分反编译工具已经修复了该bug。但是如果我们插入有效的字节码指令,但是后跟无效的数据引用,结果会是怎么样呢?
使用C32asm,以十六进制的方式打开dex文件。按快捷键“Ctrl + G”,定位到“0003A2A4”
把“62 00 02 04 1A 01 8E 07 6E 20 19 10 10 00”改为“12 01 38 01 03 00 1A 00 FF FF 00 00 00 00”(不清楚的可以看上一篇文章)
Opcodes解释:
12 01 // const/4 v1, 0 //v1=0
38 01 03 00 // if-eqz v1, loc_3A2AC //if(v1==0) 跳转到 loc_3A2AC:
1A 00 FF FF // const-string v0,(不存在的引用 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
Ijiami signer:http://t.cn/R2tfvdP (下载此签名工具需登录注册http://t.cn/R2tfAiC)
一种利用无效字节码指令引发逆向工具崩溃的方法。(http://www.oschina.net/question/2285044_237431)不错的分享,支持一下。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。