Android IDA so文件分析、动态调试-xctf-so easy

 

无反调试步骤:

 1)adb push d:\android_server(IDA的dbgsrv目录下) /data/local/tmp/android_server(这个目录是可以随便放的,server文件根据内核版本更换)。

2) adb shell

3) su(一定要有root权限)

4) cd /data/local/tmp

5) chmod 777 android_server (给android_server可执行权限)

./android_server对本地设备端口进行监听

6)再开一个cmd:

adb forward tcp:23946 tcp:23946(端口转发,调试手机上的某个进程要有协议支持通信)让远程调试端IDA可以连接到被调试端

7)使用IDA连接上转发的端口,查看设备的所有进程,找到需要调试的进程。具体步骤方法为:在Debugger选项卡中选择Attach,选择android debugger,点击Ok。

8)动静结合方式(基地址+相对地址)确定函数地址进行调试。

 

对于有反调试的步骤:

 1)启动android_server

2)端口转发adb forward tcp:23946 tcp:23946

3)adb shell am start -D -n 包名/类名;出现Debugger的等待状态

(说明:以启动模式启动,是停在加载so文件之前,包名可以在androidmanifest文件中找到)

4)打开IDA,附加上对应的进程之后,设置IDA中的load so时机,即在debug options中设置;

5)运行命令:jdb -connect com.sun.jdi.SocketAttach:hostname=localhost, port=8700

6)点击IDA运行按钮,或者F9快捷键。

 

一、使用IDA对so文件进行分析

导出so文件,使用IDA打开。

在IDA中直接搜索该函数,只有一个结果,直接点进去看看。

可以看到通过一系列计算之后,得到的值需要为f72c5a36569418a20907b55be5bf95ad

通过对其算法进行分析,其计算过程是先将输入值前半部分与后半部分调换,后将相邻数值两两对换,得到flag:90705bb55efb59da7fc2a5636549812a

二、使用IDA对so文件进行调试

https://blog.csdn.net/u012195899/article/details/52780062

找到IDA中的dbgsrv文件夹下的android_server文件,根据内核版本,将这个文件使用adb命令上传到手机/data/local/tmp目录下 

上传过程中有时会出现 Read-only file system 提示,大概率是权限问题:

1、adb remount,这条命令的功能是重新装载Android文件系统;

2、adb shell—su— mount -o rw,remount /system

给予权限777(chmod 777 文件名)后启动传入的脚本文件。

 

成功启动后开启端口转发(固定端口23946)。

adb forward tcp:23946 tcp:23946

 

  • 启动后无法获取模拟器IP, 启动后提示 Address already in use(端口被占用)
  • 通过查询发现IDA,frida等,由于内核问题都无法使用雷电模拟器进行连接,故更换夜神模拟器

https://my.oschina.net/u/4940693/blog/4927341

 

使用夜神模拟器成功连接。

ctrl+f 搜索需要附加的包名

 

成功附加进入,可以动态分析so文件。

 

通过ctrl+s 可以打开当前加载的so文件目录,通过搜索so文件名称,找到需要的so文件。选择带有X标识的文件,进入即可跳转至所需so文件内。

在静态调试的IDA中找到函数的偏移地址,然后在动态调试的IDA加上so文件基址,跳转至对应函数位置。

后续调试报错,判断还是内核问题,等待使用真机尝试。

真机使用后还是一样报错,尝试寻找原因。 

更换android_server64文件,重启设备后,成功连接设备。

通过基地+偏移地址找到目标函数。

 

出现提示 got unknown signal #33

重启IDA后,继续操作,成功断在断点处,未知原因。

F8单步调试,查看寄存器改变。(前面出现问题是因为键盘F8无法使用!!!!!)

后续调试与OD调试相似。

posted @ 2022-04-12 09:33  xyxyxyxyxyxy  阅读(874)  评论(1编辑  收藏  举报