PC3000 军达成数据恢复论坛

 找回密码
 立即注册
查看: 1192|回复: 0
打印 上一主题 下一主题

PC-3000 DE.如何为新类型的文件提取GREP正则表达式 [复制链接]

Rank: 8Rank: 8

该用户从未签到

金钱
0
元宝
16585
专业度
0
跳转到指定楼层
楼主
发表于 2024-7-1 15:41:53 |只看该作者 |倒序浏览
本帖最后由 JDCTS5 于 2024-8-29 11:35 编辑

PC-3000 DE.如何为新类型的文件提取GREP正则表达式
    在本文中,我们将描述如何在数据提取程序(Data Extractor)搜索引擎引用中添加新类型的文件。

1.png


    让我们参考一个示例客户端需要我们恢复*.qbw文件。


    首先,我们需要要求客户向我们提供至少三份此类工作文件。


    然后我们在HexEdit中打开它们中的每一个,并成对比较(通过Ctrl+A加Ctrl+C复制一个文件,将光标设置在第二个文件的首先字节上,然后按Ctrl+M)。结果如下:

2.png


3.png


    突出显示的哪些字节不同。我们需要定义头中哪些字节相同


    在我们的示例中,首先6个字节是相同的,并用零填充。让我们把这个符号加到GREP表达式中。有一种简单的方法可以使用内置的DataExtractor插件来实现。只需在DE中打开一个好文件作为外部文件

4.jpg


    这里我们得到^\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

6.png

   正如您在上面的图片中看到的,只返回了一个结果,它从LBA0开始。

5.png (21.21 KB, 下载次数: 337)

5.png

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|PC3000 数据恢复 ( 京ICP备09023376号-1 )

GMT+8, 2025-5-2 22:20 , Processed in 0.150063 second(s), 14 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部