простой способ получить коды операций - PullRequest
4 голосов
/ 23 января 2011

Я знаю, как получить коды операций и соответствующий синтаксис сборки из исполняемого файла; однако существует ли простой способ получить коды операций отдельной инструкции по сборке без написания программы, использующей ее, а затем вручную связать и загрузить ее и выполнить objdump для исполняемого файла?

Есть ли простой способ найти соответствующие коды операций конкретной инструкции?

Ответы [ 5 ]

4 голосов
/ 25 января 2011

Я задал похожий вопрос некоторое время назад ( Программа для отладки DOS для 32-битной сборки x86 ).

Кто-то был достаточно любезен, чтобы предоставить мне автоматический скрипт для этого,Вы можете перейти по ссылке на вопрос или воспользоваться сценарием, который они мне предоставили ...

opcode() {
  echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o
  rm -f tmp.o tmp.S
}

Надеюсь, это поможет.

4 голосов
/ 23 января 2011

Вы можете использовать команду gdb (GNU Debugger's) x / bx.

Я сделал здесь руководство

http://aimbots.net/tutorials/9276-how-get-op-codes.html

http://aimbots.net/threads/9276-How-to-get-OP-codes

3 голосов
/ 23 января 2011

Для x86 вы можете просто посмотреть их в руководстве Intel ( Часть 1 (A-M) , Часть 2 (N-Z) ). И нет, я не знаю, почему руководство разделено на 2 части.

3 голосов
/ 23 января 2011

Справочник кодов операций X86 и инструкций содержит набор справочных таблиц инструкций и соответствующих кодов операций на 32-разрядных и 64-разрядных процессорах x86.

0 голосов
/ 18 августа 2014

Я не уверен, почему вы хотите коды операций. Но если это для разработки эксплойтов, у вас, вероятно, уже есть metasploit, который поставляется с действительно полезным ruby-скриптом nasm_shell.rb (в каталоге tools).

Каждая введенная вами строка отображается в виде шестнадцатеричного представления правильных кодов операций.

Если это для какой-то другой цели или вы не хотите, чтобы какой-то тяжелый инструментарий, такой как metasploit, висел по какой-либо причине, вы можете просто вытащить скрипт и установить его зависимости. Он использует Rex и предполагает, что nasm установлен.

Если вы хотите адаптировать его, то нужный вам код - это всего лишь несколько строк в функции shell.run

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...