IDA Pro 6.xx 看图教程之用伪c代码调试获取某社交软件的so库中所需数据
本帖最后由 dalao 于 2014-6-18 18:32 编辑IDA Pro 6.xx看图教程之用伪c代码调试获取某社交软件的so库中所需数据
作者:大老
博客:blog.sina.com.cn/dalaoqd
先说一下前期的准备工作
引用一篇教程里面的步骤
android native c 的so调试
基本上跟linux 一样
1.把ida 目录下android_server 传到android 目录中
如:
adb pushandroid_server /data/local/tmp/
adb shell 进入模拟器
su ------->这个必须要打主要是提权,不然你后面看到的进程就寥寥无几啦。
cd /data/local/tmp/
chmod 755 android_server ========》给你上传上来的文件加运行权限
./android_server ------》运行你传上来的服务端给ida提供调试服务
看到监听端口 23946
2.在windows 控制台下转发window 到模拟器或者手机的端口
adb forward tcp:23946 tcp:23946 =======》这个是端口转发
3.ida 中选择android 调试
在Debuggger 中的process options 的
hostname 填上localhost
port: 23946
4.在Debuggger 中的attach 上android 所对应的安卓程序就行了
下面来张ida pro 调试的布局说明。
备注:这张是静态分析到关键点设断点后的抓图。
下面重点来了在这按F5,前提你要有arm插件哦
现在的结果是不是就清晰明朗了很多。根据这个结果很快定位到关键的call来到了下面这张图
以下是对应的汇编代码
libsign.so:5717963C LDR R3,
libsign.so:5717963E LDR R6,
libsign.so:57179640 ADD R1, PC ; dword_5717BDA4
libsign.so:57179642 STR R3,
libsign.so:57179644 STR R6,
libsign.so:57179646
libsign.so:57179646 loc_57179646 ; CODE XREF: libsign.so:57179600j
libsign.so:57179646 MOVS R0, R7
libsign.so:57179648 BLX sub_5717939C ===========》关键的子程序
libsign.so:5717964C ADD R0, SP, #0xB8
libsign.so:5717964E BL _ZN12Sha256Digest5resetEv ; Sha256Digest::reset(void)
libsign.so:57179652 MOVS R0, R7
libsign.so:57179654 BLX strlen_0
libsign.so:57179658 MOVS R1, R7
libsign.so:5717965A MOVS R2, R0
libsign.so:5717965C ADD R0, SP, #0xB8
对比一下2部分的代码,汇编代码看参数很难看清楚,但是伪c代码的参数还有程序执行流程就非常的清晰了。
不难看出F5功能的强大。
再这个关键点上设断点看参数入口。按F8后来到了下面这张图
这里已经可以得到想要的数据结果了。我的教程也告一段落。希望能帮助到大家
大老
http://blog.sina.com.cn/dalaoqd
20140618
多多学习多多有益。 感谢楼主辛苦分享! 楼主,没有f5求解。。 好贴,赞赞赞 好贴,赞赞赞 求ida6.8 :按F5的arm插件哦 楼主辛苦啦,我去好好研究下 感谢楼主辛苦分享!
页:
[1]
2