Android逆向系列之动态调试6–gdb调试

Android逆向系列之动态调试1–入门篇 
Android逆向系列之动态调试2–Smali注入
Android逆向系列之动态调试3–Eclipse调试apk
Android逆向系列之动态调试4–IDA调试dex
Android逆向系列之动态调试5–代码注入(JDB调试)
Android逆向系列之动态调试6–gdb调试
Android逆向系列之动态调试7–IDA调试so文件(上)
Android逆向系列之动态调试8–IDA调试so文件(下)

一、环境准备
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命令查询)
成功监听如下:
gdb
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的命令进行动态调试了,由于涉及较多的gdb调试知识,这篇文章只针对那些从软件调试转为安卓逆向研究的工作方便。
接下里的文章将介绍更加常用的IDA 动态调试so文件。

转载自http://www.tasfa.cn/index.php/2016/06/01/android-re-gdb/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值