1

我希望有人可以帮助我解决我的文件雕刻脚本。我想在原始格式(.dd)的图像文件中以十六进制值的形式查找文件头和对应的页脚。

对于其他页眉和页脚,我的脚本运行良好,但不适用于 JPG 文件的页眉和页脚:FFD8 和 FFD9 以下是我目前的处理方式:

grep -obUaP "\xFF\xD8" image_file.dd

我想取回搜索到的字符串页眉和页脚位置的偏移量,以便稍后用 dd 提取它们。我使用 grep 将图像文件作为二进制文件处理。

例如,当我通过此搜索使用我的模式在图像中查找JFIF时,我发现了很多匹配项:

grep -obaUP "\x4A\x46\x49\x46" image_file.dd

但FFD8没有!

那么有没有人能给我一个提示,为什么我找不到这些简单的十六进制值?

4

1 回答 1

1

男人 grep 说:

使用 -a 或在环境中设置 LC_ALL='C' 会很有帮助,以便即使匹配不安全直接显示也能找到更多匹配

所以,试试:

LC_ALL=C grep -obUaP "\xFF\xD9" file

在脚本中使用上面的内容,就像从命令行一样,只需在你的grep命令前面加上LC_ALL=C上面的内容。

于 2017-04-23T20:35:15.853 回答