小虾米资讯

AD1
当前位置:网站首页 / android / 正文

android:安卓逆向分析步骤总结

2021-01-07 18:10:39 / 我要吐槽 查看是否已被百度收录 查看是否已被谷歌收录 查看是否已被搜狗收录 查看是否已被360收录
AD2
一、前言安卓逆向说好听一点叫逆向分析学习技术,说不好听就叫破解App了。但是,技术这个东西本身不分好坏,只是看你学会它之后用在哪些方面了。这篇博客用于总结我对安卓逆向分析的学习理解,主要以分析的步骤来表现,当然同时也提供给大家学习交流,仅此而已。我们应当努力奋斗,有所作为。这样,我们就可以说,我们没有虚度年华,并有可能在时间的沙滩上留下我们的足迹。——拿破仑 二、工具准备主要:Android Killer 用于反编译/回编APKjadx-gui 用于反编译dex文件,进行java层的静态分析NotePad 用于记录分析线索,总结分析结果调用工具:DDMS 查看程序运行log / 方法追踪分析 IDA 动态分析工具 / 反汇编工具 / 内存修改工具 / 脱壳 / JNI 层分析其他:Android Studio 用于编码 / Java层动态分析JebApkToolBoxGDAWinHex010 三、功能分析要想分析某款App的某个功能,首先你就需要使用一下这个功能,然后记录下其中的关键字,一般来说:比如那些Toast弹出的提示、Dialog显示的文字、按键的名字等待,这些都可以作为关键字进行代码定位。但是我个人喜欢通过组件的id来定位,这样可以排除String被处理了,然后直接找组件被使用的地方,快速的找到突破口。为了演示本博客中采用String定位代码位置。 关键字:您的会员已到期,请升级VIP 四、Android Killer反编译打开AK工具,将Apk拖入,等待反编译完成,出现下图所示即可:

五、通过关键字定位代码位置将AK工具切换到工程搜索界面,搜索我们刚才记录的关键字,如下图: 搜索后发现,结果是一个xml的布局文件,这就说跟定会有一个Activity这样的活动类会引用它,我在根据这个布局文件的名称进行搜索。(关键字:dialog_package_upgrade)结果如下: 发现还是没有想要的smali文件,但是我们发现了R文件,我们可以通过里面定义的16进制的id值,再次进行搜索,结果如下: 终于我们找到了第一个关键字的被调用的位置,就决定是你了。关键字:PackageUpgradeDialogFragment由于smali代码可阅读性差,我们接下来就用jadx将smali代码转换成java代码来进行下一步的分析,当然AK自带有这个功能,但是我个人觉得不好用。(jadx的使用方法这里就不讲了,不懂的就CSDN一下) 六、分析Java代码,找突破口打开jadx,将apk拖入,然后打开搜索界面,等待反编译结束,然后搜索关键得到下图: 进入第一个结果: 发现是一个封装好的DialogFragment类,那么我们就看看那些地方实例化了它,然后分析得出这个地方使我们要找的地方: 继续跟踪,我们就找到了我们真正需要的地方: 记录逻辑函数:ischeckAccunt() 七、修改smali代码,回编找到我们想要的逻辑函数之后,我们就分析它的逻辑,然后尝试修改smali代码,回编(修改逻辑这里就不提供了): 八、安装测试

Powered By © 小虾米资讯 2015

(本站部分文章来源于网络或网友爆料,不代表本站观点,如有侵权请联系及时删除 )