Disassemble Help Library

Функции

Функции упорядочены по значимости. Самые главные это первые 14 до DsmVersion. Для начала использования нужно уметь получать хэндл с помощью InitInstr. Ассемблировать можно функцией Assemble и для дизассемблирования можно использовать Disassemble. При завершении использования функций хэндл удаляется функцией FreeInstr.
 
Имя Краткое описание.
InitInstr получение специального хэндла.
InitInstrEx получение специального хэндла.
ReinitInstr установка аддресса, базы инструкции, а также режима кодирования.
SetCPointer установка аддресса инструкции.
SetCPointerEx установка аддресса, базы инструкции и размера блока с кодом.
Assemble ассемблирование мнемоники.
AssembleEx ассемблирование мнемоники, и получение альтернативных опкодов.
Disassemble получение мнемоники.
FreeInstr удаление хэндла полученного с помощью InitInstr.
InstrDasm используется для получения информации об инструкции.
JoinMnemonic используется для сборки мнемоники.
InstrEF получение информации о влиянии на флаги rFLAGS.
LastInstrLength получение длины инструкции.
DsmVersion получение номера версии библиотеки.
IntToStr конвертирование целого числа в строку.
StrToInt конвертирование строки в целое число.
SetMode устанавливает режим диз/ассемблирования.
SetLzcnt запрещает/разрешает инструкцию lzcnt.
SetLoadall запрещает/разрешает инструкциии loadall286/loadall386.
SetArch устанавливает целевую архитектуру.
GetExceptions получение списка исключений.
GetInterruptProps получение информации о векторах исключений.
GetMediaExceptionProps получение информации о медиа исключениях.
GetX87ExceptionProps получение информации об FPU исключениях.
IsDFCondition проверка условия абортивного исключения #DF.
GetLatency получение информации о производительности.
LatToStr приведение информации о производительности в текстовый вид.
MulNumbers умножение чисел.
DivNumbers деление чисел.
AddNumbers сложение.
SubNumbers вычитание.
ShlNumber сдвиг влево.
ShrNumber сдвиг вправо.
OrNumbers логическое или.
XorNumbers исключающее или.
AndNumbers логическое и.
NegateNumber меняет знак числа.
NotNumber инвертирует все биты.
SetBMI1 запрещает/разрешает инструкцию tzcnt.

Структуры

Instruction
Features
EF
x87c
moRanges
moRange
AltmBytes
Analyses
ExceptProps
MediaException
X87Exception
ExceptionPtr
Exceptions
ltn
cntx

Константы

Операнды инструкций
Коды исключений

Макросы

altm
enum
enf

Примеры

dsmdemo.exe - дизассемблирование (asmlist.txt полный листинг). Также там окно предназначенное для отладчика, но пока что там можно только выбрать модуль File->Open Executables и трасировать его нажимая на клавишу F11. В файле dengpath.ini можно указать путь к библиотеке dbgeng.dll если она у вас не находится в системной папке.
asmdasm.exe - ассемблирование и вывод информации о флагах rFLAGS.
asmdasmC.exe - аналог asmdasm.exe переписанный на C.
asmdasmF.exe - аналог asmdasm.exe переписанный на fasm.
dwowtest.exe - пример 32-битного приложения работающего с 64-битным дизассемблером.
Файл dsmhelp.inc с объявлениями структур,макросов и констант находиться в папке include.
splice1.exe - пример перемещения функции MessageBox, с целью защиты от перехвата.
cpuid.exe - утилита с помощью которой можно быстро узнать поддерживаемые процессором наборы инструкций.
compare.exe - утилита для линейного сравнения файлов, с целью поиска проблемных опкодов.
Результат выводит в формате:

db через запятую последние 15 совпавших байт
;Difference
db через запятую 15 байт начиная с первой пары не совпавших.

Сайт управляется системой uCoz