目录
相关资料
https://www.jianshu.com/p/d425140c6561
https://www.52pojie.cn/thread-886103-1-1.html (使用技巧,一定要看)
下载
官网:https://www.hex-rays.com/index.shtml
破解版:https://www.7down.com/soft/314815.html
常用快捷键
https://www.cnblogs.com/keepcuriosity/p/9246524.html
1)f5看伪代码
2)G:跳转到指定地址
必须要理解的概念
保存内存数据到文本文件
第1种办法:数据库转换
首先ctrl+w保存一下数据库,然后这是一个很漫长的过程(其实IDAPro如果有一个保存指定地址的功能就好了),IDAPro会提示当前保存的内存地址。所以保存的时候,先记住自己要用到的内存地址。看到保存完了自己需要的内存地址数据后,点击取消,这时会提示你保存数据库文件。
将数据库文件拖入到IDAPro中:
按住shift键盘,拖动滚动条到底,注意:只选16进制数据,否则后面用010Editor打开的文件就乱了。最后右击保存文件。
用010Editor打开保存的16进制文件:
搜索“64 65 78 0A 30 33 35”(dex.035),能搜索到N多个地方。
"dex.035"也就是诸多脱壳博客上所说的dex文件的标识,为什么能搜索到一堆?
1)可能原因1:其它的应用加载dex
1)可能原因2:当前调试的应用的dex文件多处会用到。
目前我不清楚为什么能搜索到一堆,根据https://www.cnblogs.com/kexing/p/8890162.html里面的dex文件头长度的规律进行排除(只能保证取的是dex文件,但是不一定是本应用的。)
调试android设备
https://blog.csdn.net/daide2012/article/details/75675210
- 下面的步骤一步也不能少!!!!
强调1:确保手机是root的,否则下面的许多adb指令根本就执行不了。
强调2:不要开着AndroidStudio,DDMS或者什么手机助手之类的应用。
1)将Idapro的server,通过shell开启server
注意启动server时一定要用su权限,否则idapro attach的时候只会显示2个进程。
开启server之前,除了要su之外,还要setenforce 0 ,否则会报# accept: Bad file number错误:http://z-gelen.com/index.php/archives/56/在IDA安装目录dbgsrv下获取android_server命令文件 运行命令: adb root adb remount adb push android_server /data #将文件拷贝到手机data目录 adb shell cd /data su setenforce 0 chmod 755 android_server #更改权限,赋予可执行权限 ./android_server #运行 root@Che1:/data # ./android_server IDA Android 32-bit remote debug server(ST) v1.17. Hex-Rays (c) 2004-2014 Listening on port #23946...
2)adb forward tcp:23946 tcp:23946
不执行这一步,IDAPro连接手机的时候会出现下面错误
Could not connect to 127.0.0.1:23946: 由于目标计算机积极拒绝,无法连接。
3)debug开启调试的应用
4)ideapro attach到进程()
选择Debugger->Attach->Remote ARMLinux/Android debugger,设置一下调试器的选项,这样调试器在这些特定的地方会自动暂停。
勾上“显示调试器断点指令”,这样在控制台能清楚的看到哪个断点被执行了。
可能会报的一个错:
,要用32位的idapro。(有的手机要开64位的)IDA Pro分析Native报incompatible debugging server:address size is 4 bytes
5)adb forward tcp:8700 jdwp:pid
执行这个指令一定要把你的as啥关了,否则会报下面的错。
应用Pid获取方式: ps|grep 应用包名
6)jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
一定要先执行步骤5,且pid要填写正确,否则报错:
7)ideapro打断点调试,只有5、6执行成功才能调试。
- 注意以下几点:
1)push android_server到android设备会提示PermissionDenied,需要通过adb shell,然后su,然后chmod 777改变放置android_server的目录的权限。
2)ideaPro与推送到android里的android_server位数要保持一致,要么都是32位,要么都是64位。否则attach到android设备会报错:incompatible debugging server:address size is 4 bytes
https://blog.csdn.net/li740207611/article/details/50984272
也有可能会遇到这个错误:Bogus or irresponsive remote server
http://www.voidcn.com/article/p-gwmqzyck-pa.html,尽量所有的adb命令都su,setenforce然后再执行,否则就容易报上面的错误。
3)android_server开启之后,一定记得端口转发,否则IdaPro连接127.0.0.1时,会提示目标计算机积极拒绝。
adb forward的细节(1):原理概述 https://blog.csdn.net/u013553529/article/details/80036227
4)jdb调试
使用的端口就是DDMS里面显示的
如果不成功,提示“致命错误,没有可用的VM",可以尝试一下: adb forward tcp:8700 jdwp:debug的应用的Pid号,我也是参照了https://www.52pojie.cn/forum.php?mod=viewthread&tid=778654&page=1这篇博客才成功的。
我的汉化版IDAPro,初次打开设备,是这么attach到设备的
0 条评论