利用IDA对dex文件进行动态调试过程
来源:互联网 发布:怎么屏蔽网络监控 编辑:程序博客网 时间:2024/04/28 23:45
0x01.调试的过程。
1、首先AndroidManifest.xml里面Android:debuggable="true"。
2、将classes.dex拖入IDA中。
3、选择Debugger->Debugger options->Set specific options,在Package Name和Activity中填入主Activity的包名和类名。
4、选择Debugger->Process options,将Port改为8700。
5、下断点,在相应需要调试的函数的位置下断点。
6、手机端开启android_server
具体方法,
C:\>adb shell push android_server /data/local/tmp/ (android_server需到IDA安装目录./dbgsrv下拷贝)
C:\>adb shell
#su //获取root权限
#chmod /data/local/tmp/android_server //给android_server添加可执行权限
#/data/local/tmp/android_server //启动android_server
7、端口转发
C:\>adb forward tcp:23946 tcp:23946 //把手机上的端口转发到pc上
8、打开要调试的Activity
C:\>adb shell am start -D -a 包名/入口 //以调试的方式期待调试的程序
9、选择Debugger->attach to process,attch到应用,选择包名单击即可。 接下来,出现的界面全部Cancel。程序运行到断点处。
0x02.查看和跟踪流程内存值.
F9运行
F8单步调试
F7进入函数
1.debugger->debugger windows->locals
查看变量的值
0x03.遇到的问题(类型转换的问题)
1.遇到IDA寄存器中的值bad type
使用 IDA 调试 APK 时经常遇到变量无法识别的情况,需要在WatchView里面手动加入类型转换,如下图
然后在弹出的窗口中自己为变量添加一个类型,类似这样:
(Object*)v0
(String)v0
(char*)v0
(int)v0
(int*)v0
0x04.修改某个寄存器的值
修改内存中的程序和值
修改程序一般都是IDA的修改方式
定位地址,edit修改对应的值后apply进行修改。
修改内存中的值,在lcoals中直接修改即可
0x05 dump内存中的dex脚本
0 0
- 利用IDA对dex文件进行动态调试过程
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- IDA动态调试Android的DEX文件
- 一次完整的IDA动态调试dex过程
- IDA动态调试dump加固的Dex文件(Dalvik4.4--)
- 使用ida调试dex文件
- 利用IDA6.6进行apk dex代码动态调试
- IDA动态调试so文件
- IDA Pro动态调试Android so文件
- 使用IDA Pro动态调试SO文件
- IDA动态调试之生成so文件
- IDA动态调试Android的SO文件
- 【已解决】使用ida pro进行动态调试so文件遇到的问题
- Android逆向系列之动态调试4–IDA调试dex
- 利用DexClassLoader动态加载dex文件
- 利用core文件对多线程和多进程进行调试
- 利用ida对程序的静态链接库进行处理
- Android Studio之解析Gradle
- CSS入门笔记2
- Atitit 数据库视图与表的wrap与层级查询规范
- 1.1 创建一个wxPython应用
- 三.MUI
- 利用IDA对dex文件进行动态调试过程
- 李白打酒
- 洛谷 P1462 通往奥格瑞玛的道路
- ubuntu中使用pyenv包管理器
- Java中的Properties
- 不能将 "const char *" 类型的值分配到 "LPCWSTR" 类型的实体 错误解决方法
- 算法设计与结构基础作业第五周
- Populating Next Right Pointers in Each Node II
- Atitit 技术经理职责与流程表总结