LLVM 0 篇文章

Learning LLVM Part 2

UnderstandingLLVMPart2 咕咕咕,接上篇《LearningLLVMPrat1》。这篇大概梳理一下这两个月摸鱼时候遇到的坑。一些坑如果要编译成功 LLVM 树,那么熟练的使用各种方式把代码拖下来,再用合适的环境编译必不可少。其实编译这个巨大的东西,还需要好一点的硬件设备(一般我们会都卡在硬盘 IO 上,IO 卡住了就会 Cache 在内存里,然后内存爆炸,PC 就什么也动不了了),比如在目前的这个工

Learning LLVM Part-1

(这个还没写完 TAT)LLVM 不仅仅是一个编译器,而是一个有很多特性的编译框架,比如 JIT、支持了很多非类 C 语言,如 Rust 等等,此外,还是一种 AppStore 上的发布方式。LLVM 和其他编译器不同的地方是:LLVM 的中间表示,即 LLVMIR 是一个创新,有了比汇编语言更好的可读性 LLVM 比其他的编译器更加模块化 LLVM 不仅仅可以实现编译优化,还可以做到:架构模拟、动态二进制分析工具、源代码变换(抽象

详解 LLVM 混淆器

作者:KareemEl-Faramawi|ToshiPiazza 译:SkyeLLVM 混淆器是一个工业级的混淆器,在近几年的 CTF 比赛中频频出现。这篇博文主要包括了我们在理解混淆器本身的设计方面的工作,以及在模糊处理的实现中可能存在的弱点。我们使用 BinaryNinja 及其插件来使这方面的工作自动化。引言开源的 LLVM 混淆器显示为三个 3 个相对独立的 LLVM 分支,都是为了执行掩盖 CFG 的混淆模式,或是以