LLVM
如何向LLVM提交代码
· ☕ 3 min read
这几天给LLVM提了一些Commit,整一个提交过程非常复杂(因为其官方是不接受Github PullRequest的),review也十分严

OLLVM 排坑优化
· ☕ 7 min read
在写OLLVM的时候,经常会遇到各种坑点,这里就专门开一篇来记录一些自己遇到的、比较难处理的坑。本文动态更新。 复制基本块相关 在Obf的时候经

LLVM Opt view-cfg 优雅展示程序结构
· ☕ 2 min read
在写混淆的时候,经常会遇到一个问题:在实现一些会改变控制流的混淆时,会理不清现在的控制流到底是怎么样的。比如在平坦化时,需要涉及很多移动基本

OLLVM Pluto 之平坦化增强源码学习
· ☕ 5 min read
学 (抄)了一手Pluto的平坦化增强(FlatteningEnhanced),不知道为啥Pluto的这份代码和其他的代码风格差异极大,代码可

OLLVM 之全局变量间接访问源码学习
· ☕ 4 min read
我真的太懒了,半年前写的代码今天才翻出来写博客。 全局变量因为其所在的地址对于全局都是固定的,是否有一种可能,通过Pass将所有全局变量的地址

Windows下优雅使用LLVMPass
· ☕ 6 min read
LLVM16-有bug不建议折腾,究极复杂;16及以上的版本可以玩 本文第一次公布的时候是LLVM12版本,所以最初也是以这个版本的配置来写的

OLLVM 之控制流平坦化源码学习
· ☕ 10 min read
控制流平坦化 ,Control-Flow-Flattening(FLA),的基本思想主要是通过一个主分发器来控制程序基本块的执行流程。该方法把

OLLVM 之指令替换源码学习
· ☕ 4 min read
指令替换,Instruction-Substitution(sub),是一种比较简单的混淆方式,会将代码中一些简单的数学运算复杂化,但这种方

LLVM 调试环境配置
· ☕ 3 min read
感谢@Richar,教我配出了超级方便的LLVM Pass源码级调试环境 Orzzzz 准备工作 按照前一篇博客 LLVM编译与FirstPass 配置好LLVM

LLVM 编译与First Pass
· ☕ 7 min read
要开始正儿八经认真学LLVM了。先吐槽一下,这东西是真的麻烦,编译起来一堆坑,项目还贼大,一编译就是十几分钟至一个小时。还吃电脑各种环境,各

OLLVM 之虚假控制流源码学习
· ☕ 10 min read
本来这篇文章5月就写好了,然后因为各种各样的事情咕了好久,以至于今天才发出来。 虚假控制流,Bogus-Control-Flow(BCF),该