tag: OLLVM.md

Tag: OLLVM

3 posts
OLLVM笔记_3—Substitution学习
指令替换(Instruction Substitution)是OLLVM中相对简单但很实用的混淆技术。LLVM的思路是将简单的二元运算指令替换为等价但更复杂的指令序列,通过增加指令数量和复杂度来干扰静态分析,同时保持程序的功能完全不变。 原理指令替换的本质是利用数学等价性,将一个简单的运算转换为多个复杂运算的组合(类似VMP 万用门)。 比如将a + b替换为a - (-b),或者将a &a...
OLLVM笔记_2—Flat学习
控制流平坦化(Control Flow Flattening)是OLLVM中最重要的混淆技术之一。它的核心思想是将原本清晰的多分支控制流转换为一个基于switch语句的扁平循环结构,通过状态变量来控制程序的执行流程,从而大大增加逆向分析的难度。 原理控制流平坦化的本质是将程序的控制流转换为状态机模式。在原程序中,控制流直接通过跳转指令(如jcc、jmp)来实现,这种结构在静态分析时过于暴露原逻辑。...
OLLVM笔记_1—环境编译及BCF学习
工作原因,最近开始学习OLLVM,后边需要写一些pass给用来做混淆。因为主要是做混淆,所以OLLVM的整体代码并不在自己的学习范围内,主要是学习pass的原理及编写,后期也会根据学到的东西给OLLVM做对抗。目前计划学习的内容: OLLVM一些源码上的学习及函数调用。 OLLVM的混淆原理。 pass原理及编写。 一、项目目前学习有两个项目: 1、https://github.com...