
完整的文档,如下所示:
https://mp.weixin.qq.com/s/DIz8GcFYI0xA7aLJamohDA
Android由于其代码是放在dalvik虚拟机上的托管代码,所以能够很容易的将其反编译为我们可以识别的代码。之前我写过一篇文章反编译Android的apk包到smali文件 然后再重新编译签名后打包实现篡改apk的功能。最近又有一种新的方法来实现直接从Android apk包里的classes.dex文件,把dex码反编译到java的.class二进制码,然后从.class二进制码反编译到java源码想必就不用我来多说了吧。首先我们需要的工具是dex2jar和jd-gui其中第一个工具dex2jar是用来把classex.dex文件也就是dex二进制码转化为java的标准.class二进制码,然后jd-gui是把标准的.class二进制码再反编译为java源码。首先从apk包里面提取出classes.dex放到dex2jar目录下然后在命令行下执行dex2jar.bat classes.dex这时执行成功后会生成一个classes.dex.dex2jar.jar文件这个文件再用jd-gui打开,如下图几乎跟我自己写的这个程序的源码一样提供这个反编译方法主要用于大家学习与研究,有问题可以与我邮件讨论。希望大家不要用这个方法从事恶意的活动,毕竟,别人辛辛苦苦写程序也不容易,用这个方法可以大致的学习到别人写的程序的逻辑,架构,希望对大家有所帮助。Android 逆向apk程序的心得本文主要介绍如何逆向一个Android的APK应用程序,本文提供的方法仅供研究学习之用。本文需要用到的工具有jdk 这个用于搭建java运行环境AXMLPrinter2.jar 这个用于逆向.xml文件baksmali.jar 这个用于逆向classex.dex文件由于Android的.apk文件实际上就是一个zip文件 可以直接用winrar打开这个确实很困难。如果是DOS程序还好办,如果是Windows程序,其反汇编的工作量相当巨大。而且这仅是反汇编,得到的只是勉强能用的汇编代码,而从汇编代码再反工程到.C,真的是件很困难的事。程序简单还好办,复杂的就真是件费力的事了。放弃吧。如果是自己写的程序,只要整个设计还记得,那就重新写一遍吧。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)