往期推荐
通过上一章节的学习,我们掌握了IDA静态分析so文件的操作方法,但想要更加具体地对程序进行分析,动态调试是必不可少的,而在动态调式之前,则需要搭建IDA动态调试的环境。
一:创建安卓自带模拟器
1.在SDK中找到AVD Manager.exe程序,如下图所示。
2.双击打开程序,如下图所示。
3.点击页面右侧的“Create”按钮,创建相应的模拟器,如下图所示。
4.在模拟器中设置一系列的参数值,点击OK,如下图所示。
AVD Name:模拟器名称,可随意取名。
Device:设备类型,选择Nexu5。
5.创建完毕,直接点击start启动。
二:运行android server
1.在IDA6.8目录下,找到android server文件,拖至桌面,如下图所示。
2.使用adb命令把android server文件push到模拟器中,如下图所示。
3.使用adb命令连接模拟器,来到目录cd /data/local/tmp下,使用ls命令列出这里的文件,如下图所示。
4.给这个文件一个777权限:chmod 777 android_server,如下图所示。
5.使用ls -l列出全部文件,-l是详细信息,如下图所示。
6.如果修改权限成功,会出现提示,如:rwxrwxwx,表示此文件有了各种操作的权限,r代表可读,w代表可写,如下图所示。
7.运行此文件,如果出现23946这个提示,则视为成功,如下图所示。
8.新打开一个cmd窗口,进行端口转发,此处转发的端口号与上面运行android_server时产生的端口号一致,如下图所示。
三:IDA附加+勾选三项
环境搭建完成之后,将准备好的apk文件安装包安装在模拟器(真机)上,如下图所示。
adb :Android 调试桥 (adb) 是一种功能多样的命令行工具,可让用户与设备进行通信。
install:表示安装软件
adb install xxx:xxx表示安装的软件的包名
1.上述步骤完成后,开始使用IDA,如下图所示。
2.进来后,选择attach下的Android debugger选项,如下图所示。
3.点击后出现一个窗口,Hostname是主机名称,同样也是本地的ip地址,Port即端口,就是刚才的23946,password可省略不填写,如下图所示。
4.点击OK,出现Choose process to attach to这个界面,此页面包含一系列的包名,如下图所示。
注意:如果列表没有应用程序的包名,可以回到程序,点击程序运行。
5.选中待调试的包名,点击OK,如下图所示。
6.出现一个窗口,继续点击OK,此时显示附加成功,如下图所示。
7.此时模块列表还没有断下来,也就是说so模块还未加载进来,选择此页面中Debugger option选项,如下图所示。
8.勾选Events列表下的三个选项:Suspend on process entry point、 Suspend on thread start/exit和 Suspend on library load/unload,点击OK,如下图所示。
9.点击OK,开始运行,如下图所示。
10.此时对应的so库被加载进来,接下来就可以进行下断,从而进行IDA动态调试。
小结:
通过本节课的学习,我们已经掌握了IDA动态调试的环境搭建,总得来说有以下大致五个步骤:
1、先在IDA里面找到android_server,然后发送到真机。
2、在cmd里面运行android_server并且端口转发。
3、在IDA里面配置主机号和端口号。
4、附加调试程序的进程。
5、进来后勾选三项,然后F9运行程序。
如果你也对安卓逆向感兴趣。可以加入下方的群,大家一起讨论问题,或者扫描下方二维码关注公众号,关注回复 “安卓逆向” 获取免费教程
安卓逆向交流学习:3543756281
vx:Yjxiaox