【问题标题】:Extracting strings from binary file using regex and converting to ASCII -- Using Perl使用正则表达式从二进制文件中提取字符串并转换为 ASCII——使用 Perl
【发布时间】:2011-05-10 18:40:18
【问题描述】:

试图弄清楚如何从二进制文件中提取字符串并将其转换为 ascii。这些字符是一个条形码,前面是一个恒定的文本字符串。我的想法是弄清楚字符串常量字符串的 HEX 模式是什么,并据此提取字符串,然后将 HEX 转换为 ASCII。

问题是我不知道如何让 perl “读取”文件,或“查看”它所看到的内容。这意味着如果该文件是一个文本文件,可能会做这样的事情 - Perl: extracting data from text using regex - 但我不知道如何弄清楚我所针对的二进制模式是什么;也就是说,我在此处发布了此数据的一个视图:Extracting “plaintext” header from HEX file using Perl

如何在 Perl 中做到这一点?

【问题讨论】:

    标签: perl binary text-manipulation


    【解决方案1】:

    这是一种简单的方法:

    perl -nlwe "print for m/\w{2,}/g" < bla.exe
    

    这将打印由\w{2,} 组成的所有字符串,即仅包含遗留单词字符,并且至少包含其中两个。

    【讨论】:

    • +1 @Michael Ludwig:谢谢,出现编码不变,不喜欢那个解析模型。这意味着一些 ASCII 文本出现了,而另一些则丢失了;猜测在字符串中注入了非 ASCII 字符。只要知道我是否可以在文本编辑器或 HEXedit 中看到 ASCII 文本;我在我链接到的页面上发布了标题:Extracting “plaintext” header from HEX file using Perl -- 谢谢!
    猜你喜欢
    • 2019-10-10
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    相关资源
    最近更新 更多