LLVM 简介、编译流程、CLion 调试
LLVM 项目概述 LLVM是于2002年创建的一个模块化和可重用的编译器和工具链技术的集合。它能够编译UNIX的内核,并用于漏洞挖掘。LLVM包括了多个核心组件,其中关键的包括: 核心库(LLVM Core) - 优化器 负责将源码优化到LLVM的中间语言(Intermediate Representation, IR)。 Clang LLVM的前端编译器,将C/C++代码编译...
LLVM 项目概述 LLVM是于2002年创建的一个模块化和可重用的编译器和工具链技术的集合。它能够编译UNIX的内核,并用于漏洞挖掘。LLVM包括了多个核心组件,其中关键的包括: 核心库(LLVM Core) - 优化器 负责将源码优化到LLVM的中间语言(Intermediate Representation, IR)。 Clang LLVM的前端编译器,将C/C++代码编译...
前言 在之前的文章中我们介绍了 OLLVM 控制流平坦化的原理与实现。除了控制流平坦化之外,OLLVM 还提供了两个同样重要的混淆 Pass:指令替换(Instruction Substitution,-sub)和分割基本块(Block Splitting,-spl)。这两个 Pass 的核心目标各不相同——前者让每条指令变得"面目全非",后者让代码结构变得"...
OLLVM 简介 OLLVM(Obfuscator-LLVM)是一个增强LLVM编译器安全性的项目。它为LLVM添加了多种代码混淆的技术,比如控制流平坦化、指令替换和伪造控制流等,用来提高生成的二进制文件的复杂性。这使得分析和理解软件逻辑更加困难,从而保护应用程序不易被恶意用户攻击和逆向。 OLLVM的移植过程指的是将OLLVM集成到现有的开发流程中,使得你可以使用OLLVM提供的混淆功能...