IDA 动态调试So库 (一 基础篇)

时间:2024-10-25 10:41:49

分析的APK:

APK链接:/s/1XT4NH2JXuwD-nQiH3QR37g?pwd=egzs 
提取码:egzs 
--来自百度网盘超级会员V2的分享

Step 1: 安装IDA

下载链接:/s/1vl5wNsA7TYRfuyoOnRTUQg?pwd=b2y1 
提取码:b2y1 
--来自百度网盘超级会员V2的分享

Step 2:   运行Android_Server

Step 2.1: 推送server文件到手机。

在IDA安装目录,找到dbgsrv文件夹。将android_server复制后改名成as,防止文件名检测反调试

 

adb push android_Server文件目录 /data/local/tmp

 Step 2.2: 将文件改成可执行

adb shell   
su
cd /data/local/tmp
ls -l
chmod 777 as

 

Step 2.3: 运行android server,改变默认端口防止端口检测。

./as -p23456  

Step 2.4: 端口转发

adb forward tcp:23456 tcp:23456 

 Step 3: 在手机上或者模拟器上运行目标软件

Step 3.1: 将软件拖到Android Killer,找到包名及入口

 Step 3.2:Debug 运行软件 adb shell am start -D -n 包名/.启动类

adb shell am start -D -n /.MainActivity

Step 3.3:  打开DDMS,记录端口备用,等待IDA运行

 Step 4:IDA动态调试

Step 4.1: 将要分析的so库拖到IDA中

注意在拖库的时候不要拖错了,一般是armeabi-v7a目录下的库,其他目录下的库可能会没办法分析。

Step 4.2: 附加到目标进程

 

 Step 4.3: 设置Debbuger参数,勾选三项

 

 Step 4.4:IDA中按F9 放行,并且运用在Step 3.3中获得端口号在手机端放行

 

 jdb -connect :hostname=127.0.0.1,port=端口号

 Step 5 下断点进行调试吧