Как получить инструкции по сборке или мнемонику из кода операции / машинного кода?
У меня есть двоичный файл, скомпилированный с использованием gcc простой программы на c. Я пишу свой собственный дизассемблер, я могу читать заголовок ELF и другие заголовки из файлов ELF.
Я читаю раздел ".text" из двоичного файла ELF. И пытается преобразовать опекод в инструкцию мнемоники / сборки.
Как преобразовать необработанный код операции / машинный код в инструкцию мнемоники / сборки?? C исходный код:
#include <stdio.h>
int main()
{
int i = 10;
int j = 22 + i;
return 0;
}
Ниже приведен пример необработанного кода операции, который я получил после прочтения файла ELF:
55 ffffff89 ffffffe5 ffffff83 ffffffec 20 ffffffc7 45 ffffffec 3 ffffffc7 45
fffffff0 41 ffffffc7 45 fffffff4 8 ffffffc7 45 fffffff8 21 ffffff8b 45
ffffffec ffffff83 ffffffc0 16 ffffff89 45 fffffffc ffffffb8 ffffffc9 ffffffc3
1 ответ
Если у вас установлен GNU binutils (который у вас, вероятно, есть), вы можете использовать
objdump --disassemble elf-file
Если вопрос "Почему я получаю эти числа ffffff", то вам нужно показать нам код, который производит числа. Скорее всего, у вас проблема с расширением знака от подписанных символов до int.