来自样本的上下文无关语法

逆向工程 工具 模糊测试
2021-06-17 07:23:04

是否有可用的工具可以从样本输入的语料库中生成语法,类似于HotFuzz为网络协议所做的工作?

例如,给定一组 MP3 文件,我正在寻找一种工具来生成 BNF 语法来描述 MP3 的格式。

1个回答

我也没有使用过,但是HotFuzz 所基于的Peach Fuzzer具有用于模糊测试文件的“Peach Fuzz Bang”GUI。

但是请记住,模糊器会尝试生成使程序崩溃的无效输入,而不是确定描述所有有效输入的确切语法。

此外,严格来说,在数学上不可能做到你所要求的。如果计算机仅通过阅读该语言的文本就可以全面学习该语言,那么机器翻译将是一个解决的问题。(这是一个有点糟糕的类比,因为并非所有人类语言都是上下文无关的,但这个想法很清楚。)