做几个简单的记录,同时帮助不知道的人
root环境
环境:
1. IDA7.7
2. 已经root的手机
处理android_server64
准备工作:已经使用Android studio nkd的工具集生成了一个基于arm的可执行程序
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
然后我们把IDA工具中IDA\7.7\data\dbgsrv\android_server64 移动到手机目录下的
data/local/tmp。我自己又创建了目录dbg,所以我实际移动到了data/local/tmp/dbg下。
adb push ...\android_server64 /data/local/tmp/dbg
然后给android_server64可执行权限
chmod a+x android_server64
然后获取手机的ip地址,用于远程调试使用。
ps:我的pc和手机在同一WIFI局域网之下。貌似非root的手机不能获取ip地址
PBCM10:/data/local/tmp/dbg $ ip a
...
28: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 3000
...
inet 192.168.101.15/24 brd 192.168.101.255 scope global wlan0
...
然后运行android_server64
PBCM10:/data/local/tmp/dbg $ ./android_server64
IDA Android 64-bit remote debug server(ST) v7.7.27. Hex-Rays (c) 2004-2022
Listening on 0.0.0.0:23946...
运行IDA
然后我们把目标文件HelloWorld.elf拖到IDA
然后选择调试模式:Remote ARM Linux...
然后选择工具栏 Debugger->Process Option->填写ip->OK
然后下断点,点击调试运行
然后就调试成功了
非root环境
先了解之前的root操作,非root的操作我简要概述一下
1)
PBCM10:/data/local/tmp/dbg $ ./android_server64
IDA Android 64-bit remote debug server(ST) v7.7.27. Hex-Rays (c) 2004-2022
Listening on 0.0.0.0:23946...
2)
C:\Users\xxxx>adb forward tcp:23946 tcp:23946
23946
3)
ida解析arm elf
下断点break point
ida选择remote arm linux/Android debugger
debugger process option栏填写127.0.0.1或者localhost
4)
f9启动调试