搭建ARM调试环境

使用GCC生成ELF可执行文件

安装文件,并启动GDB服务器

使用MakeFile脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
MODALE_NAME=armTest

debug:
//压入可执行文件
adb push ./obj/local/armeabi/$(MODALE_NAME) /data/local/tmp
//修改可执行属性
adb shell chmod 755 /data/local/tmp/$(MODALE_NAME)
//压入IDA的dbgsrv目录下的GDB_Server
adb push ./libs/armeabi/android_server /data/local/tmp
//修改GDB_Server的可执行属性
adb shell chmod 755 /data/local/tmp/android_server
//启动服务器,默认端口23946
adb shell /data/local/tmp/android_server

映射端口

adb forward tcp:SourcePort tcp:TargetPort 映射端口

adb forward --list 查看映射列表

IDA连接远程调试服务器

打开调试配置

Application: 填入远程设备中 可执行程序的路径
Directory: 远程设备的目录
Parameters: 可执行程序的参数
Hostname: 远程设备地址(已经映射则填回环地址 127.0.0.1)
Port: 远程设备的服务端口

Event 选项(Suspend on):

debugging start: 在调试器开始时断下,(一般为程序第一条指令) 一般勾选此条
process entry point: 在进程入口点 断下 一般勾选此条
Thread start/exit: 线程开始和结束时断下 (多线程 勾选此条)
Library load/unload: so/DLL等 动态库文件 加载或卸载时断下

断在程序入口:

第一个函数调用: BL 则是派发到Main函数,
在此条指令执行时, R2寄存器的值为Main函数的地址

调试环境搭建完成

Tips:

IDA的调试快捷键同OD快捷键
注意 ADB ROOT 和 端口映射

文章目录
  1. 1. 使用GCC生成ELF可执行文件
    1. 1.1. 安装文件,并启动GDB服务器
    2. 1.2. 映射端口
    3. 1.3. IDA连接远程调试服务器
    4. 1.4. 调试环境搭建完成
    5. 1.5. Tips:
|