LDE32 -- Length-Disassembler Engine

User's Manual



[Русский] [English]



LDE32 -- это библиотека для определения длин x86 инструкций.

В LDE32 всего две процедуры.

1. void pascal disasm_init(void* tableptr);

- используется для распаковки в память 2-килобайтной таблицы, которая потребуется второй процедуре при дисассемблировании.

2. int pascal disasm_main(void* opcodeptr, void* tableptr);

Эта функция используется для дисассемблирования одной инструкции. Возвращает длину инструкции в байтах, либо -1 в случае ошибки.

Процедуры сохраняют регистры неизмененными; код независим к смещению; не используются никакие внешние данные.

Для подключения LDE32 добавьте следующую строку:

include lde32bin.inc

пример

                push    offset tbl      ; распаковать в память таблицу
                call    disasm_init

                mov     ebx, 401000h
cycle:
                push    ebx             ; оффсет инструкции
                push    offset tbl      ; адрес таблицы
                call    disasm_main

                add     ebx, eax

                cmp     eax, -1         ; ошибка?
                jne     cycle

include         lde32bin.inc            ; код LDE32

tbl             db      2048 dup (?)    ; таблица флагов LDE32



programmed in 1999 by Z0MBiE, http://z0mbie.host.sk