安卓逆向 -- IDA动态调试

简介: 安卓逆向 -- IDA动态调试

一、前言


上节课已经分析出了关键函数,这里只要在关键函数下断,然后,动态调试就可以获取想要获取的数据


二、IDA动态调试步骤


1、将IDA目录dbgsrv文件夹下的android_server复制到真机


adb push ....as /data/local/tmp


2、执行android_server


adb shell进入手机操作模式


cd /data/local/tmp 进入到as所在的位置


chmod 777 as 给as可执行权限


./as 执行


3、转发端口


adb forward tcp:23946 tcp:23946


0a2653c851af460fa595bd959398a8f1.png 0eacb84100b54626af849e6b562bf92a.png


4、启动IDA附加进程


Debugger--attach--Remote ARM Linux/Android debugger


2d65d23f6d4748949b924e4057485923.png


5、设置本地IP及上面设置的端口号23946,点击ok


2e9b90b2ca334476abebe75bafe6eeaa.png


6、选择要调试的进程名字


4cebaac233b3433da32a72337a77fc60.png


7、点击运行,让程序跑起来


6de278e6d6694ce5bb08e7e842b7e74b.png


8、从Modules模块,选择要分析的so文件及getSign函数


7a399525ddec4b77923c464820b33738 (1).png 7a399525ddec4b77923c464820b33738.png


9、函数名都变成了unk开头的,所以需要结合静态分析,记住偏移地址


0a2653c851af460fa595bd959398a8f1.png 0eacb84100b54626af849e6b562bf92a.png


10、所以我们需要在B3556A56处下断,这就是我们分析出的函数地址


2d65d23f6d4748949b924e4057485923.png


11、在数据窗口查看R0寄存器,右击数据窗口,选择Synchronize--R0


2e9b90b2ca334476abebe75bafe6eeaa.png 4cebaac233b3433da32a72337a77fc60.png


0093CB6721DAF15D31CFBC9BBE3A2B79 1634609878317


0093CB6721DAF15D31CFBC9BBE3A2B79 1634621200870


12、查看R1寄存器2D,十进制是45,正好是上面取出来的位数


0a2653c851af460fa595bd959398a8f1.png


13、查看数据窗口中R2的数据,按F8单步执行,里面的数值发生了变化


0eacb84100b54626af849e6b562bf92a.png


14、将上面的数据进行md5运算,正好是执行后得到的数据


45 E9 08 4E  5B D8 5B 94 B5 C5 98 13


3E 90 09 1F


2d65d23f6d4748949b924e4057485923.png


寄存器


SP:栈寄存器


LR:保存函数返回地址


PC:当前运行到的地址


R0-R3:用来放函数的参数,执行完后,R0存放返回值


R4-R7:用来放函数的局部变量


禁止非法,后果自负

相关文章
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
233 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
156 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
206 0
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
122 8
安卓系统调试与优化:(一)bootchart 的配置和使用
本文介绍了如何在安卓系统中配置和使用bootchart工具来分析系统启动时间,包括安装工具、设备端启用bootchart、PC端解析数据及分析结果的详细步骤。
378 0
安卓系统调试与优化:(一)bootchart 的配置和使用
Android打开USB调试命令
【6月更文挑战第20天】
300 1
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
165 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等