今天看啥  ›  专栏  ›  看雪学苑

自实现一个LLVM Pass 以及 OLLVM 简单的魔改

看雪学苑  · 公众号  · 互联网安全  · 2024-07-17 17:59

文章预览

一 前言 总结LLVM,OLLVM相关知识,自实现一个Pass,魔改OLLVM中的Pass,加深OLLVM的理解。 环境:LLVM 9.0、CMake:3.16.3 二 LLVM介绍及编译 LLVM介绍 首先介绍下LLVM是什么,借用下面的这张图说明一下: LLVM是一套编译器基础设施项目,分为前端后端和中间表示(IR Intermediate Representation),从图中可以看到有曾经用过的Clang,Clang就是llvm用于处理C和C++的前端。除了 Clang,LLVM还有支持其他语言的前端,例如 Rust、Swift、Python 等。这些前端会将对应语言的源代码转换成 LLVM 的中间表示,使得 LLVM 能够处理多种语言的编译需求。后端部分则负责将 LLVM IR转换成特定目标平台的机器码或汇编代码。 OLLVM 使用的就是 LLVM IR 来处理源代码,它能够获取到程序的结构和控制流信息,通过对这些信息的处理增强代码混淆的效果。 LLVM IR有两种文件格式.ll和.bc,.ll 文件和 .bc 文件 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览