.386 .model flat, stdcall option casemap:none include windows.inc include \masm32\include\K32B.INC DlgProc PROTO :HWND,:UINT,:WPARAM,:LPARAM .code szlmao db "i win", 0 K32BASE DD 0 U32BASE DD 0 USER32DLL DB "USER32.DLL", 0 DEFINE_API LoadLibrary, "LoadLibraryA" DEFINE_API FreeLibrary, "FreeLibrary" DEFINE_API ExitProcess, "ExitProcess" DEFINE_API MessageBox, "MessageBoxA" DEFINE_API DialogBoxParam, "DialogBoxParam" DEFINE_API EndDialog, "EndDialog" start: K32B K32BASE LdAPI K32BASE, LoadLibrary LdAPI K32BASE, FreeLibrary LdAPI K32BASE, ExitProcess ACall LoadLibrary, OFFSET USER32DLL MOV U32BASE, EAX LdAPI U32BASE, DialogBoxParam push 0 push offset DlgProc push 0 push 101 push 00400000h ACall DialogBoxParam ACall FreeLibrary, U32BASE ACall ExitProcess, NULL DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM mov eax,uMsg .if eax==WM_INITDIALOG .elseif eax==WM_COMMAND mov eax,wParam mov ecx,eax shr ecx,16 .IF cx==BN_CLICKED .IF ax==1003 ACall LoadLibrary, OFFSET USER32DLL MOV U32BASE, EAX LdAPI U32BASE, MessageBox push 0 push offset szlmao push offset szlmao push 0 ACall MessageBox ACall FreeLibrary, U32BASE .ENDIF .ENDIF .elseif eax==WM_CLOSE ACall LoadLibrary, OFFSET USER32DLL MOV U32BASE, EAX LdAPI U32BASE, EndDialog push 0 push hWin ACall EndDialog ACall FreeLibrary, U32BASE .else mov eax,0 ret .endif mov eax,1 ret DlgProc endp end start