Уроки Iczelion'а




Урок 7. Таблица экспорта - часть 5


Пpимеp:

Это пример схож с рассмотренным в пердыдущем примере. Тем не менее, он отображает значения некоторых членов структуры IMAGE_EXPORT_DIRECTORY, а также отображает RVA, ординалы и имена экспортируемых функций. Заметьте, что этот пример не отображает функции, которые экспортируются только через ординалы.

.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\comdlg32.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\comdlg32.lib

IDD_MAINDLG equ 101 IDC_EDIT equ 1000 IDM_OPEN equ 40001 IDM_EXIT equ 40003

DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD ShowExportFunctions proto :DWORD ShowTheFunctions proto :DWORD,:DWORD AppendText proto :DWORD,:DWORD

SEH struct PrevLink dd ? CurrentHandler dd ? SafeOffset dd ? PrevEsp dd ? PrevEbp dd ? SEH ends

.data AppName db "PE tutorial no.7",0 ofn OPENFILENAME <> FilterString db "Executable Files (*.exe, *.dll)",0,"*.exe;*.dll",0 db "All Files",0,"*.*",0,0 FileOpenError db "Cannot open the file for reading",0 FileOpenMappingError db "Cannot open the file for memory mapping",0 FileMappingError db "Cannot map the file into memory",0 NotValidPE db "This file is not a valid PE",0 NoExportTable db "No export information in this file",0 CRLF db 0Dh,0Ah,0 ExportTable db 0Dh,0Ah,"======[ IMAGE_EXPORT_DIRECTORY ]======",0Dh,0Ah db "Name of the module: %s",0Dh,0Ah db "nBase: %lu",0Dh,0Ah db "NumberOfFunctions: %lu",0Dh,0Ah db "NumberOfNames: %lu",0Dh,0Ah db "AddressOfFunctions: %lX",0Dh,0Ah db "AddressOfNames: %lX",0Dh,0Ah db "AddressOfNameOrdinals: %lX",0Dh,0Ah,0 Header db "RVA Ord. Name",0Dh,0Ah db "----------------------------------------------",0 template db "%lX %u %s",0




Содержание  Назад  Вперед