Получение инструкции по адресу, указанному указателем инструкции - PullRequest
1 голос
/ 29 января 2012

Я работаю над этим кодом, где мне нужно получить инструкции, выполняемые программой, с учетом указателей инструкций. Предположим сейчас, что у меня есть механизм, который предоставляет мне адреса инструкций, возможно ли получить код операции из этого (в наборе команд IA32)?

Ответы [ 2 ]

2 голосов
/ 29 января 2012

Вам нужен дизассемблер в памяти, такой как BeaEngine или DiStorm , им можно передать адрес памяти для чтения, просто убедитесь, что адрес читаем.Если вы знаете длину в байтах функции, то немного лучше использовать дизассемблеры серийной длины, также предоставленные на этих сайтах.

2 голосов
/ 29 января 2012

Если вам нужна помощь с поддержкой оборудования, это не так.Это должно быть сделано в программном обеспечении.Ваш код нуждается в таблице кодов операций и инструкций и просто должен выполнить поиск.

То, что вы описываете, называется разборкой.Существует множество дизассемблеров с открытым исходным кодом, и если бы вы могли использовать один из них, это сделало бы вашу задачу очень простой.Смотрите здесь: http://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers

...