Androidapp逆向的常用工具1.基本信息当拿到APK的时候,一般去看一下它的版本、报名、开发商等信息,这时候要看的最主要的就是Manifest.xml文件。apk文件中的Manifest是一种特殊格式的xml,可以使用集成工具apktool来得到。(获得工具apktool.jar)阅读manifest文件得到apk的基本信息,可以使用drozer这个工具来辅助阅读,得到一些基本的vulnerability。(获得工具drozer)简略分析完基本信息之后,接下来重要的是分析dex文件(java写的代码)和so文件(c/c++写的代码)2.分析dex文件常用的分析工具分为以下三大类,三大类中并不完全隔离,视具体情况择优使用。大部分情况推荐直接使用jeb来分析。2.0使用androidkiller或者apk改之理来分析apk改之理已经好久没有更新,可以使用后续版本androidkiller。这两个工具集成了很多小功能,插件化也比较好,用起来比较方便,适合汉化或者对付简单的app进行重打包、smali修改等,称不上是基础、或者专业的工具。(获得工具androidkiller)2.1使用baksmali.jar+jdgui来分析apk文件中会包含一个或者多个classes.dex文件,还可能包含app运行时动态加载的jar文件,这些文件都是用java语言写的。dex文件的分析工具是baksmali和smali(获得工具baksmali.jar,smali.jar),这两个工具可以说是目前大多数安卓逆向工具的基础,比如apktool等都是用它俩来反编译dex文件。当你使用apktool反编译失败的时候,可能是其版本带有的baksmali.jar不是最新版本,可以考虑重新下载编译baksmali.jar。使用baksmali.jar得到smali文件之后,使用dex2jar(包括oat2dex)来得到jar包,进而使用jdgui来反编译、可视化java代码。(获得工具jdgui)2.2jebjeb是做的比较专业的逆向工具,现在我们手头只有demo版本或者比较旧的破解版。(获得工具jeb)3.分析so文件apk中会大量使用so文件,如果需要,会对这些so文件进行分析,使用工具IDApro。(获得工具IDApro)4.注意a.由于apk会做出各种反-反编译措施,可能导致以上工具使用过程出现反编译错误,这时请仔细查看错误log,尽力找到解决方法。(比如是不是资源文件出错、是不是可以修改dex来避免反编译出错)b.以上括号中获得的工具,请尽量保持更新最新版本,善用github,尽量自己去编译源代码得到最新版本的工具。c.常用github和google搜索,或许会发现新的世界。d.以上提到的工具不提供下载链接,请自行google去项目原址或者论坛下载,或许会发现新的世界。Androidapk常用逆向方法1.重打包法:修改smali,修改manifest文件(debugable,exported)2.hook法:hooklog使其输出,hook方法等3.动态调试:androidstudio+smalidea动态调试(需要打开appdebug模式,可以重打包apk或者使用xposedhook手机)4.抓包:如果apkssl实现有问题,可以导入burp证书;如果burp证书不行,使用xposed去hook其ssl方法。