首页
社区
课程
招聘
[原创]一步步搭建ida pro动态调试SO环境。
发表于: 2015-8-5 23:01 34372

[原创]一步步搭建ida pro动态调试SO环境。

2015-8-5 23:01
34372

在一堆堆大牛的浪潮中,android安全越来越火,跳入这个“坑”的人也一堆堆,门槛越来越低。小白我也来分享一下ida调试so的经历。

背景:无任何android开发经验,2天时间搭建调试环境并调试成功。
目的:调试某android平板中的某个app的so文件,并逆向出关键算法。
工具:ida pro6.5 +adb+刷机精灵

第一步准备工具:android平板,数据线,弄过来platform-tools,里面包含用到的adb工具,ida6.5pro, ida6.7pro.
第二步从平板中取出app的so文件:由于调试时它用到许多系统lib,我直接把/system和/data全部pull到本地上,很多文件,后面会用到。
第三步:push ida6.7中的android_server文件到 平板的/data/local/tmp目录中,然后改执行权限,始终不成功,说权限不允许之类的,折腾了很久,上网查了才知道,先要root,网上下载了360root工具,不成功,又下载刷机精灵,成功了。然后可以改权限了。
第四步:执行android_server,老是说segment fault,用root权限也不行,怀疑android_server有问题,是不是ida是6.7的问题,然后换ida6.5的android_server推到平板中去,尽然成功了,原来版本太高的原因吗?
第四步:把要调试的so库拖到ida6.5中分析,这里要android_server要与ida版本配套一起才行,不能混搭,比如ida6.5的android_server只能与ida6.5一起用才行,不能与ida6.7一起用,否则会有错误,说是服务版本不匹配之类的。
第五步:另开一个cmd, 输入adb forward tcp:23946 tcp:23946
第五步:设置调试选项路径,这里一定要是平板中的真实路径,不过一开始路径不对,可以随便设,附加后,ida会提示错误提示,按提示的路径回过头去改正,另外一些系统库,如libc.so,linker说找不到,那之前pull出来的/system/lib下面文件就有用了,把路径map到这个目录下就行了。
第六步:设置好调试选项后,F9选择arm android的那个调试器就行了,再选附加进程,发现只有一个进程。为什么呢,为什么呢,上网查了下,原来运行android_server时一定要先su一下,即在root权限下运行才能看到平板中的进程。
第七步:root下运行android_server后,把上面的步骤再来一次,ida6.5附加时可以看到一堆进程,找到要调试的so所在的进程后,附加就断在libc.so的一个地方,后面的就是真正调试的就不用说了。
万事开头难,花了2天时间才成功弄好,其实调试本身没什么难,难的是前面一系列疑问,当你一个一个问题思考过,动手弄过,查资料等把问题解决了,才是真正的经验,会学到很多东西,比调试本身更有乐趣,希望能给跟我一样的小白提供一些思路吧。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (17)
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你的6.7是在哪下的
2015-8-5 23:51
0
雪    币: 10681
活跃值: (3584)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
谢谢楼主分享
2015-8-6 07:49
0
雪    币: 2325
活跃值: (4918)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看到了 IDA6.7····
2015-8-6 09:31
0
雪    币: 5855
活跃值: (438)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
5
楼主有IDA 6.7?是自己买的么?
2015-8-6 10:23
0
雪    币: 7
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
应该是买的,,
2015-8-6 12:11
0
雪    币: 11
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
花大洋买的,ida6.8都出来了
2015-8-6 12:17
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
眼花了,把SO看成了IOS。
2015-8-10 08:42
0
雪    币: 74
活跃值: (748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我也准备搞Android了,感谢分享
2015-8-10 09:31
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
其实现在编译与调试NDK程序已经不算特别艰难了,主要是没有比较系统和统一的标准
2015-8-10 16:04
0
雪    币: 9479
活跃值: (757)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
花多少钱买的
2015-8-11 00:29
0
雪    币: 11
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
折合RMB差不多2w多吧,记不清了,官网有
2015-8-11 12:28
0
雪    币: 5451
活跃值: (3537)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
13
真是有钱人。楼主是善于总结的人,很早就调过很多次,也没有想着把步骤记下来,熟练了也就懒了。mark一下备忘吧。辛苦了
2015-8-11 13:15
0
雪    币: 19
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我喜欢这个IDA
2015-8-14 14:55
0
雪    币: 6
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
楼主,我老是提示operation not permitted 怎么回事啊
2015-8-20 00:38
0
雪    币: 6
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
就是 adb shell chmod 755 /data/local/tmp/debugnativeapp的时候
2015-8-20 00:39
0
雪    币: 6911
活跃值: (9069)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
17
模拟器可以用来动态调试吗?
2015-8-21 18:39
0
雪    币: 11
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
用 root权限
2015-8-24 22:45
0
游客
登录 | 注册 方可回帖
返回
//