IDA远程调试Android下的arm程序

做几个简单的记录,同时帮助不知道的人

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启动调试

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值