本帖最后由 JDCTS5 于 2024-8-29 11:35 编辑
PC-3000 DE.如何为新类型的文件提取GREP正则表达式
在本文中,我们将描述如何在数据提取程序(Data Extractor)搜索引擎引用中添加新类型的文件。
让我们参考一个示例—客户端需要我们恢复*.qbw文件。
首先,我们需要要求客户向我们提供至少三份此类工作文件。
然后我们在HexEdit中打开它们中的每一个,并成对比较(通过Ctrl+A加Ctrl+C复制一个文件,将光标设置在第二个文件的首先字节上,然后按Ctrl+M)。结果如下:
突出显示的哪些字节不同。我们需要定义磁头中哪些字节相同的。
在我们的示例中,首先6个字节是相同的,并用零填充。让我们把这个符号加到GREP表达式中。有一种简单的方法可以使用内置的DataExtractor插件来实现。只需在DE中打开一个好文件作为外部文件。
这里我们得到了^\x00\x00\x0\x00\x00\x00\x00正则表达式。
为了检查它是否有效,我们可以将其“应用”到同一个文件,它须只返回一个结果,而且LBA必须为0。如果你有很多这样的情况,这无疑意味着你的表达式很弱。
GREP表达式须有唯一性和尽量长的长度,以防止进入其他类型的结果文件。至少我建议总是检查从引用中得到的任何表达式从一开始就有相同的字节。若你们会得到比你们期望的更多的结果,或者文件无法在他们创建的程序中打开——可能你们的GREP表达式很弱。
此外,现在在AddGREP插件中,不可能选择多个字符串并从中自动建立正则表达式。但你可以总是手动进行,下表可能对它有用:
象征
| 意思
| ?
| 任何符号
| .
| 任何符号
| *
| 任意数量的符号
| \000
| 八进制编码中的符号
| \999
| 十进制编码中的符号
| \xHH
| 十六进制编码的符号
| %x
| 特殊字符集(如W、W、N、N、A、A、X、X…)
| ^
| 从字符串的开始
| @nnn
| 从nnn位置开始(@-nnn–从结尾开始)
|
若你们并没有在表中找到所需的表达式,你们可以在维基百科上读取它,表达式和任何流行的编程语言中的表达式几乎一样。 在我们的示例中,*.qwb文件类型的正确表达式为^{16}(.)\x03\x00\x00\x0\x5E\xBA\x7A\xDA\xC9\x00\x0C\x00
正如您在上面的图片中看到的,只返回了一个结果,它从LBA0开始。 |