安卓逆向 -- 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动态调试的主要内容,如果未能解决你的问题,请参考以下文章

关于安卓逆向你需要知道的工具及网站

安卓逆向 -- 绕过SO层签名验证

安卓逆向11.IDA以Debug模式调试APK SO

Android逆向笔记-IDA Pro动态调试Android程序(真机)

怎么加固安卓软件????

Android 逆向初探