📄 minimumdll.dpr
字号:
library MinimumDll;
const
DLL_PROCESS_DETACH = 0;
DLL_PROCESS_ATTACH = 1;
DLL_THREAD_ATTACH = 2;
DLL_THREAD_DETACH = 3;
function MessageBox(hWnd: LongWord; lpText, lpCaption: PChar; uType: LongWord): Integer; stdcall;
external user32 name 'MessageBoxA';
const
MB_ICONINFORMATION = $00000040;
var
sArr : array [0..3] of pChar
= ('PROCESS_DETACH',
'PROCESS_ATTACH',
'THREAD_ATTACH',
'THREAD_DETACH');
procedure Same_DllMain(Reason: Integer);
begin
case Reason of
DLL_PROCESS_ATTACH,
DLL_THREAD_ATTACH,
DLL_THREAD_DETACH,
DLL_PROCESS_DETACH :
MessageBox(0, sArr[Reason], 'MinimumDll', MB_ICONINFORMATION);
end;
end;
procedure ExitDll(EAX : LongBool);
asm
LEAVE
RET 12
end;
begin
{ -> EAX Inittable }
{ [EBP+8] Hinst }
{ [EBP+12] Reason }
{ [EBP+16] Resvd }
// here, is Pure DllMain()
asm
mov eax, [EBP+12]
mov ecx, [EBP+16]
call Same_DllMain
end;
ExitDll(True);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -