PDA

Просмотр полной версии : Конвертор шела


gr0t
07.02.2010, 23:56
Народ, скажите как можно просмотреть (сконвертить) набор машинных инструкций шел кода в читабельный вид асма, к примеру такой(хотя разговор о любом вообще)

#

char shellcode[] =
#
"\x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x 65\x72\x6c\x0a"
#
"\x24\x63\x68\x61\x6e\x3d\x22\x23\x63\x6e\x22\x3b\x 0a\x24\x6b\x65"................

VERte][
08.02.2010, 00:09
можешь попробовать скомпилить этот кусок кода, а потом глянуть в дебаггере что получится, будет этот кусок храниться в данных и нужно будет ещё постараться найти смещение при котором значения твоего шеллкода будут преобразовываться в инструкции с самого начала, не прихватив предыдущие значения, в принципе это наверно можно будет поправить nop'ами (0x90).

Зы. более чем уверен что есть что-то типа дизассемблера длин для подобных вещей, а ещё можно сохранить это в бинарке и попробовать открыть в асм-режиме в hiew (хотя вожно будут проблемы, так как файл то будет не ехе)

зыы. в hiew проверил на обычном текстовике - всё работает, так что смело записывай шеллкод в бинарник и в hiew

gr0t
08.02.2010, 00:19
Все эти шелкоды создаются автоматически так предполагаю, человеку запариться можно сидеть и инструкции на асм коде переводить в машинные, значит есть и обратный путь...может кто пользовался каким то подобным софтом и есть уже решения....

VERte][
08.02.2010, 00:23
Все эти шелкоды создаются автоматически так предполагаю, человеку запариться можно сидеть и инструкции на асм коде переводить в машинные, значит есть и обратный путь...может кто пользовался каким то подобным софтом и есть уже решения....

чти добавку к посту выше, а вот обратно, я так полагаю все делается тоже просто, компилишь код на языке, а там уже из того-же hiew или любого дебаггера берешь значения

Kaimi
08.02.2010, 00:26
Это не опкоды, найди конвертер hex->text и посмотри

VERte][
08.02.2010, 00:28
Это не опкоды, найди конвертер hex->text и посмотри
в шеллкоде нет опкодов? да часть строки скорее всего идет на ввод, часть на забитие адреса в стеке, остальная часть должна быть программной разве не так?

Kaimi
08.02.2010, 00:35
В этом нет


\x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x 65\x72\x6c\x0a = #!/usr/bin/perl

VERte][
08.02.2010, 00:44
ну оке, был не прав, на перле так на перле. думаю тс'у будет интересно почитать это http://www.hackzona.ru/hz.php?name=News&file=article&sid=7342
или тоже самое с картинками http://xs-rus.ucoz.ru/publ/5-1-0-13

Hiro Protagonist
08.02.2010, 01:07
а записать этот массив в файл программно и посмотреть в том же хьюве, что это значит так сложно?

gr0t
08.02.2010, 04:14
Kaimi, VERte][
спс за инфу, закинул бы в репу, но оказывается люди с репутацией в 0 не имеют права.