标签:
时不时要用到动态调试so, 但总是不记得,这里记录一下。
步骤很简单,就是参考看雪论坛,非虫大哥的介绍。
http://www.kanxue.com/bbs/showthread.php?p=1111471
调试so必须可以。 Debugger→Attach→Remote ArmLinux/Android debugger Attach进程 CTRL+S找so 计算偏移找地址,F2下断后就OK 触发断点
以及luyangliu 的http://bbs.pediy.com/showthread.php?p=1325174
但是对于小菜(就是我)而言,看图明白一切。= =
1.打开模拟器,用cmd命令输入主机的配置:
[+]android_server 在IDA的根目录下
[+]设置tcp监听端口,一会IDA也是监听这个端口的
[+]接着shell启动android_server
2.在模拟器中打开你要调试的程序
3.打开IDA,依次选择
Debugger→Attach→Remote ArmLinux/Android debugger
设置端口:
选择要调试的程序:
接着就开始愉快的调试了。
========================================================================
【二部分:AliCrackMe_2分析记录】
找到了关键的函数,但是不懂arm指令,看着复杂的指令,只得留着后期分析了。
思路是很简单的。
1.结合smali2java, apktool 工具, 将分析到的java代码以及 没有分析出java代码,但是可以看懂smali的部分,结合起来,可以找到关键的判断位置:
调用的securityCheck返回值是true,可以使得程序解密成功。
2.接着直接读入so文件,找到对应函数位置(话说用动态调试,会出错,不知道什么原因,模拟器里面的程序也直接崩掉了。)
我发现直接按f12,可以得到程序的控制流图,(感觉和我的smali控制流图类似,都能够辅助静态分析)
好吧,就分析到这里了。深入的分析算法,由于arm指令缺少,只得搁浅了。
标签:
原文地址:http://blog.csdn.net/ls1160/article/details/43490945