IDA真机调试安卓so文件

简要

看了网上很多的IDA真机调试安卓的文章,感觉很多步骤没有必要,这里整理一下最简单的实现安卓真机调试的步骤,以便以后参考,以 2021NCTF easy_mobile题目举例

步骤

  1. 首先需要一个root 后的手机,用数据线连接电脑,并且开启USB调试
  2. 电脑安装好 adb
  3. 运行adb devices 观察设备是否已经连接

image-20211129113618087

  1. 来到IDA安装目录的文件夹,将 用adb push 电脑源目录 安卓的目的目录dbgsrv对应的文件放到手机文件的某个目录下

    image-20211129114055704

  2. 运行adb shell 然后su 切换到root权限,来到对应的目录下

    image-20211129114216868

  3. android_serverandroid_server64加可执行权限

    image-20211129114512249

  4. 观察此题check_flag函数在libnative-lib.so文件中,为arm64架构

image-20211129114849836

  1. 运行对应的server, 这里运行的是./android_server64

    image-20211129123450541

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

image-20211129124505788

  1. 打开IDA,拖入对应的so文件,选择Remote ARM Linux/Android debugger

image-20211129124845996

11、Debugger -> Process options,填写localhost,端口保持默认

image-20211129124956427

12、对应的手机上安装对应的APK文件

image-20211129125133781

13、IDA Debugger -> Attach to process, 选择对应的进程

image-20211129125415324

image-20211129125534279

14、在Java_com_example_rectf_MainActivity_checkflag 函数那里下断点,手机输入flag,点验证,IDA断下

image-20211129125834195

关于这个题的详细题解可以参考 https://zzzzsky.com/2021/11/29/NCTF2021_RE_WP/


参考文章

https://www.cnblogs.com/xuan52rock/p/11010304.html

https://blog.csdn.net/Breeze_CAT/article/details/106298559

https://www.i4k.xyz/article/haodawei123/104060906