Android安全(八)--gdb调试

admin 2021年6月23日22:57:42评论287 views字数 1421阅读4分44秒阅读模式
推荐两本自己读过的书,学习的路上免不了啃书,

Android安全(八)--gdb调试


什么是gdb

  • 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C、C++代码。

  • 它主要可以做4件事情:

    1. 随心所欲地启动你的程序。

    2. 设置断点,程序执行到断点处会停住。(断点可以是表达式)

    3. 程序被停住后,可以查看此时程序中发生的事。

    4. 动态改变程序的执行环境。

GDB远程调试原理图

  • Android安全(八)--gdb调试

  • 如图上所示,我们需要使用gdbserver依附到我们要调试的进程上,gdb通过adbd和手机上的gdbserver 进行socket通信。

远程调试实战


    • 在手机上启动gdbserver并attach你想调试的进程,并指定监听调试命令的端口(此端口是手机上的端口)

$ adb shell
# ps #查看要调试进程的PID
# gdbserver :1234 --attach 96 #:1234是端口号,96 是进程ID

    • 使用adb做端口映射,将pc机上的端口定向到手机上gdbserver监听的端口

$ adb forward tcp:1234 tcp:1234   #端口映射,将pc机的1234端口映射到手机的1234端口

    • 启动gdb向指定的pc机端口发信息开始调试

android_project_root/prebuilt/linux-x86/arm-eabi-4.4.3/$ ./arm-eabi-gdb   #使用项目下的gdb客户端去连接gdbserver,gdb的类型要选择针对手机平台的,
版本要和gdbserver一致。
<gdb> target remote :1234   #连接本地的:1234端口,此端口已经和手机的1234端口做好映射。
<gdb> file xxx/out/target/xx...xx/symbols/system/bin/mediaserver #加载可执行程序,注意选择symbols下的,如果调试的进程是app进程,
这里选择app_process。
<gdb> set solib-search-path xxx/out/target/xx...xx/symbols/system/lib #加载所有的动态连接库,注意选择symbols下的。
<gdb> bt #查看调用堆栈
<gdb> list xxx/xxx..xxx/xxx.cpp #查看相关文件
<gdb> b 100 #在文件的第100行打断点
<gdb> c #继续执行程序

使用gdbclient简化调试流程


    • 进入到源码工程目录下,进行环境配置,执行build文件夹下的envsetup.sh和choosecombo xx xx xx 命令,这时就可以使用gdbclient了。

    • adb shell进入手机,像之前一样开启gdbserver。

    • 在pc端的源码根目录下,执行 gdbclient -e mediaserver -p 1234 #从1234端口调试mediaserver



一如既往的学习,一如既往的整理,一如即往的分享。感谢支持Android安全(八)--gdb调试

Android安全(八)--gdb调试


Android安全(八)--gdb调试

app安全之反编译(一)

Android安全(二)—-攻击框架drozer全功能介绍

Android安全(三)—so注入(inject)

Android安全(四)--数据库 之 SQLite数据库

Android安全(五)--查看APK的签名的方法

Android安全(六)--apk加固原理

Android安全(七)--Keytool

APK签名校验绕过

ctf系列文章整理

日志安全系列-安全日志



扫描关注LemonSec

Android安全(八)--gdb调试


Android安全(八)--gdb调试


本文始发于微信公众号(LemonSec):Android安全(八)--gdb调试

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年6月23日22:57:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android安全(八)--gdb调试https://cn-sec.com/archives/304092.html

发表评论

匿名网友 填写信息