首页
社区
课程
招聘
[原创]OLLVM混淆+VS 2019/22 Windows环境搭建
发表于: 2026-8-28 05:33 3790

[原创]OLLVM混淆+VS 2019/22 Windows环境搭建

2026-8-28 05:33
3790

在很早之前就听过OLLVM混淆了,但是项目用户不多没拉闸过所以没有去弄

最近在做的注入项目DLL被AC特征了 正好趁着这个机会来搞一下OLLVM混淆看看能不能规避特征

笔者在网上找了很多相关资料 但是多数要不是安卓的 要不就是好几年之前的"牢文章"

为了帮助未来可能换设备的自己 决定正好记录下OLLVM混淆的搭建全流程


在正式开始记录之前 还是先来科普下OLLVM是什么 

LLVM是一个编译器中负责代码生成的工具 比如VS 2019默认的同款工具是 Visual Studio 2019 (v142)VS 2022的生成工具默认是Visual Studio 2022 (v143) 

OLLVM呢 则是基于LLVM的开源代码混淆工具 带有源码级混淆功能 


所谓源码级混淆可以通俗易懂的理解为:

写好的源文件 -> OLLVM混淆 加一堆没用的变量声明,控制语句等

(例如:

    int a = 100;

    if( a != 100)

        return;

)

-> 编译为

而正常项目编译逻辑则是:写好的源文件 -> 编译


可以清晰看到使用OLLVM混淆后,生成的代码多了很多没用的跳转(即控制流平坦化&虚假控制流),以及生成的代码字节复杂化,源码中一行一个a += 100; 可能变成 a += 2 * 4 + 552 / 6;(即指令替换),还有将用到的字符串加密 。。


官方的解释为:通过指令替换、控制流平坦化和虚假控制流等手段显著增加二进制逆向难度

而对于我们来说,可以通过每次混淆程度不同,来规避AC的程序特征


如上所述,OLLVM是基于LLVM的工具,所以需要先在IDE中安装LLVM

笔者这里使用的IDE是Visual Studio 2019, 已经将LLVM集成进组件了,VS 2019 2022版本也可以直接使用笔者的办法来安装LLVM,其他版本可以自行尝试


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

收藏
点赞 95
打赏
分享
最新回复 (54)
雪    币: 91
活跃值: (363)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2026-8-28 08:21
0
雪    币: 3536
活跃值: (7794)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
XUEXI
2026-8-28 08:53
0
雪    币: 6158
活跃值: (11024)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习中
2026-8-28 09:48
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
mark
2026-8-28 09:52
0
雪    币: 398
活跃值: (1157)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习下
2026-8-28 10:24
0
雪    币: 297
活跃值: (9618)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
7
大手子666
2026-8-28 10:48
0
雪    币: 0
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
666
2026-8-28 13:31
0
雪    币: 1210
活跃值: (2092)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2026-8-28 15:27
0
雪    币: 132
活跃值: (1220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这个可以指定某几个函数加吗
2026-8-28 15:27
0
雪    币: 158
活跃值: (5651)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习下 
2026-8-28 15:53
0
雪    币: 206
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
学习下 
2026-8-28 16:10
0
雪    币: 204
活跃值: (264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学习学习
2026-8-28 16:25
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
学习下
2026-8-28 18:12
0
雪    币: 255
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
罗小墨 这个可以指定某几个函数加吗
支持的 这个在我引用的仓库文档中有提到如何使用
2026-8-28 21:51
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
学习
2026-8-28 22:08
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
66学习
2026-8-28 22:38
0
雪    币: 25
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
学习
2026-8-29 01:01
0
雪    币: 29
活跃值: (1195)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
66666666666
2026-8-29 02:37
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
666
2026-8-29 17:17
0
雪    币: 45
活跃值: (4306)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
感谢分享
2026-8-29 18:40
0
雪    币: 720
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
狠狠学习好吧
2026-8-29 22:30
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
学习一下
2026-8-29 22:50
0
雪    币: 0
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习一下
2026-8-29 23:54
0
雪    币: 79
活跃值: (1706)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
888
2026-8-30 05:58
0
游客
登录 | 注册 方可回帖
返回