论文阅读/技术学习/比赛积累
(Syzkaller)Reproduce bugs from syzkaller logs
Reproduce bugs from
syzkaller logs
Currently I just got some unreprodueced and unminimized crash logs
from syzkaller, there are some scripts to get the key program ledding
crash and reproduce it.
(Syzkaller)New version of syz-manager
(Syzkaller)New version of
syz-manager
Some new features compared to old version of syzkaller.
(Syzkaller)How does Syz-manager synchronize information with fuzzers?
How
does Syz-manager synchronize statistics information with fuzzers?
How does Syz-manager gets crashes, total execution times, ... ,
during the fuzzing process?
(Syzkaller)How does Syzkaller generate a program (syscall sequences)?
How does Syzkaller generate a program (syscall sequences)?
Hey guys! It’s been a while since I last updated my blog. Of course, I haven’t been idle during this time. I successfully published a paper and received two verbal PHD offers from CUHK. Everything is getting better and I love 2025!
2025.3.23Xiao
(论文阅读)Finding the Dwarf - Recovering Precise Types from WebAssembly Binaries
Finding
the Dwarf: Recovering Precise Types from WebAssembly Binaries
会议:PLDI'22
作者:Daniel Lehmann, Michael Pradel
1. 问题背景
随着WebAssembly越来越受欢迎,在越来越多的应用领域应用,Wasm逆向的需求也越来越旺盛。例如,一个开发者可能回想了解其在项目中使用的第三方Wasm
module,以更加了解其exported functions。
理解一个WebAssembly binary的第一步就是理解函数的type
signatures(参数、返回值)。由于type与理解底层代码高度相关,因此现有的native
binary逆向工程工具都以type为目标 [12, 14,
57]。开发人员的研究也表明,static type有助于理解代码。
但Wasm
binary中的函数type种类非常受限,wasm只支持i32/i64/f32/f64四种基本类型。一个i32可能是一个signed或者unsigned
integer,又或者pointer。因此,如果能恢复高级语言中的type是非常有用的。
恢复高级type的一种方法是基于 "经典 "data-flow anlysis或type
inference,即根据程序中值的使用方式收集约束[12]。不过,这种方法实施起来比较复杂,而且通常需要建立在繁重的分析框架上,如
BAP 或 CodeSurfer [43, 54]。支持
WebAssembly,尤其是其略显特别的堆栈机[25],将是一项非同小可的工作。
(论文阅读)Wasmati-An efficient static vulnerability scanner for WebAssembly
Wasmati:
An efficient static vulnerability scanner for WebAssembly
作者:Tiago Brito, Pedro Lopes, Nuno Santos
时间:2022.4
期刊:Computers & Security(B刊)
Code:wasmati/wasmati: A Generic and
Efficient Code Property Graph Infrastructure forScanning Vulnerabilities
in WebAssembly Code (github.com)
ABSTRACT
本文提出了Wasmati,一种static analysis tool用于寻找Wasm
binary中的漏洞。其基于code property
graph(CPG)。作者给出了Wasm中CPG的定义和生成方法,自定义了快速生成CPG的算法和一个查询语言Wasmati
Query
Language(WQL)。作者实现了10中不同的vulnerability查询,并在四种dateset和真实程序上做了测试。
(技术积累)WasmParser Examples
WasmParser Examples解析
针对Rust库Wasmparesr中给出的如下样例:
https://docs.rs/wasmparser/latest/wasmparser/struct.Parser.html#method.parse
https://docs.rs/wasmparser/latest/wasmparser/struct.Parser.html#method.parse_all
的解析
(论文阅读)Binary-only Kernel Address Sanitizer for Effective Kernel Fuzzing
BoKASAN:
Binary-only Kernel Address Sanitizer for Effective Kernel Fuzzing
会议:Security'23
作者:Mingi Cho,Dohyeon An,Hoyong Jin,Taekyoung
Kwon(Yonsei University)
ABSTRACT
Kernel Address Sanitizer(KASAN)是在 Linux
内核中查找UAF和out-of-bounds的重要工具,但它需要内核源代码来进行编译时插桩。要将KASAN应用于闭源系统,我们必须开发一种纯二进制KASAN,而这是一项挑战。使用二进制重写和processor
support来为二进制模块运行KASAN的技术需要一个已经插桩好KASAN的内核,因此仍然需要内核源代码。动态插桩提供了一种替代方法,但其大大增加了性能开销,使得内核fuzzing不切实际。
(技术积累)Ret2libc中的main与_start函数
Ret2libc中的main与_start函数
1. 题目背景
Ret2libc3练习(ret2libc3-CTF
Wiki)是一个简单的return to
libc练习题,其通过向程序输入两次payload来get
shell,第一次payload用于获取__libc_start_main函数真实加载地址,第二次payload通过该加载地址计算出libc中的偏移,进而调用system函数: