首页
社区
课程
招聘
[原创]记使用Trace还原ollvm混淆的函数 #30天写作挑战#
发表于: 2020-9-1 20:02 28711

[原创]记使用Trace还原ollvm混淆的函数 #30天写作挑战#

2020-9-1 20:02
28711

https://bbs.pediy.com/thread-260650.htm
​https://bbs.pediy.com/thread-260655.htm

二位大佬的两种解题思路,膜拜膜拜

ollvm可以使用ida的trace功能辅助还原,看到样本上手尝试一下。
上面的帖子中有部分使用trace进行辅助还原,这篇帖子是通过trace后的汇编指令进行的ollvm还原过程,记录分享一下过程,不喜勿喷。

图片描述

调试器将为每条指令保存所有修改后的寄存器值。
https://www.hex-rays.com/products/ida/support/idadoc/1446.shtml

调试器将保存到达临时基本块断点的所有地址。
https://www.hex-rays.com/products/ida/support/idadoc/1628.shtml

调试器将保存发生函数调用或函数返回的所有地址。
https://www.hex-rays.com/products/ida/support/idadoc/1447.shtml

图片描述

定位过程可以参考上面2个帖子

结果显示:
图片描述

参数:

结果:

图片描述

trace后的cfg,变黄色就是执行的汇编指令被trace过

图片描述

sub_13CE4中调用了sub_13808和sub_172D0

参数1 pediy_imyang_lXcaTALmow
图片描述
对应trace文件
图片描述
以 0x0000000000000070看一下具体处理
图片描述
参数1 中的 0x70 -> 0x51,是通过如下进行的查询0x70的位置是0x51
图片描述
最终结果为
图片描述

参数1
图片描述
加密后
图片描述

参数3 www.pediy.com&kanxue
图片描述

图片描述
trace文件中参数3只用了16个字符进行后续的处理
这里的处理和参数1处理的方式相同
图片描述

图片描述

参数3
图片描述
加密后
图片描述

使用参数1加密后的字节和参数3加密后的字节进行计算加密生成结果

图片描述

图片描述

图片描述

图片描述

拼接结果
A4B8B6C8 9EB47F4F 29B44D47 C7382F85
和结果对比

797903090001 a4b8b6c8 9eb47f4f 29b44d47 c7382f85 1ad57618 f9b820c5 d55298cb 5f941c8c

根据以上的分析可以得到算法如下:
参数1加密后字节

参数3加密字节

以图一为例,计算如下:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2020-9-2 09:43 被neilwu编辑 ,原因:
上传的附件:
收藏
免费 18
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  Editor   +1.00 2020/09/02 精品文章~
最新回复 (19)
雪    币: 2244
活跃值: (1901)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
tql
2020-9-2 11:30
0
雪    币: 26588
活跃值: (63242)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
3
tql!感谢分享!
2020-9-2 12:30
0
雪    币: 10935
活跃值: (7304)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
4
Editor tql!感谢分享!
感谢看雪 
2020-9-2 12:46
0
雪    币: 6573
活跃值: (3873)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
5
感谢分享! 
2020-9-2 13:51
0
雪    币: 10935
活跃值: (7304)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
6
LowRebSwrd 感谢分享!
2020-9-2 17:38
0
雪    币: 10935
活跃值: (7304)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
7
number_Z tql[em_91]
2020-9-2 17:39
0
雪    币: 6
活跃值: (1125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
有时间再研究哈,多谢楼主分享
2020-9-3 08:15
0
雪    币: 3372
活跃值: (752)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2020-9-3 16:33
0
雪    币: 1378
活跃值: (3067)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学到了..
2020-9-4 21:21
0
雪    币: 158
活跃值: (755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
66666学以致用
2020-9-5 14:21
0
雪    币: 83
活跃值: (1087)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
666
2020-9-5 17:46
0
雪    币: 26588
活跃值: (63242)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
13

欢迎更多的小伙伴参与到 #30天写作挑战#中来!活动详情:https://bbs.pediy.com/thread-261705.htm


2020-9-7 16:53
0
雪    币: 3212
活跃值: (728)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
tql
2020-9-8 06:06
0
雪    币: 499
活跃值: (2189)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
15
这特强了吧 ddctf2020 那道安卓用这个方法能去ollvm混淆吗?
2020-9-8 16:45
0
雪    币: 10935
活跃值: (7304)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
16
Zard_ 这特强了吧 ddctf2020 那道安卓用这个方法能去ollvm混淆吗?[em_71]
求样本
2020-9-8 17:27
0
雪    币: 499
活跃值: (2189)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
17
ddctf.zip    链接: https://pan.baidu.com/s/1u38ccXmLTfDgbdle5tB8vg  密码: c5d0  三道题 好像有两道都用了ollvm混淆
2020-9-8 19:14
0
雪    币: 10935
活跃值: (7304)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
18
Zard_ ddctf.zip 链接: https://pan.baidu.com/s/1u38ccXmLTfDgbdle5tB8vg 密码: c5d0 [em_71] 三道题 好像有两道都用了ollvm ...
谢谢你 
2020-9-8 21:34
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
你好请问trace时,类似 F42D1E08: got SIGSEGV signal (Segmentation violation) (exc.code b, tid 19422) 这样的报错是什么原因啊,用的是ida7.0
2022-2-18 12:39
0
雪    币: 116
活跃值: (1012)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
支持一下
2023-3-14 13:13
0
游客
登录 | 注册 方可回帖
返回
//