2015-04-28 2 views
0

Это может быть глупый вопрос, но я хочу более простой способ воспроизвести эту технику, используемую Джоном Эриксоном в искусстве эксплуатации. В нем он заполняет .bin-файл, используя кучу сложных файлов grepping для исходного кода и так далее.Создание файла .bin

$ for i in $(head exploit_notesearch.c | grep "^\"" | cut -d\" -f2) 
do 
echo -en $i 
done > shellcode.bin 

Это создает файл, как так:

hexdump -C shellcode.bin 
00000000 48 31 f6 48 31 d2 48 bb 2f 62 69 6e 2f 73 68 11 |H1.H1.H./bin/sh.| 
00000010 48 c1 e3 08 48 c1 eb 08 53 48 c7 c0 3b 11 11 11 |H...H...SH..;...| 
00000020 48 89 e7 48 c1 e0 38 48 c1 e8 38 0f 05   |H..H..8H..8..| 
0000002d 
cat shellcode.bin 
H1�H1�H�/bin/shH�H�SH��;H��H��8H��8 

Я не знаю, как повторить это колдовство, как я могу сделать точную копию, используя разные команды? Я пробовал

cat > new.bin 
x48x31xf6x48x31xd2x48xbbx2fx62x69x6ex2fx73x68x11x48xc1xe3x08x48xc1xe3x08x53x48xc7xc0x3bx11x11x11x48x89xe7x48xc1xe0x38x48xc1xe8x38x0fx05 

cat new.bin 
x48x31xf6x48x31xd2x48xbbx2fx62x69x6ex2fx73x68x11x48xc1xe3x08x48xc1xe3x08x53x48xc7xc0x3bx11x11x11x48x89xe7x48xc1xe0x38x48xc1xe8x38x0fx05 

hexdump -C new.bin 
00000000 78 34 38 78 33 31 78 66 36 78 34 38 78 33 31 78 |x48x31xf6x48x31x| 
00000010 64 32 78 34 38 78 62 62 78 32 66 78 36 32 78 36 |d2x48xbbx2fx62x6| 
00000020 39 78 36 65 78 32 66 78 37 33 78 36 38 78 31 31 |9x6ex2fx73x68x11| 
00000030 78 34 38 78 63 31 78 65 33 78 30 38 78 34 38 78 |x48xc1xe3x08x48x| 
00000040 63 31 78 65 33 78 30 38 78 35 33 78 34 38 78 63 |c1xe3x08x53x48xc| 
00000050 37 78 63 30 78 33 62 78 31 31 78 31 31 78 31 31 |7xc0x3bx11x11x11| 
00000060 78 34 38 78 38 39 78 65 37 78 34 38 78 63 31 78 |x48x89xe7x48xc1x| 
00000070 65 30 78 33 38 78 34 38 78 63 31 78 65 38 78 33 |e0x38x48xc1xe8x3| 
00000080 38 78 30 66 78 30 35 0a       |8x0fx05.| 
00000088 

Я не знал, как задать этот вопрос, и я не знаю, где еще искать. Я благодарен за любую помощь. Благодарю.

+0

Просьба уточнить, что именно вы пытаетесь достичь. Вы просто пытаетесь преобразовать ascii hex в двоичный? – merlin2011

+0

Я так считаю. Я пытаюсь получить первый формат .bin файлов из строки hex ascii. – WhiteMask

ответ

1

Инструмент, который вы ищете, это xxd, который обычно используется для получения шестнадцатеричного дампа двоичного файла, но также может использоваться для выполнения обратного шестнадцатеричного дампа, который вы пытаетесь сделать.

Поместите свой ascii hex в файл с именем Input.txt, без каких-либо из x.

4831f64831d248bb2f62696e2f73681148c1e30848c1e3085348c7c03b1111114889e748c1e03848c1e8380f05 

Далее, запустить xxd с флагом -p для простого и -r для заднего хода.

xxd -r -p Input.txt Output.bin 

Теперь желаемый результат должен быть в Output.bin.

hexdump -C Output.bin 
00000000 48 31 f6 48 31 d2 48 bb 2f 62 69 6e 2f 73 68 11 |H1.H1.H./bin/sh.| 
00000010 48 c1 e3 08 48 c1 e3 08 53 48 c7 c0 3b 11 11 11 |H...H...SH..;...| 
00000020 48 89 e7 48 c1 e0 38 48 c1 e8 38 0f 05   |H..H..8H..8..| 
0000002d 
+0

Спасибо, я знал о xxd, но пропустил элемент remove \ x. Меня волновало. – WhiteMask

+0

@WhiteMask, добро пожаловать. Просто помните, что тип знаний, которые вы пытаетесь изучить, очень опасен, поэтому используйте его с умом. :) – merlin2011

Смежные вопросы