[原创]一个基于xposed和inline hook的一代壳脱壳工具
1. 我为啥要写这个工具
虽然一代壳比较古老了,但是市面上还是比较多。用ida脱的话有点累。然后我就写了个xposed插件,来快速的帮我们完成脱壳。(这种方法比较省事,不用去修改系统什么的,也不用动态调试)
开始没有在android6.0上测试,那会只有android5.0和android5.1上面可以运行,后面根据jwchen119大佬的建议去 http://bbs.pediy.com/thread-218782.htm 抄了一段6.0上面的代码,在6.0上面也可以正常运行了。
2. 原理
原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hook的时机,大部分的壳都是在attachBaseContext这个方法里面去完成代码的解密。所以呢,我们就去hook Application的attach方法,在这个方法执行之前,将我们的动态库加载起来,动态库里面实现的就是对art::DexFile::OpenMemory方法的劫持。这样的话在他解密代码前art::DexFile::OpenMemory就已经被我们给控制了,所以就可以为所欲为了。这里要感谢ele7enxxh提供的Android-Inline-Hook来让我可以对native层的hook。
3. 需要怎么改才能脱抽类壳
放上来那个可以脱抽类那个apk我把hook的包名写固定了,我先删了,后面再放上来
4. 怎么使用的
首先下载libhook.so和xposed插件的apk文件,然后把libhook.so放到/data/local/tmp下面,并且改权限为777.然后安装xposed插件,重启并且激活插件。之后去xposed插件的界面里面去勾选需要脱壳的apk。选好之后干掉你要脱壳的应用的进程,然后重新打开你需要脱壳的应用的进程,脱壳成功的话就会在/data/data/应用包名 下生产脱下的dex文件

5. 源码
https://github.com/smartdone/dexdump

