From:http://bbs.pediy.com/showthread.php?t=203776 之前做了一个Android dex的通用脱壳器,主要思想是以AOP的模式对运行时ART和DVM进行定制,附件中是在HITCON上演讲的ppt。 源码地址:https://github.com/zyq8709/DexHunter 代码较挫,大家可以看看,有兴趣的可以继续在上边改一改:)。 github上有一段demo视频和相关的样本,大家有兴趣也可以试试。 测试了国内主流的6款在线加固服务,可以正常脱下来。有其他的样本的也可以试试,发现问题的话请联系我。 为了方便大家阅读,我把对运行时的关键修改摘了出来。class_linker.txt 是对ART的修改,dalvik_system_DexFile.txt是对DVM的修改。 demo视频下载:http://pan.baidu.com/s/1o6Mjwim 密码:x1ay 因为那个视频是H264编码的MP4,所以可能比较挑播放器,大家可以换着试试,比如kmplayer等。 我传了一份到优酷,视频地址:http://v.youku.com/v_show/id_XMTMyNDc4OTQwMA==.html ps:有兴趣继续在上边进一步开发的话,可以联系我,大家一块打造一个更好开源的工具。 pps: 有朋友反馈脱壳时会崩溃,我在github上也有说明,主要是最新的加固会hook掉libc里边的一些函数导致崩溃。所以在脱最新的加固时请不要使用提供的镜像,麻烦自己先修改源码把fwrite等libc调用替换为直接的系统调用。 from : http://www.52pojie.cn/thread-409916-1-1.html 很久以前,zyqqyz在看雪上面发了一个非常强大的Android通用脱壳机。我总想着某天来写写该如何使用这个东东。。结果就一直拖到今天了。唉,拖延症不能忍。。 首先,是原帖链接: http://bbs.pediy.com/showthread.php?t=203776&highlight=dexHunter 下面是GitHub的链接: https://github.com/zyq8709/DexHunter 这个其实是基于android-4.4.3_r1.1 (KTU84M) 魔改而成rom,在脱壳方面显得十分强大,当然,有兴趣的话可以自行下载相关代码进行编译。不过对于我们这种小白来说其实只要知道怎么用就可以了。 GitHub上提供了一个已经修改好的rom了。可以直接下载下来在AVD中打开使用。 最为简单的安装方法便是在SDK Manager中下载 API 19,armV7的rom,然后直接用GitHub中的rom替换掉相关的img,就可以用AVD来安装了。当然,其实只要手动配置一些config.ini与hardware-qemu.ini就可以直接调用的了。具体的修改方法可以自行对照着修改,不难的。下面就直接来说一下脱壳流程。 ①安装目标apk文件 ②编写脱壳文件 dexname。 这个dexname的由两行组成,格式如下: (line1):future string -> 需要脱壳的dex文件路径 (line2):tgt's data path -> 脱壳apk程序的data目录 (line3):null 比如说示例的apk文件中的dexname文件组成如下: /data/data/com.example.seventyfour.tencenttest/files/libmobisecy1.zip /data/data/com.example.seventyfour.tencenttest/ ③推送 dexname 文件到 /data/dexname 中。 ④打开程序。 相当简单的流程,成功了的话,将会在 app的data目录下看到whole.dex文件,这个就是拖好的odex文件了。使用backsmail -x 指令就可以进行正常的反编译了。 PS:windows下dexname的编写时必定出问题的。需要写完后用WinHex等工具修改一下dexname文件,把换行符的 0D 0A 修改为 0A,这样才能正常地被系统读取,然后脱壳,否则,看到的就只是GOT IT TIME OUT的错误提示了。 PS2:新版的壳hook了fwrite等函数,所以用这个提供的system.img打开程序就报错。这个需要手动编译一下源码,把hook过的相关函数给取消掉。这个只能自己手动了。 PS3:下面也符了一个视频来说明脱壳流程,不过实际上GitHub上也是有的,恐怕这个只能算是多此一举了。 PS4:windows上的AVD果然卡如狗,我用VirtualBox开Ubuntu里面在挂AVD都比它快,我草。 |