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

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


[可能的问题]

failed to copy 'android_server' to '/system/bin//android_server': Read-only file  system

方案:进入shell

# mount -o rw,remount /system
即可。来源:http://stackoverflow.com/questions/6066030/read-only-file-system-on-android




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值