安卓逆向 -- IDA动态调试
Posted web安全工具库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓逆向 -- 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
4、启动IDA附加进程
Debugger--attach--Remote ARM Linux/Android debugger
5、设置本地IP及上面设置的端口号23946,点击ok
6、选择要调试的进程名字
7、点击运行,让程序跑起来
8、从Modules模块,选择要分析的so文件及getSign函数
9、函数名都变成了unk开头的,所以需要结合静态分析,记住偏移地址
10、所以我们需要在B3556A56处下断,这就是我们分析出的函数地址
11、在数据窗口查看R0寄存器,右击数据窗口,选择Synchronize--R0
0093CB6721DAF15D31CFBC9BBE3A2B79 1634609878317
0093CB6721DAF15D31CFBC9BBE3A2B79 1634621200870
12、查看R1寄存器2D,十进制是45,正好是上面取出来的位数
13、查看数据窗口中R2的数据,按F8单步执行,里面的数值发生了变化
14、将上面的数据进行md5运算,正好是执行后得到的数据
45 E9 08 4E 5B D8 5B 94 B5 C5 98 13
3E 90 09 1F
寄存器
SP:栈寄存器
LR:保存函数返回地址
PC:当前运行到的地址
R0-R3:用来放函数的参数,执行完后,R0存放返回值
R4-R7:用来放函数的局部变量
禁止非法,后果自负
欢迎关注公众号:逆向有你
欢迎关注视频号:之乎者也吧
欢迎报名安卓逆向培训,报名微信(QQ):335158573
以上是关于安卓逆向 -- IDA动态调试的主要内容,如果未能解决你的问题,请参考以下文章