码迷,mamicode.com
首页 > 其他好文 > 详细

【动态调试so文件】 + AliCrackMe_2分析记录

时间:2015-02-04 20:26:58      阅读:423      评论:0      收藏:0      [点我收藏+]

标签:

时不时要用到动态调试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指令缺少,只得搁浅了。



【动态调试so文件】 + AliCrackMe_2分析记录

标签:

原文地址:http://blog.csdn.net/ls1160/article/details/43490945

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