![PhotoRec 扩展自定义正在采用签名中未定义的部分](https://linux22.com/image/1167519/PhotoRec%20%E6%89%A9%E5%B1%95%E8%87%AA%E5%AE%9A%E4%B9%89%E6%AD%A3%E5%9C%A8%E9%87%87%E7%94%A8%E7%AD%BE%E5%90%8D%E4%B8%AD%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E9%83%A8%E5%88%86.png)
当我尝试恢复我的 .m 文件时,这些文件在 photorec 中被视为 .txt。我尝试添加自己的扩展名。在创建包含单词的 .m 文件后抽搐 在 .photorec.sig 文件中我添加了以下行
m 0 "tic"
它返回所有以 tic 开头的文件,即使在同一行中 tic 后面还有其他内容。我想知道是否有任何方法可以搜索没有签名偏移的文件。例如,我想搜索单词读取。
谢谢
答案1
我目前正在解决一个类似的问题,需要我创建自己的 .sig 文件。我发现的最佳来源是:
在第一篇文章中,它提到使用 hexdump,它是“bsdmainutils”包的一部分。使用它来提取文件的十六进制表示,以获得更好的匹配。
例如:(我必须恢复一些 MySQL DB 文件)
hexdump -C mysql-recovery/some-one-might-get-fired.myd | head
它将倾销
00000000 03 0a b4 00 5d ca f4 ef f9 ff f7 ef 46 af 51 fc |....].......F.Q.|
00000010 ff 03 08 79 e2 fa 81 b6 ff ff ff 4b 85 53 fd f6 |...y.......K.S..|
00000020 ff ff dd bb fa f1 3c 00 dc ff ac ff 7f fb 7f bd |......<.........|
00000030 f8 01 7f 7a ff ff 5b fe 7f 63 00 0c 8f fe db fb |...z..[..c......|
00000040 ff 07 31 10 ec dd 33 09 00 00 01 31 00 00 00 03 |..1...3....1....|
我只取第一行,但在某些情况下(参见链接 1),您可能需要第二行的一部分,或者在其他情况下,您必须完全跳过第一行才能找到进一步的模式以正确识别文件。
例如,.idb 文件具有以下标头,但 idb 文件的前几行与我收集到的不同。因此,我需要一个偏移量来获取文件中具有与多个 idb 文件相同的签名的部分。
hexdump -s 0 -C mysql-recovery/users.ibd | head
00000000 c7 60 ef 59 00 00 00 00 00 00 00 00 00 00 00 00 |.`.Y............|
00000010 00 00 1b 32 0c 91 bd 99 00 08 00 00 00 00 00 00 |...2............|
00000020 00 00 00 00 01 11 00 00 01 11 00 00 00 00 00 00 |................|
00000030 14 00 00 00 12 40 00 00 00 00 00 00 00 38 00 00 |[email protected]..|
00000040 00 01 00 00 00 00 0b b6 00 00 00 00 0b b6 00 00 |................|
00000050 00 03 00 00 00 00 01 16 00 00 00 00 00 9e 00 00 |................|
00000060 00 00 ff ff ff ff 00 00 ff ff ff ff 00 00 00 00 |................|
00000070 00 00 00 00 00 0b 00 00 00 00 ff ff ff ff 00 00 |................|
00000080 ff ff ff ff 00 00 00 00 00 01 00 00 00 02 00 26 |...............&|
00000090 00 00 00 02 00 26 00 00 00 00 00 00 00 00 00 00 |.....&..........|
根据我查看其他 .idb 文件时所做的比较,这里最后两行是我所需要的。将每对数字算作一个,这就是您的偏移量。为了测试,我运行
hexdump -s 128 -C mysql-recovery/users.ibd | head
00000080 ff ff ff ff 00 00 00 00 00 01 00 00 00 02 00 26 |...............&|
00000090 00 00 00 02 00 26 00 00 00 00 00 00 00 00 00 00 |.....&..........|
000000a0 00 00 00 c6 ff ff ff ff 00 00 00 00 00 02 aa aa |................|
000000b0 ea ff ff ab ff bf ff bf ff ef ff ff fb fe 00 00 |................|
000000c0 00 00 00 00 00 00 00 00 00 00 01 16 00 00 00 00 |................|
000000d0 00 9e 00 00 00 02 bf ff fa fb ff bf ef ef bf ab |................|
000000e0 bf be fe ff ef fe 00 00 00 00 00 00 00 02 00 00 |................|
000000f0 00 00 02 ce 00 00 00 00 09 5e 00 00 00 04 aa aa |.........^......|
00000100 aa aa aa aa aa aa aa ab aa ba aa aa aa aa 00 00 |................|
00000110 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 |................|
对于 .myd 和 .idb 文件类型,我的 .photorec.sig 文件看起来像这样。
myd 0 0x030ab4005dcaf4eff9fff7ef46af51fc
idb 128 0xffffffff000000000001000000020026
恢复的文件仍需测试,但这就是我为文件类型添加自定义签名的方法。我希望这对其他人有所帮助,请进行更正,我会编辑帖子。