Любая программа в системе это набор двоичных команд.
Как вывести программный файл в его первозданном виде (1001110110...)?
>Как вывести программный файл в его первозданном виде (1001110110...)?Лови perl-скрипт, который выводит 16-ричный дамп программы a-la HEX-вьювер из far-а:
#!/usr/bin/perl
binmode STDIN;
while ($i=read(STDIN, $str, 16)){
($hex = $str) =~ s/(.)/uc(unpack("H2",$1)).' '/seg;
$str =~ s/[\x00-\x1F]/./g;
printf("%lX: %-48s| %s\n",tell(STDIN)-$i,$hex,$str);
}вызывается
#script.pl < infileИли, если уж так нужен именно двоичный вид -
#!/usr/bin/perl
binmode STDIN;
while ($i=read(STDIN, $str, 16)){
($hex = $str) =~ s/(.)/uc(unpack("B8",$1)).' '/seg;
$str =~ s/[\x00-\x1F]/./g;
printf("%lX: %-144s| %s\n",tell(STDIN)-$i,$hex,$str);
}
Может я чего не незнаю, но у меня и такая программка всё нормально делает:while (<>) { print $_; };
Проверено на "./script.pl </bin/bash >/tmp/bsh; /tmp/bsh"
:)