小编ekr*_*urg的帖子

Perl将二进制流转换为十六进制

我遇到的问题是当我有一个Perl脚本通过STDIN读取数据(PE可执行文件)并且流包含行终止符"0A"时,转换为十六进制错过了它.然后,当我将十六进制数据转换回来时,它已损坏(以十六进制格式丢失0A).那么如何在Perl中检测换行符"0A"的"windows"版本呢?

注意:Linux OS(Perl)正在读取Windows PE

!usr/bin/perl

while($line = <STDIN>)
{
    chomp($line);
    @bytes = split //, $line;
    foreach (@bytes)
    {
        printf "%02lx", ord $_;
    }
}
Run Code Online (Sandbox Code Playgroud)

用法示例:

[root@mybox test]# cat test.exe | perl encoder.pl > output
Run Code Online (Sandbox Code Playgroud)

perl hex stdin

3
推荐指数
1
解决办法
8123
查看次数

标签 统计

hex ×1

perl ×1

stdin ×1