Re[3]: radare2 посмотрел.
От: EreTIk EreTIk's Box
Дата: 30.06.16 15:53
Оценка:
Здравствуйте, ksd, Вы писали:
ksd>Без гуя сложновато, пока пользуюсь arkdasm. Вообще хотелось бы, чтобы дасм позволял искать по бинарному коду, как по текстовым исходникам

HIEW такое умеет:

С той же самой версии 5.00 ТОЛЬКО В РЕЖИМЕ ДИЗАССЕМБЛЕРА можно искать команды по шаблону. (Про шаблоны см. выше). То есть если при вводе ассемблерной команды встречается в строке любой символ шаблона то пойдет поиск по шаблону, если нет — команда просто ассемблируется. Насильно ассеблировать команду можно комбинацией CtrlEnter, например при 'mov eax,[eax*2]'

Например: в режиме Decode <F7><F7>"mov ax,*" будет искать "mov ax,1234h", "mov ax,sp", и т.д.


ksd>...например, хорошую удобную таблицу опкодов, чтобы сделать хотя бы правильный перебор всех инструкций и выделить все возможные call-ы.

А чем мануал от Intel не устраивает?

Volume 2: Includes the full instruction set reference, A-Z, in one volume. Describes the format of the instruction and provides reference pages for instructions.


Только перебором опкодов всех функций не найти. Например, таблица виртуальных функций в C++: адреса функций хранятся в таблицах произвольной длины, нет прямых call/jmp на адреса начала функций, а вызовы происходят опосредовано. Как-то так (вызов IUnknown::Release на x86):
mov          ecx,[eax][8]
call         ecx


Или другой пример: адрес функции (не вызываемой напрямую), переданный как параметр в другую функцию — обработчик оконной процедуры, например.


На x64 в PE есть огромная подсказка в виде RUNTIME_FUNCTION: CodeMachine: X64 Deep Dive.
В этой теме было обсуждение
Автор: Евгений Музыченко
Дата: 04.02.16
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.