URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2726
[ Назад ]

Исходное сообщение
"Вывести двоичный файл"

Отправлено clever , 27-Мрт-04 14:43 
Любая программа в системе это набор двоичных команд.
Как вывести программный файл в его первозданном виде (1001110110...)?

Содержание

Сообщения в этом обсуждении
"Вывести двоичный файл"
Отправлено byx , 28-Мрт-04 09:14 
>Как вывести программный файл в его первозданном виде (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);
}



"Вывести двоичный файл"
Отправлено XMan , 28-Мрт-04 20:53 
Может я чего не незнаю, но у меня и такая программка всё нормально делает:

while (<>) { print $_; };

Проверено на "./script.pl </bin/bash >/tmp/bsh; /tmp/bsh"
:)