IDA动态调试SO文件
IDA动态调试SO文件
- 前言
- 一、启动android server,以调试方式启动APK
- 二、调试步骤
- 三、调试技巧
前言
此篇博文仅仅记录下本人学习
IDA pro
动态调试so文件过程。工具:
IDA pro 7.5
参考博文及APK来源:
- https://blog.csdn.net/hbhgyu/article/details/81321923
- https://blog.csdn.net/tabactivity/article/details/78492377
一、启动android server,以调试方式启动APK
进入
[安装路径]\dbgsrv\dbgsrv
目录,将对应android版本的android server
和android server64
发到手机/data/local/tmp/
目录,并设置可执行权限,运行。(建议android server
和android server64
都发送,避免某些apk只有32位或64位so包。)# 同理,将android server64同样设置 adb push [安装路径]\dbgsrv\android_server /data/local/tmp/ adb shell su chmod 777 /data/local/tmp/android_server ./data/local/tmp/android_server # 启动
手机端设置端口转发
adb forward tcp:23946 tcp:23946
调试方式启动APK,启动后,手机端出现
Waiting For Debugger
弹窗。adb shell am start -D -n [aok包名]/[主活动]
启动 DDMS(进入Sdk安装目录
\Sdk\tools
下,运行monitor.bat
脚本启动),在DDMS上选择相应进程后,使用指令使apk继续运行,成功后,DDMS上进程将显示绿色,否则是红色。jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700 # localhost可以填127.0.0.1
二、调试步骤
首先,IDA 加载so文件(此时,可以先查看需要设置断点的函数,位置,然后设置断点。)
选择调试器,点击:
Debugger=>Select debugger
(或直接按快捷键F9
),选择Remote ARM Linux/Android debugger
,点击OK
。(若弹出PLEASE READ CARFULLY
窗口,点击YES
)点击:
Debugger=>Debugger options
,根据需要,设置如下三个选项,会在相应位置暂停,按F9可继续调试- 第一个:在APK程序入口处停止。
- 第二个:有线程启动运行或者退出时,暂停。
- 第三个:当动态库(apk中的so文件)加载或者取消加载时,暂停。
点击:
Debugger=>Process options
,此处设置远程主机(android手机)和调试端口号(IDA 默认为23946),点击OK
。点击:
Debugger=>Process options
,选择当前待调试的apk进程,点击OK
。(可按CTRL+F
或者ALT+T
搜索包名查找)在IDA中,按
F9
开始调试,如果在调试前设置过断点和Debugger options
,调试会在相应断点位置或满足选项时停止。
三、调试技巧
可以在启动调试前,使用静态分析设置相应断点。
ARM中没有NOP指令,可通过以下指令替代
MOVS R0,R0 # 十六进制为:00 00 A0 E1
当调试函数遇到
无法设置断点
弹窗,或者到一个DCB
定义数据处无法F9
继续时调试和返回时,可按G
键跳转到LR
寄存器地址处,再按F4
,函数运行到当前指针位置。使用
F5
快捷键将ARM指令转化为可读的C代码,同时可以使用Y键,对JNIEnv
指针做一个类型转换,从而对JNI里经常使用的JNIEnv方法能够识别;同时,可以通过选项Copy to assembly
,将C代码注释到ARM指令中,增加Patch so
的便利性,甚至可以直接看到答案显示。
5. 32位ARM下,函数参数保存在R0~R3
寄存器中(多余的参数入栈),可以将Hex View
和 寄存器同步,查看函数参数数据。
IDA动态调试SO文件相关推荐
- IDA——动态调试Linux上的ELF文件(整合他人博客)
先查看机器之间是否可以ping通 0x00:环境 待调试ELF文件 IDA 7.0 主机:Windows 虚拟机:Linux 达成效果:在Window上利用IDA远程动态调试linux里的ELF文件 ...
- ida 动态调试so库 (连接夜神模拟器)
本文参考: 夜神模拟器 结合IDA 动态调试SO文件 打开夜神模拟器,然后进入夜神模拟器安装目录下(有nox.exe那个文件夹) 输入命令 nox_adb.exe connect 127.0.0.1: ...
- Android逆向之旅---Android中分析抖音和火山小视频的数据请求加密协议(IDA动态调试SO)
一.前言 最近萌发了一个做app的念头,大致什么样的app先暂时不说,后面会详细介绍这个app的开发流程和架构,不过先要解决一些技术前提问题,技术问题就是需要分析解密当前短视频四小龙:抖音,火山,秒拍 ...
- IDA动态调试技术及Dump内存
IDA动态调试技术及Dump内存 来源 https://blog.csdn.net/u010019468/article/details/78491815 最近研究SO文件调试和dump内存时,为了完 ...
- android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)
本文主要向大家介绍了C/C++知识点之ida动态调试.so 动态加载(必须真机),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助. 第一步连接安卓手机 查看设备 localhost: ...
- Android IDA 动态调试最完善攻略,跨过各种坑
From:https://www.pianshen.com/article/3409449384/ IDA 静态分析 与 动态分析:https://zhuanlan.zhihu.com/p/38983 ...
- 安卓逆向_21 --- Java层和so层的反调试( IDA 动态调试 JNI_OnLoad、init_array下断)
1. 安卓程序动态调试条件 安卓程序动态调试条件 ( 2个满足1个即可 ): 1. 在 AndroidMainfest.xml ---> application 标签下,设置或者添加属性 and ...
- 【reverse】buu-[Zer0pts2020]easy_strcmp——main函数的启动过程+IDA动态调试ELF
文章目录 依赖 思路 代码 CPP实现 Python+libnum库 IDA动态调试 参考资料 依赖 IDA7.7 Ubuntu20.04 作者:hans774882968以及hans77488296 ...
- 未root手机 ida动态调试安卓so文件—— 学习实践 《教我兄弟学Android逆向09 IDA动态破解登陆验证》
参考: https://www.52pojie.cn/thread-742686-1-1.html https://www.pianshen.com/article/6759779793 本文基本为h ...
- 使用IDA Pro动态调试SO文件
(1)在IDA的安装路径中找到android_server文件. (2)将android_server拷贝到手机的/data/local/tmp目录下面. (3) 将手机插上电脑,打开命令提示符, ...
最新文章
- 精度 召回率 F score
- 自学ng2 -生命周期钩子
- 安装labelImg(win10,macOS)
- VTK:几何对象之Line
- 创造包容的环境和上升空间
- php导出csv数据在浏览器中输出提供下载或保存到文件的示例
- 董明珠的“接班人”出现了!这个22岁的小姑娘,凭什么?
- ESP32开发 0.windows Vscode开发环境搭建,基于esp-idf-V4.2 | Cmake | Vscode插件
- TX2Ubuntu16.04上安装 kinectV2
- 51单片机12864的使用方法
- 数据产品经理面试提问集
- iOS 之 OBJECTC 调用C、OBJECTC调用C++
- 第一个小程序demo
- ATtiny85简单引脚配置
- Unix时代的开创者Ken Thompson (zz.is2120.bg57iv3)
- 什么是html5页面ui,H5页面UI设计和APP设计有什么区别?
- 练习:jsp页面输出九九乘法口诀表
- [译]PG15加速排序性能
- application.yaml配置详解
- 华科计算机电路理论实验报告,华科计算机数电第四次实验报告.docx