首页
社区
课程
招聘
[原创]分享一些原创的基于llvm的过程内控制流处理技术
发表于: 2018-4-3 15:15 9894

[原创]分享一些原创的基于llvm的过程内控制流处理技术

2018-4-3 15:15
9894

~~~
补充一些认真的讨论

 

刚重新看了下hikari的string encryption pass,大概是这个流程
1,扫描function里所有inst的operand,判断是不是constexpr,如果是,将常量表达式退化成指令序列
2,经过1处理,函数所有引用的global variable都会是某个inst的直接operand,所以扫描function里所有inst的operand,判断是不是globalvariable,如果2结果是gv,创建加密拷贝,并替换operand。
3,函数入口插入一个basicblock,插入解密代码,解密1、2处理的所有gv。

 

而Armariris和xse都是直接迭代访问module::global_iterator直接处理所有全局常量的。缺乏hikari的局部化处理能力。二是,hikari对多种类型的常量都具备处理能力。
总体上hikari的string encryption更好一些。流程比较清晰,覆盖场景也比较广。


 

首先下载一个obfuscator-llvm
https://github.com/obfuscator-llvm/obfuscator

 

再下载一个ollvm的分支版本Hikari
https://github.com/HikariObfuscator/Hikari

 

再下载一个ollvm的分支版本Armariris
https://github.com/GoSSIP-SJTU/Armariris

 

再下载一个ollvm的分支版本
https://github.com/yag00/obfuscator

 

yag00的版本实现了字符串加密,xse pass,不过稳定性一般,明显测试的不多,corner case处理的不好。可以参考,但不抄它,要是看不懂就忽略这个版本。
Armariris的字符串加密功能略好一点点,不用看了直接抄袭。Hikari的anti class dump做的很有特色,闭着眼睛抄就行。另外Hikari的anti hooking、anti debugging功能有,但是不带prebuilt ir,没法直接抄。我们先关注下这个仓库,等他开源了prebuilt,再继续抄。

 

ollvm自己的bogus control flow做的不太好,谓词都是浮点运算,比较明显可辨,但是没办法,我们又不会写自己的。

 

酌情考虑,control flow flattening、bogus control flow、binary operator subsitition抄ollvm的,字符串加密抄Armariris的,anti class dump抄Hikari的,Hikari的IndirectBranch也可以抄来,做的也很有特色。

 

最后,把这锅粥用cmake生成sln,运气好了,vs直接编过,就可以在看雪上发布作品了。因为做的跟屎一样,就叫他 shit llvm 吧,简称sllvm。

 

写代码是不可能的了,这辈子都不可能写代码了,编译原理又不会,c++11也看不懂,只有上github抄袭才可以维持得了生活这个样子。github上人又好,代码写的又好,个个都是人才,我超喜欢在里面的!

 


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

最后于 2018-4-3 18:17 被bitt编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (126)
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么看来,符号执行一定在IDA里找不到符号了,我要赞助你网站的搭建!
2018-4-3 15:27
0
雪    币: 435
活跃值: (1277)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
3
东湖飞燕 这么看来,符号执行一定在IDA里找不到符号了,我要赞助你网站的搭建!
有眼光啊你,我都忘说了

发帖的时候,指着subsitution  pass的log里的c++  mangling  name,说,这个叫符号加密,然后打开strings窗口说,看找不到符号了!!
然后说,符号加密能对抗符号执行。
哈哈哈哈哈哈哈哈
2018-4-3 15:29
0
雪    币: 93
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
emmm  所以sllvm的字符串加密功能是用Armariris的pass实现的?
2018-4-3 15:49
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
别玩这些没用的了
2018-4-3 15:55
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
指令替换,流程控制,指令变形,你还有多少叫法
2018-4-3 15:56
0
雪    币: 435
活跃值: (1277)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
7
我猜他是直接用Hikari的string  encryption  pass,这个是hikari自己实现的,和xse、Armariris的都不同
说白了,可能就是直接吧hikari的代码,拿去在windows上编译了下
他要是能像我说的,到处抄一点点,都算是有本事了
2018-4-3 15:57
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
放弃吧,揪着一点东西,只能证明你还是追逐我脚步
2018-4-3 15:57
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
9
这事已经定论了,还做无谓的挣扎
2018-4-3 15:58
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
除了猜测就是臆想,帖子不是为内容,只是为了一个设定好的结果,别做技术,拍电影去吧
2018-4-3 15:59
0
雪    币: 18
活跃值: (561)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
好不热闹~
2018-4-3 16:00
0
雪    币: 435
活跃值: (1277)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
12
七少月 除了猜测就是臆想,帖子不是为内容,只是为了一个设定好的结果,别做技术,拍电影去吧
我们讨论的是,我分享的shit  llvm,跟贵  strong(weak?)  llvm没有关系。谢谢。
2018-4-3 16:01
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
有本事想想如果后端要大幅度改,是不是该做handle,这玩意说到底还是没虚拟
2018-4-3 16:02
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
你不服我,我们可以单挑,安卓随你选一个
2018-4-3 16:03
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
天下文章一大抄,何况开源代码?  抄就抄了,敢做还不敢承认了。说错了。。。他承认了,只是改口了。。。
最后于 2018-4-3 16:07 被wx_kx19819编辑 ,原因:
2018-4-3 16:04
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
七少月 这事已经定论了,还做无谓的挣扎
厉害了,哪来的定论??
2018-4-3 16:06
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
17
又换贴了啊,真有意思,你们慢慢玩,定论就是你看到的,
2018-4-3 16:07
0
雪    币: 435
活跃值: (1277)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
18
七少月 有本事想想如果后端要大幅度改,是不是该做handle,这玩意说到底还是没虚拟
那您倒是开源啊,没抄hikari,至少你尊重下obfuscator-llvm
2018-4-3 16:07
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
19
该服还是要服的,你们可以一起上
2018-4-3 16:08
0
雪    币: 435
活跃值: (1277)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
20
七少月 你不服我,我们可以单挑,安卓随你选一个
哈哈哈哈哈哈啊哈哈哈哈
2018-4-3 16:08
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
七少月 又换贴了啊,真有意思,你们慢慢玩,定论就是你看到的,
可我真的,啥也没看到啊除了我的槽点,,本来就是我们在慢慢玩shitllvm,大侠你非要进来说我们抄袭你,你说,我这钱是投不投了!?
2018-4-3 16:09
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
22
我就不遵守了,如何了,好怕
2018-4-3 16:10
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
23
换了几个号,还是那批人,地址都一样
2018-4-3 16:11
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
七少月 换了几个号,还是那批人,地址都一样
我要不是那批人的话    喊爸爸?
最后于 2018-4-3 16:13 被东湖飞燕编辑 ,原因:
2018-4-3 16:12
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
25
我就说,我七少月就不遵守了,又如何
2018-4-3 16:14
0
游客
登录 | 注册 方可回帖
返回
//