![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 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; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.222.239 (0.007 с.) |