ida调试mips架构程序boa

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ida调试mips架构程序boa相关的知识,希望对你有一定的参考价值。

参考技术A Options>General>Disassembly>Auto comments √

Search>Text>输入字符串

ps:这时候找到的字符串在comment里面能看见,如果不开auto comment的话,可能会看的一头雾水。

IDA过程:Debugger>Attach to process>Debugger warning>Choose process to attach to>成功进入附加调试

IDA官方给出的处理器类型如下:

安卓IDA动态调试总结

安卓ida动态调试总结

不出问题的理想步骤(带反调试的版本)

需要的软件:

  • ida7.0/6.8
  • ddms(或者sdk/tools/monitor.bat)
  • root真机一部(因为android_server是基于arm架构,而大多数模拟器基于x86,所以最好是真机)或者AVD模拟器
  • 待调试apk(test.apk,包名:)
  • adb

正确步骤:

  1. 新开一个cmd
  • adb push android_server /data/local/tmp(android_server在ida的dbgsrv目录下)
  • adb shell
  • su
  • cd /data/local/tmp
  • chmod 777 android_server
  • ./android_server
  1. 新开一个cmd
  • adb install test.apk
  • adb forward tcp:23946 tcp:23946
  • adb shell am start -D -n 包名/类名(程序包名可以在AndroidMainfest文件中找到,类名我是用androidkiller的入口函数;这是以启动模式启动)
  1. 打开IDA,Debugger->attach->android_server ,

    技术分享图片

先Debug options设置:

技术分享图片

然后hostname设置如图:

技术分享图片

然后点击ok,弹出进程列表

技术分享图片

Search apk包名,然后记住进程ID,然后重要的一步,在Debug option里面:

还是选中那三个选项。

4.cmd

  • adb forward tcp:8899 jdwp:11514 (11514是进程的id)
  • jdb -connect com.sun.jdi.SocketAttach:port=8657,hostname=127.0.0.1

jdb的port参考的是monitor的相关进程的端口号:

技术分享图片

等前面的蜘蛛变绿(不用jdb,前面蜘蛛为红色),然后就可以F9运行了。

下面说说遇到的问题:

1.首先保证apk是否支持debuggble模式,在AndroidMainfest文件里,application结点android:debuggable="true",如果不是,可修改后二次打包

如:

技术分享图片

2.原手机android_server已经在运行问题:

在执行./android_server时弹出bind: Address already in use

解决方案:

在adb shell 里:ps | grep android_server

然后他会输出进程ID,第一个数即为进程id:

如输出:root 12212 13423 23213 后省略

然后执行kill -s 9 12212

3.IDA attach报错

(1)incompatible debugging serer:address size is 4 bytes

错误原因:是android_server是32位的,而ida是64位的。

解决方案:启动32位ida

(2)Bogus or irresponsive remote server

错误原因:SELinex安全策略限制

解决方案:

  • adb shell
  • su
  • setenforce 0

以上是关于ida调试mips架构程序boa的主要内容,如果未能解决你的问题,请参考以下文章

MIPS基础

如何在linux主机上运行/调试 arm/mips架构的binary

路由器漏洞调试的一些技巧

ida调试呢没有出现本地调试

安卓IDA动态调试总结

利用IDA Python静态分析函数调用路径