Android平台GDB调试环境搭建
Posted douluo998
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中调试非源码程序。
如何在不同平台上搭建Flutter开发环境
文章目录
我们可以到 官网的文档中查看如何搭建Flutter的开发环境,写的十分详细,不过有种比较散乱的感觉,没有一个整体的流程。我结合官方文档以及自已的实际操作来演示如何搭建Flutter开发环境。
整体思路
- 1.下载Flutter SDK包并且解压到某个目录中,此目录就是SDK的安装目录;注意:平台不同SDK也不同;
- 2.把SDK的安装目录添加到环境变量中,安装完成后运行
flutter doctor
命令检查环境是否OK,如果有提示错误,那么按照提示来安装相关依赖的程序; - 3.Flutter没有专门的开发工具,而是以插件的方式运行于其它IDE中,官方推荐Andr
以上是关于Android平台GDB调试环境搭建的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )(代码片