这篇文章来讲讲 AFL 中 LLVM 模式插桩的实现。与 GCC 模式相比,LLVM 模式的插桩实现更加优雅,拓展起来更加灵活。所有要对 AFL 进行拓展,那么就有必要详细了解 LLVM 模式插桩的实现。这部分主要有三个文件alf-clang-fast.c
, alf-llvm-pass.so.cc
, afl-llvm-rt.o.c
,同时有必要理解一些afl-fuzz.c
内的代码。
这篇文章主要分析 AFL 中插桩模块的源代码(GCC模式),包含afl-gcc.c
和afl-as.c
两个文件。在 GCC 模式下实现插桩的方式是直接对汇编代码进行修改,相较于 LLVM 模式比较简单粗暴。本文主要是对AFL的大体实现思路进行分析,不会详细解释每一段代码的作用。
今年9月腾讯tctf出了一道MBA混淆题,仅有1解。前些天又在看雪刷到了有关MBA算法的帖子,激起了我的兴趣,于是去读了一下提出MBA算法的论文 Information Hiding in Software with Mixed Boolean-Arithmetic Transforms,这篇博客简单记录了论文中的关键内容。
天堂之门 (Heaven’s Gate) 是一种在32位WoW64进程中执行64位代码,以及直接调用64位WIN32 API函数的技术。从安全角度看,天堂之门可以作为一种软件保护技术,用于防止静态分析以及跨进程的API Hook;从恶意代码角度看,该技术可以绕过沙盒对WIN32 API调用的检测。本文介绍了天堂之门技术的原理及C语言实现。
WoW64(Windows 32-bit on Windows 64-bit)是Windows x64提供的一种兼容机制,可以认为WoW64是64位Windows系统创建的一个32位模拟环境,使得32位可执行程序能够在64位的操作系统上正常运行。本文的主要内容是探索WoW64进程的初始化过程。
主要参考无名侠的WP:强网杯: unicorn_like_a_pro
和SYJ的WP:以"2021强网杯unicorn_like_a_pro"入门unicorn
Unicorn非官方文档:Unicorn Engine Reference (Unofficial)