首页
社区
课程
招聘
[原创]初试IDA&FRIDA联合调试简单ollvm保护的加密函数源码
发表于: 2020-7-13 12:03 13325

[原创]初试IDA&FRIDA联合调试简单ollvm保护的加密函数源码

2020-7-13 12:03
13325


    这是3W班5月的习题。题目要求是 e函数需要逆向出源码。yang老师本意应该是训练下trace的汇编代码阅读能力,但是由于ollvm混淆开的比较低,所以IDA的反汇编代码也是可以阅读,当时偷懒就没有专心去阅读trace了。


    通过本题初次尝试了还原so文件代码,在没有开太多混淆的情况下还是可以使用IDA配合frida还原,像之前3月题目混淆开的高一点这种方式就要搞死掉了。


还原代码


解题思路

本来想使用IDA Trace,拿到日志后,没有直接定位到计算的地方,所以整个还原是使用IDA动态调试和Frida来完成的。


步骤1:查看函数e

函数e中直接使用了sub_1500C,传入v42就是bytes数组,v41就是我们返回的秘钥

使用Frida可验证,这里返回值存储的位置需要注意。


步骤2:查看sub_1500C

sub_1500C中计算了加密字符串长度,然后引入了新字符串www.pediy.com&kanxue。之后直接调用sub_13CE4计算加密。

参数列表

x0 字符串pediy_imyang_abcdefghij

x1 字符串长度


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

最后于 2020-7-13 13:33 被无造编辑 ,原因:
上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 19950
活跃值: (4942)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2020-7-14 07:29
0
雪    币: 222
活跃值: (1910)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享经验
2020-7-14 23:15
0
雪    币: 529
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享!
2020-7-15 08:36
0
雪    币: 196
活跃值: (5906)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
5
ollvm混淆强度不是很强的时候,可以通过ida静态分析参数的交叉引用和返回值的来源,定位到与参数相关的函数,然后使用frida hook这些函数,定位到处理参数或生成返回结果的关键函数。
但是ollvm混淆强度比较强的时候,还是需要用到3月学习的trace方法来分析出参数被加密算法计算的过程。
2020-7-16 17:04
1
雪    币: 1640
活跃值: (1719)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
大佬,步骤1,查看1500C函数的返回值时,为什么不能hexdump(this.args0),还要偏移后才能得到结果
2020-7-17 14:58
0
雪    币: 158
活跃值: (1111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
您好,请问,ida trace下完断点后的时候frida就无法主动调用了,查询资料说是ptrace被占用了,但是视频为什么是成功的???很迷惑!
2022-3-29 22:44
0
雪    币: 162
活跃值: (959)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mb_emolffos 您好,请问,ida trace下完断点后的时候frida就无法主动调用了,查询资料说是ptrace被占用了,但是视频为什么是成功的???很迷惑!
frida要先hook,hook后就不占坑了,后面再ida持续占坑
2022-6-22 00:33
0
雪    币: 158
活跃值: (1111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
骇客技术 frida要先hook,hook后就不占坑了,后面再ida持续占坑
如果frida先hook,然后再利用ida trace会发现原来的地址偏移全部都改变了(frida hook打印的地址不能能用了,不知道为啥)。。。。
2022-11-14 09:22
0
游客
登录 | 注册 方可回帖
返回
//