码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2020-04-20 21:24:11      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:查看进程   deb   serve   r文件   出现   Nid   wait   cal   for   

有时候,我们需要调试APK启动过程中的SO文件里的函数,使用附加的方法显然时机已经晚了!

比如想要调试SO库的JNI_Onload函数,很多时候需要在程序启动的时候就附加并且调试!

1.首先需要给AndroidManifest.xml设置android:debuggable="true",否则会出现无法附加到模拟器的错误!

技术图片

 

2.在CMD窗口下执行【adb devices】检查模拟器是否正常连接

技术图片

 

3.将IDA安装目录下dbgsrv文件夹下的android_server发送到安卓模拟器中,注意android_server文件所在路径不能有中文和空格,否则adb push命令会出错,我这里将android_server文件放在c盘根目录下,使用以下命令将android_server发送到模拟器中。
【adb push C:\android_server /data/local/tmp】

技术图片

 

4.执行【adb shell】命令

技术图片

 

5.执行【su】 获取root权限

技术图片

 

6.执行【cd /data/local/tmp】 将路径切换到/data/local/tmp下

技术图片

 

7.执行【ls -l】  查询目录下所有文件以及读写权限

技术图片

 

8.执行【chmod 777 android_server】  将android_server文件权限修改为777权限

技术图片

 

9.再次执行【ls -l】查看文件权限是否修改成功

技术图片

 

10.执行【./android_server】启动android_server

技术图片

 

11.原来的窗口别关,重新打开一个新的CMD窗口,执行【adb forward tcp:23946 tcp:23946】进行端口转发

技术图片

 

12.打开DDMS,打开就行了,只要能正常显示进程列表就行。然后DDMS别关!

技术图片

 

13.以Debug模式启动进程 命令格式为:adb shell am start -D -n 包名/包名.入口Activity
【adb shell am start -D -n com.crackme.jnidynamicregtest/com.crackme.jnidynamicregtest.MainActivity】
命令执行之后,可以看到安卓模拟器启动了进程,并且提示Waiting for debugger

技术图片

 

技术图片

 

14.打开IDA 菜单 Debugger->Attach->Remote ARM Linux/Android debugger,输入127.0.0.1点击OK

技术图片

 

技术图片

 

15.选择要附加的进程,点击OK

技术图片

 

16.此时IDA已经正常附加进程,并且暂停下来

技术图片

17.Debugger->Debugger option,勾选一下三项

技术图片

 

技术图片

18.打开刚才启动的DDMS,查看进程端口,此时为8613

技术图片

 

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

标签:查看进程   deb   serve   r文件   出现   Nid   wait   cal   for   

原文地址:https://www.cnblogs.com/fuhua/p/12740482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!