发新帖

Android逆向系列之动态调试(五)–gdb调试

[复制链接]
45722 1

一、环境准备

ndk、模拟器(需要root权限,可以使用命令: adb root)

二、调试准备

1.gdbserver

找到gdbserver,路径是 ndk目录下的prebuilt文件夹,其中有三个Android开头的文件夹,选择对应自己的CPU,进入文件夹即是gdbserver(这里是选择android-arm/gdbserver) 接下里将gdbserver传到模拟器中,命令 : adb push gdbserver /system/bin (注意这里的路径,第一个需在当前目录下,否则需带绝对路径,第二个可自己选择)

问题分析:这里push到/system/bin可能会报错

解决: 确保手机或模拟机已经root,输入命令: adb remount,然后再push进去,同样,下面的chmod权限赋予如果报错,可以使用su命令,具体为adb shell su chmod 777 filename

2.gdb.exe

找到gdb.exe,路径是:..\ndk\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin (同样这里的arm-linux-androideabi-4.9需要找到对应gdbserver,cpu类型的文件夹,一般是arm开头,选择一个即可) 完整的名字为:arm-linux-androideabi-gdb.exe 这里将其复制重命名为gdb.exe

3.调试

a.赋予gdbserver权限,命令: adb shell chmod 777 /system/bin/gdbserver  

b.端口转发:adb forward tcp:23946 tcp:23946

c.运行gdbserver,

方法1: 命令: adb shell; 命令: cd gdbserver路径; 命令: ./gdbserver 方法2: 命令 adb shell gdbserver (适用于将gdbserver放在/system/bin下的情况) 完整运行命令: adb shell gdbserver :23946 –attach [PID] (PID可以在adb shell中使用 ps命令查询) 成功监听如下:

d.cmd下运行gdb.exe  

e.(gdb)set disassemble-next on(显示汇编代码) set step-mode on(打开单步调试)  

e.连接上gdbserver 在gdb界面输入 target remote 127.0.0.1:23946  

至此,接下来就可以愉快地使用gdb的命令进行动态调试了,由于涉及较多的gdb调试知识,这篇文章只针对那些从软件调试转为安卓逆向研究的工作方便。 接下里的文章将介绍更加常用的IDA 动态调试so文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复

精彩评论1

a277244390    发表于 2020-2-25 23:40:37 | 显示全部楼层
大哥后续呢如果调试一个APK怎么操作如果调试SO怎么操作、??

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表