All pastes #138512 Raw Edit

Miscellany

public text v1 · immutable
#138512 ·published 2006-08-19 06:44 UTC
rendered paste body
.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