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

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

2015-8-5 23:01
33622
在一堆堆大牛的浪潮中,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天时间才成功弄好,其实调试本身没什么难,难的是前面一系列疑问,当你一个一个问题思考过,动手弄过,查资料等把问题解决了,才是真正的经验,会学到很多东西,比调试本身更有乐趣,希望能给跟我一样的小白提供一些思路吧。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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