起序:因为 安卓模拟器(比如:雷电,夜神,蓝叠...)
都是 x86
架构的,而调试的是 arm
架构,所以需要 arm
架构的 安卓模拟器
。
调试模式 | 文章 |
普通模式 | 【逆向】IDA 动态调试之普通模式调试 apk |
调试模式 | 【逆向】IDA 动态调试之调试模式调试 apk |
一、软件环境
- IDA:IDA 7.0
- SDK
- APK:Calculator.apk
- 软件下载:百度网盘 提取码:qhij
二、搭建环境
1、下载并解压文件
2、打开模拟器
这个模拟器打开的运行效果很差,将就可以调试用。
3、android_server
在
IDA pro/dbgsrv
目录下有一红框圈出的文件android_server
,它是提供调试arm
架构的所需服务文件。
4、连接设备
1、检查设备
因为我电脑上已经有了一个
SDK
,所以解压出来的SDK
配置好环境变量后,我把sdk/platform-tools
目录下的adb.exe
复制了一份,更改为adb1.exe
文件,为了是不与我原来的SDK
在命令上的冲突。
# 检查是否连接上设备
adb devices
2、上传 android_server
将
android_server
复制到模拟器
的/data/local/tmp
目录下,这里建议更改复制之后的文件名,因为有一些模拟器会检测,会导致android_server
复制失败,我这里更改为as
。
# 最后的 as 是文件复制之后更改的名称,这里原目录为什么有双引号呢,是因为 IDA pro 这个文件名中间有空格
adb push "F:\Program Files\IDA Pro\dbgsrv\android_server" /data/local/tmp/as
3、授予可执行权限
将
android_server
文件上传到/data/local/tmp
目录下之后,还没有可执行权限
,需要授予可执行权限
。
# 连接设备
adb shell
# 获取 root 权限(有些模拟器需要执行 su 命令),这里默认就是 root 权限了,所以我就没写
su
# 授予可执行权限
chmod 777 /data/local/tmp/as
# 执行,启动之后开启占用 23946 端口
./as
综合
4、端口转发
此时需要使用
本机
和模拟器
之间进行端口转发,需要新打开一个cmd
窗口。
adb forward tcp:23946 tcp:23946
5、启动软件
先安装软件,将
Calculator.apk
直接拖进模拟器中就可以了,然后点击就完事了
6、IDA 配置
Debugger
→Attach
→Remote ARMLinux/Android debugger
Hostname
输入127.0.0.1
,点击 OK。
出现的都是
进程信息
,选择刚刚启动软件的进程,选择包名com.star.calculator
,点击 OK。
效果展示,好了,我该调试软件了。
可以看出连接上了,毕竟我要做教程,所以就点击了关闭。
如果对您有帮助,点个赞再走吧。