22. Получение информации о модуле
Адрес, принадлежащий модулю в качестве параметра. Функция возвращает структуру t_module . Опять привожу ее здесь, но не полностью (все тот же Plugin SDK OllyDbg). Только часто используемые поля
Код:
typedef struct t_module { // Executable module descriptor
ulong base; // Base address of module
ulong size; // Size occupied by module
ulong type; // Service information, TY_xxx
ulong codebase; // Base address of module code block
ulong codesize; // Size of module code block
ulong resbase; // Base address of resources
ulong ressize; // Size of resources
t_stringtable *stringtable; // Pointers to string resources or NULL
int nstringtable; // Actual number of used stringtable
int maxstringtable; // Actual number of allocated stringtable
ulong entry; // Address of <ModuleEntryPoint> or NULL
ulong database; // Base address of module data block
ulong idatatable; // Base address of import data table
ulong idatabase; // Base address of import data block
ulong edatatable; // Base address of export data table
ulong edatasize; // Size of export data table
ulong reloctable; // Base address of relocation table
ulong relocsize; // Size of relocation table
char name[SHORTLEN]; // Short name of the module
char path[MAXPATH]; // Full name of the module
int nsect; // Number of sections in the module
IMAGE_SECTION_HEADER *sect; // Copy of section headers from file
ulong headersize; // Total size of headers in executable
ulong fixupbase; // Base of image in executable file
int nfixup; // Number of fixups in executable
t_fixup *fixup; // Extracted fixups or NULL
…..
} t_module;
OllyDbg Plugin API v1.10
Пример использования в файле modul.py
23.Получение ид текущей нити
24. Получение информации о треде
Возвращает структуру t_thread, которую я уже не привожу здесь. Смотрим пример в файле
thrd.py
25. Получение имени треда
Код:
Decodethrdname(buf, tid,mode)
Буфер для хранения имени, ид треда, режим. Пример в thrd.py
26. Обнаружение VmWare
Обнаружение VmWare.
Возвращает 0, если мы не под варей и 1 в противном случае
Пример в файле vmWarecheck.py.
27. Ввод строки пользователем
Функция
Код:
Gettxt(title,text,letter,type,ind)
Пример в файле get_text.py
28. Поиск команды “вперед” от текущей инструкции
Где первый параметр адрес, с которого надо начинать поиск. Второй – текстовое представление инструкции. Например вам нужна инструкция push ebp. Тогда вы пишите в качестве аргумента "PUSH EBP". Заглавными. Возвращаемое значение - адрес инструкции, если она найдена и 0, если не найдена.
Пример можно посмотреть в файле disasm_test.py
29. Поиск команды “назад” от текущей инструкции
Код:
Disasmback(addr,str)
Где первый параметр адрес, с которого надо начинать поиск. Второй – текстовое представление инструкции. Возвращаемое значение - адрес инструкции, если она найдена и 0, если не найдена.
Пример можно посмотреть в файле disasm_test.py
30. Поиск команда по опкоду "вперед"
Код:
Disasminbyopcode(addr,str)
То, же, что и 28, только поиск по опкоду. Например вы хотите найти инструкцию с опкодом 33 C0. Тогда в качестве второго аргумента вы пишите "33C0". без пробелов заглавными. Первым аргументом - адрес, с которого следует начинать поиск. Пример там же, где и 28,29
31. Поиск команда по опкоду "назад"
Код:
Disasmbackbyopcode(addr,str)
То, же, что и 29, только по опкоду. Описание такое же, как и в 30 и пример там же.