Android平台GDB调试环境搭建

一、背景

Android系统采用GDB(The GNU Project Debugger,GNU工程调试器)作为原生程序的调试器,GDB调试源码的程序优势非常明显;但Android平台逆向分析的对象通常为无源码的二进制可执行程序,此类调试场景中IDA调试器的优势会特别明显,但本文依然介绍GDB调试Android平台非源码Native程序的环境搭建,以供读者参考和学习。

二、Android平台IDA调试环境搭建

Android中GDB调试非源码的环境搭建步骤较为繁琐,调试环境搭建步骤如下:

1、环境变量的设置,包含:android-sdk-windows\platform-tools;android-sdk-windows\tools;android-ndk-r9;android-ndk-r9\prebuilt\windows\bin;等等目录android-sdk-windows是sdk的目录;android-ndk-r9是NDK的目录。(一般情况需要开启三个CMD)

2、切换到目录android-ndk-r9\prebuilt\android-arm\gdbserver,使用命令adb push gdbserver /data/gdbserver 把gdbserver放入手机里。

3、另外开一个命令行程序,使用命令adb shell进入shell,然后输入su获取root权限。

4、使用命令chmod 777 /data/gdbserver, 给予gdbserver文件可执行权限。

5、使用命令ps 查看系统进程,获取需要调试的进程的pid信息。后面假定我需要调试的目标进程的pid值为205。

6、使用命令cat /proc/205/maps 获取指定进程的模块信息以及模块基址信息。其中205需替换成你的目标进程pid。

7、使用命令/data/gdbserver :1234 --attach 205 对指定进程进行attach调试,其中205需要替换成你的目标进程pid。(1234表示在tcp 1234端口监听,调试事件都发送到该端口上。直接从入口运行程序命令为(例如):/data/gdbserver :1234 /data/test)

8、另外开一个命令行程序,使用命令adb forward tcp:1234 tcp:1234 把手机的1234端口和本机的1234端口关联起来。

9、运行gdb程序命令:arm-linux-androideabi-gdb.exe,再使用命令target remote :1234调试程序。

依次通过以上步骤之后便可在GDB中调试非源码程序。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值