安卓逆向 -- 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:用来放函数的局部变量


禁止非法,后果自负

目录
相关文章
|
4天前
|
Android开发
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
Android源代码定制:Overlay目录定制|调试Overlay资源是否生效
11 0
|
4天前
|
Android开发 内存技术
Android 通过tinyalsa调试解决录制和播放音频问题
Android 通过tinyalsa调试解决录制和播放音频问题
21 1
|
4天前
|
安全 编译器 API
Android HAL深入探索(5): 调试HAL报错与解决方案
Android HAL深入探索(5): 调试HAL报错与解决方案
6 1
|
4天前
|
网络协议 Shell Android开发
Android 深入学习ADB调试原理(1)
Android 深入学习ADB调试原理(1)
20 1
|
2月前
|
Java Android开发 数据安全/隐私保护
安卓逆向 -- IDA基本用法
安卓逆向 -- IDA基本用法
41 0
|
2月前
|
Android开发 数据安全/隐私保护
安卓逆向 -- Jeb动态调试
安卓逆向 -- Jeb动态调试
38 1
|
4月前
|
网络协议 Android开发 虚拟化
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
63 0
Android Studio无法运行程序调试程序出现Unable to connect to ADB.Check the Event Log for possible issues.Verify th
|
5月前
|
网络协议 NoSQL Unix
[√]Android NDK调试启动分析LLDB-SERVER
[√]Android NDK调试启动分析LLDB-SERVER
128 0
|
5月前
|
Android开发
Android JNI调试
Android JNI调试
42 0
|
Android开发
【Android 逆向】IDA 工具使用 ( 重命名函数 | 添加注释 | 添加标签 / 跳转标签 | 代码跳转前进 / 后退 )(二)
【Android 逆向】IDA 工具使用 ( 重命名函数 | 添加注释 | 添加标签 / 跳转标签 | 代码跳转前进 / 后退 )(二)
135 0
【Android 逆向】IDA 工具使用 ( 重命名函数 | 添加注释 | 添加标签 / 跳转标签 | 代码跳转前进 / 后退 )(二)