Как преобразовать машинный код в читаемую сборку (без IDA)

Мне нужно преобразовать много шестнадцатеричного машинного кода в сборку. Я использую бесплатную версию IDA. Я уверен, что он может это сделать, но всякий раз, когда я ввожу машинный код в форматах raw, bin, hex, exe, dmp, он открывается следующим образом:

seg000:00010  32 34 35 32 20 33 31 35  30 20 65...      2452 3150 e0ff 3

Но я хочу что-то вроде:

seg000:00010   2452 3150 e0ff 3...moreHex           f..b...%..3k..

Эти вопросы мне близки, но недостаточно конкретны. Как преобразовать машинный код в код сборки?
Как преобразовать машинный код Intel 80386 в сборку Язык?


person Ponyisasquare    schedule 05.09.2015    source источник
comment
Вы набираете байты в IDA? Или загрузка файла? Вам не нужна IDA только для того, чтобы разбирать вещи. Если у вас есть обычный исполняемый файл Windows, вы можете использовать objdump, доступный в Linux с помощью apt-get binutils и в Windows с cygwin. Если у вас есть необработанный bin-файл с кодом x86, вы можете использовать ndisasm, доступный в Linux с помощью apt-get ndisasm или в Windows с cygwin.   -  person mattypiper    schedule 05.09.2015
comment
Образец вывода, который вам нужен, не является сборкой, поэтому ваш вопрос неясен.   -  person Dwayne Towell    schedule 05.09.2015


Ответы (1)


Ваш вопрос расплывчатый, и я не уверен, какую ОС вы используете, но постараюсь изо всех сил.

Загрузите шестнадцатеричный редактор для Windows. Хороший бесплатный инструмент - HxD.

Создайте новый файл и введите свои байты в левой области. Представление ASCII будет отображаться с правой стороны, что может ничего не значить, а может и не означать. Сохраните ваш файл как что-то вроде code.bin. Затем откройте этот файл в IDA Free, укажите «Двоичный файл» в качестве типа файла и выберите тип процессора, который, как я предполагаю, будет одним из вариантов Intel x86, например Intel Pentium 4. После загрузки файла IDA выиграла. Я действительно ничего не делаю, так как это необработанный файл, поэтому вы должны указать, где находится код, выбрав адрес 0 и затем нажав клавишу «c», чтобы преобразовать байты в код.

person mattypiper    schedule 05.09.2015
comment
Хороший ответ. Действительно ли мне нужна ВСЕ программа? В чем недостаток отображения только одной функции? Простите за невежество, я новичок в этом низкоуровневом материале. (Раньше я пытался сохранить его как bin с помощью текстового редактора) - person Ponyisasquare; 05.09.2015