LINUX.ORG.RU

asm опкоды


0

0

Такой вопрос: как перевести string обратно в asm код?
 
unsigned char string[] =
{
0x05,0x00,0x0b,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x 00,0x00,
0xb8,0x10,0xb8,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x 01,0x00,
0x40,0x4e,0x9f,0x8d,0x3d,0xa0,0xce,0x11,0x8f,0x69,0x08,0x00,0x3e,0x30,0x 05,0x1b,
0x01,0x00,0x00,0x00,0x04,0x5d,0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,0x 08,0x00,
0x2b,0x10,0x48,0x60,0x02,0x00,0x00,0x00
};
anonymous

objdump, IDA, вообще любой дизассемблер. Можно даже руками, при наличии таблицы опкодов и зная способ кодирования :) Но IMHO это на внятный код не похоже, по крайней мере для x86

phoenix ★★★★
()

> Такой вопрос: как перевести string обратно в asm код?

представить в бинарном виде и скормить objdump-у, указав при этом соотв. желаемую архитектуру CPU.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от unnamed

> Ищи подходящий дизассемблер.

SH* есть в binutils.

// wbr

klalafuda ★☆☆
()

Хы.. мне кажется это хакир, который пытается понять что такое shell-code

php-coder ★★★★★
()

Берёшь Instruction Set на данный проц. и начинаешь в ручную переводить в команды. В Instruction Set'е должны быть указаны длина каждой команжы в байтах, кол-во операндов и т.п.

ЗЫ: А тебе это по работе надо или так, в институте поиграться. Может мы с тобой в одной конторе работаем

anonymous
()
Ответ на: комментарий от anonymous

> Берёшь Instruction Set на данный проц. и начинаешь в ручную переводить в команды. В Instruction Set'е должны быть указаны длина каждой команжы в байтах, кол-во операндов и т.п.

"лучше час порерять а потом за 5 минут долететь" (c) мультик
$ man objdump может значительно облегчить жизнь отцов русской демократии :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

> Ты уверен, что для его таргета objdump вообще собирается? :)

а это зависит от того, что это за target. по крайней мере objdump не согласен с file:

$ make 
cc -Wall -o dump dump.c
./dump
file test.bin
test.bin: Hitachi SH big-endian COFF object, not stripped
/pub/nbsd1/usr/pkg/cross/libexec/binutils/objdump --disassemble-all test.bin
/pub/nbsd1/usr/pkg/cross/libexec/binutils/objdump: test.bin: File format not recognized

-> заголовка скорее всего нет i.e. raw. в общем, в сад это всё, работать пора.

// wbr

klalafuda ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.