我遇到的问题是当我有一个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)