使用IDA_Pro分析Android程序

时间:2024-10-25 14:57:10

使用IDA_Pro分析Android程序

(作者:Baron_wu 禁止转载)
首先安装IDA_Pro(安装方法自行查阅)
之后将apk应用后缀改为zip,然后解压,打开IDA_Pro进入空的工作台,将解压后的文件夹内的拖入工作台中,之后便开始分析程序。
在这里插入图片描述
在使用apktool分析程序时我们得到了fail的id值(具体方法请查看:使用aptool分析Android程序 /Baron_wu/article/details/83548297 ):
在这里插入图片描述
在IDA_Pro工作台按alt+t会出现搜索界面 ,之后搜索fail的id编号。在这里插入图片描述
如下
在这里插入图片描述
然后在其附近可找到对应的if-nez所在的行号。
在这里插入图片描述
如下,即为39。
在这里插入图片描述

使用C32asm编辑器修改对应的编码。

Nez对应39 ,查看Dalvik-Bytecode表可以找到nez对应39,eqz对应38。 将nez改为eqz
即将39改为38,保存后退出。

在这里插入图片描述

APK程序安装时会调用dexopt进行优化和验证,dex文件中的DexHeader头checksum字段标识了dex文件的合法性,被篡改过的dex文件在验证时计算checksum会失败,这样会导致程序安装失败,因此再打包安装程序前需要重新计算并写回checksum。这里我们使用DexFixer这个工具,运行DexFixer,将修改过的文件拖入就会出现如图所示的内容,就修改完了。

在这里插入图片描述
之后删除MATE-INF文件夹在这里插入图片描述
然后将之前解压的文件夹压缩为zip,再将其后缀改为apk。
之后需要对app重新进行数字签名:

在这里插入图片描述
之后将生成的apk程序拖到虚拟机内便可以运行:
在这里插入图片描述
到此分析完毕。