Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть сценарий Perl, считывающий данные (PE Executable) через STDIN, и поток содержит разделитель строки «0A», преобразование в hex пропускает его. Затем, когда я конвертирую шестнадцатеричные данные обратно, они повреждены (отсутствует 0A в шестнадцатеричном формате). Итак, как я могу определить версию Windows "0A" для строки в Perl?
Примечание: ОС Linux (Perl) читает Windows PE
!usr/bin/perl
while($line = <STDIN>)
{
chomp($line);
@bytes = split //, $line;
foreach (@bytes)
{
printf "%02lx", ord $_;
}
}
Пример использования:
[root@mybox test]# cat test.exe | perl encoder.pl > output