Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Section '.data' data readable writeable
DllErrBoxTitle db 'Сообщение об ошибке',0
Section '.code' code readable executable proc DllEntryPoint hinstDll, fdwReason, lpvReserved mov eax,TRUE ret endp proc DllErrBox hWnd, errMsg invoke MessageBox,[hWnd],[errMsg],DllErrBoxTitle,MB_OK + MB_ICONERROR ret endp
Section '.idata' import data readable writeable library USER32, 'USER32.DLL'
import USER32,\ MessageBox, 'MessageBoxA'
Section '.edata' export data readable export 'neyavno_dll.dll',\ DllErrBox, 'DllErrBox'
Section '.reloc' fixups data readable discardable
Пример приложения с неявной загрузкой DLL:
Format PE GUI 6.0 Entry start
include 'C:\Users\work\Desktop\fasmw17121\INCLUDE\win32a.inc'
Section '.data' data readable writeable msg1 db '[message]',13,10 db ' Invoke DllErrBox,HWND_DESKTOP,msg1,\',13,10 db ' import neyavno_dll.dll,\',13,10 db ' DllErrBox, ''DllErrBox''',13,10 db '[/message]',0
Section '.code' code readable executable start: invoke DllErrBox, HWND_DESKTOP, msg1 invoke ExitProcess,0
Section '.idata' import data readable writeable library KERNEL32,'KERNEL32.DLL',\ neyavno_dll, 'neyavno_dll.dll' import KERNEL32,\ ExitProcess, 'ExitProcess' import neyavno_dll,\ DllErrBox, 'DllErrBox'
Пример приложения с явной загрузкой DLL:
Format PE GUI 6.0 Entry start
include 'C:\Users\work\Desktop\fasmw17121\INCLUDE\win32a.inc'
Section '.data' data readable writeable dllName db 'neyavno_dll.dll',0;dll name that to be loaded funcName db 'DllErrBox',0 ;function / proc name that wish to be called funcAddr dd? ;store function address msgBoxTitle db 'Îøèáêà',0 msgBoxDll db 'Çàïðàøèâàåìàÿ DLL íå íàéäåíà!',0 msgBoxProc db 'Çàïðàøèâàåìàÿ ïîäïðîãðàììà íå íàéäåíà!',0 msg1 db '[message]',13,10 db ' invoke LoadLibrary,dllName',13,10 db ' invoke GetProcAddress,eax,funcName',13,10 db ' invoke funcAddr,HWND_DESKTOP,msg1',13,10 db '[/message]',0
Section '.code' code readable executable start: invoke LoadLibrary,dllName cmp eax,NULL je dll_not_found invoke GetProcAddress,eax,funcName cmp eax,NULL je proc_not_found mov [funcAddr],eax invoke funcAddr,HWND_DESKTOP,msg1 jmp exit
dll_not_found: invoke MessageBox,HWND_DESKTOP,msgBoxDll,msgBoxTitle,MB_OK + MB_ICONERROR jmp exit proc_not_found: invoke MessageBox,HWND_DESKTOP,msgBoxProc,msgBoxTitle,MB_OK + MB_ICONERROR jmp exit exit: invoke ExitProcess,0
Section '.idata' import data readable library KERNEL32,'KERNEL32.DLL',\ USER32, 'USER32.DLL' import KERNEL32,\ GetProcAddress, 'GetProcAddress',\ LoadLibrary, 'LoadLibraryA',\ ExitProcess, 'ExitProcess'
import USER32,\ MessageBox, 'MessageBoxA'
Примеры Win 32/64 API -функций получения системной информации
Некоторые Win 32/64 API -функции получения системной информации: GetComputerName, GetSystemMetrics, GetWindowsDirectoty, GetKeyboardTy ре, GetTempPath, Set Со m р uterName, GetSysColor, GetUserName, SetSysColors, CecSystemDirectory, GetVersion, SystemParametersInfo, GetSystemlnfo, GetVersioriEx, GetUserName.
Функция GetComputerName используется для получения текущего имени компьютера. Связанная с ней SetСomputerName используется для присвоения имени компьютеру.
BOOL GetComputerName ( LPTSTR IpBuffer, // Адрес буфера имени. LPDWORD nSize // Размер буфера имени. Функции GetWindowsDirectory, GetSystemDirectory и GetTempPath находят путь к каталогу, к системному каталогу и к каталогу временных файлов Windows. Например, функция GetSystemDirectory определена как:
U 1 NT GetSystemDirectory ( LPTSTR IpBuffer, // Адрес буфера системного каталога
|
|||||
Последнее изменение этой страницы: 2021-07-18; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.218.79 (0.005 с.) |