首页
社区
课程
招聘
[求助]IDA 动态调试so库,断点问题
发表于: 2013-10-15 14:44 16783

[求助]IDA 动态调试so库,断点问题

2013-10-15 14:44
16783
使用IDA动态分析了程序 的so库, 然后得到了关键入口函数的偏移。 A286 。 根据逻辑,这里是肯定会调用 的。

然后开启IDA的动态调试, ctrl+s 找到相应的so 。

此时在列表中有两个so . 一个是R X  一个是R W,根据静态分析的偏移量找过来,再根据十六进制来对比。 确定RW处是真实的函数。

但此时这两个so段均显示为DCB,而不是汇编指令,F2加了断点后,也断不下来。。。

请问1:RW 与RX两个有什么区别?我的理解 X是可执行,所以应该是.text段中的代码,但实际情况却是RW中是代码。

请问2:如何在DCB的这种数据中加断点,并断下来?


[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
2
要在RX的这个so中下断,如果断下来IDA会自动分析出ARM汇编代码。你也可以通过16进制数据对比,找到正确的位置,然后按 C 进行强制汇编。
2013-10-15 14:55
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我理解也是,但RX这一段的长度没有A286这么长。。。。
2013-10-15 15:21
0
雪    币: 130
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
RX表示可读可运行,一般是代码段,RW是可读写,应该是数据段。
2013-11-9 01:34
0
雪    币: 411
活跃值: (558)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
跟原来的汇编代码进行对比,按“C”汇编。然后,在这里设置断点,再回去调用这段代码,就可以到达断点处了。
没有必要全部都把十六进制的数给汇编了。只需要在你需要设置断点的地方给变成汇编代码就可以了
2014-5-8 17:25
0
雪    币: 538
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
一般来说so会有两个以上LOAD,第一个一般是从文件开始到代码什么的,代码应该都在里面才对,后面的LOAD一般是全局数据之类的,代码一般在第一个LOAD里面,用readelf -l 看看LOAD的长度,和.text 的偏移 比较下
2014-5-8 18:15
0
游客
登录 | 注册 方可回帖
返回