Understanding the Iterative Algorithm in Data-Flow Analysis

This blog is aim to help you understand the iterative algorithm and the worklist algorithm, which are the foundation of data-flow analysis, and also the most confusing part for beginners (in this case, me). A lot of content in this blog was summarized from the Static Program Analysis Lectures by Nanjing University. Thanks a lot to Prof. Yue Li and Prof. Tian Tan for presenting such an amazing course!

AFL源码分析(2)-LLVM插桩模块源码分析

这篇文章来讲讲 AFL 中 LLVM 模式插桩的实现。与 GCC 模式相比,LLVM 模式的插桩实现更加优雅,拓展起来更加灵活。所有要对 AFL 进行拓展,那么就有必要详细了解 LLVM 模式插桩的实现。这部分主要有三个文件alf-clang-fast.c, alf-llvm-pass.so.cc, afl-llvm-rt.o.c,同时有必要理解一些afl-fuzz.c内的代码。

AFL源码分析(1)-GCC插桩模块源码分析

这篇文章主要分析 AFL 中插桩模块的源代码(GCC模式),包含afl-gcc.cafl-as.c两个文件。在 GCC 模式下实现插桩的方式是直接对汇编代码进行修改,相较于 LLVM 模式比较简单粗暴。本文主要是对AFL的大体实现思路进行分析,不会详细解释每一段代码的作用。

西湖论剑gghdl题解

西湖论剑里一道比较有意思的题,该题用GHDL库模拟了硬件描述语言(Hardware Description Language, HDL)的执行,推测是实现了某种字符编码。比赛的最后一小时我发现这题每个字符的编码都是固定的,于是叫上任佬一起花了大概40分钟动调打表,好在最后有惊无险地解出。为了避免下次再发生这种“生死时速”的情况,赛后我用idapython实现了自动调试脚本,详细记录一下实现的过程和遇到的坑。

天堂之门 (Heaven's Gate) C语言实现

天堂之门 (Heaven’s Gate) 是一种在32位WoW64进程中执行64位代码,以及直接调用64位WIN32 API函数的技术。从安全角度看,天堂之门可以作为一种软件保护技术,用于防止静态分析以及跨进程的API Hook;从恶意代码角度看,该技术可以绕过沙盒对WIN32 API调用的检测。本文介绍了天堂之门技术的原理及C语言实现。

Windows学习笔记(1)-WoW64机制初探

WoW64(Windows 32-bit on Windows 64-bit)是Windows x64提供的一种兼容机制,可以认为WoW64是64位Windows系统创建的一个32位模拟环境,使得32位可执行程序能够在64位的操作系统上正常运行。本文的主要内容是探索WoW64进程的初始化过程。