../../apple-touch-icon.png

逆向方法论

年初 SECCON CTF 22 final 上第二天出了一道 KoH 题:给定 binary 要求写出源码,判定标准为编译后与目标 binary 的 diff,越小则分数越高。每一小时更换一门语言,从 c,c++ 到 d, go, web assembly 等等。我读完题目就放弃了因为我知道我的逆向水平就是依托答辩,而队友也不负众望基本一整天都在爆杀全场。我在崇拜之余不由得思考起一个问题,逆向应该怎么学?

AFL 源码分析(完)变异详解

本文将细致阐述 AFL 变异方式,包括各阶段的变异算子与次数等细节。变异模式是固定的,所以变异细节看上去繁琐又无趣。但正如白皮书中提到,“它被认为是一个被实践证实有效的 hack 行为集合,把这些行为以最简单、最健壮的形式实现便得到了 AFL”,经验主义的产物是不可小觑的。

AFL 源码分析(三)forkserver 详解

AFL 源源不断地将变异得到的测试用例喂给待测试程序,这个过程中少不了 fork 与 execve. 为提高效率、减少开销,它实现了一套 forkserver 机制来反复运行并测试程序。