rendered paste body.686
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
include \masm32\include\gdi32.inc
includelib \masm32\lib\gdi32.lib
fadeIn PROTO :DWORD
fadeOut PROTO :DWORD
dmgWinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
isClose PROTO :DWORD,:DWORD
.const
ID_DMGTXT equ 100h
ID_SET equ 200h
ID_DTYPE equ 300h
DELAY_VALUE equ 30
.data
dwdEMI1 dd 0055FB0Ch
dwdEMI2 dd 0071151Ch
dwdEMI3 dd 00711581h
rtdEMI1 dd 0055FB12h
rtdEMI2 dd 00711521h
rtdEMI3 dd 00711586h
dwDEM dd 0055FAF7h
rtDEM dd 0055FB06h
dwNKB dd 006D539Bh
dwPG dd 006CCE74h
rtPGChoice dd 006CCE79h
dwBlink dd 006BD651h
callz1 dd 0045595Bh
callz2 dd 00455A10h
rtBlink dd 006BD697h
hInstance dd 0
commandLine dd 0
dmghWnd dd 0
dvtype dd 0h
className db "PGClass", 0
windowName db " PG Pack v.51", 0
button3Text db "dEMI?", 0
button2Text db "Boss?", 0
buttonClass db "Button", 0
buttonText db "On", 0
buttonText2 db "Off", 0
hWndButton3 dd 0
hWndButton2 dd 0
hWndButton dd 0
hWndArialB dd 0
szUser32 db "User32.dll", 0
SLWA db "SetLayeredWindowAttributes", 0
pSLWA dd 0
Value dd 0
dwCx dd 0
dwCy dd 0
guiBool1 dd 0
guiBool2 dd 0
guiBool3 dd 0
strctLOG LOGFONT <-0FFFFFFF5h, 0, 0, 0, 02BCh, 0, 0, 0, 0, 03h, 02h, 01h, 016h, "Arial">
rct RECT<>
pt POINT<>
rctwin RECT <>
rctScr RECT <>
.data?
numBuff db 011h dup (?)
.code
OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE
dEMI1 proc
mov eax, dword ptr ds:[00850460h]
push eax
mov eax, dword ptr ds:[eax+644h]
mov dword ptr ds:[ebx+450h], eax
cmp dword ptr ds:[dvtype], 0
je dvzero
cmp dword ptr ds:[dvtype], 1
je dvone
sub eax, 100h
jmp dvzero
dvone:
add eax, 100h
dvzero:
mov dword ptr ds:[ebx+448h], eax
pop eax
mov eax, dword ptr ds:[eax+648h]
mov dword ptr ds:[ebx+44Ch], eax
mov dword ptr ds:[ebx+454h], eax
jmp dword ptr ds:[rtdEMI1]
dEMI1 endp
dEMI2 proc
push ecx
mov ecx, dword ptr ds:[00850460h]
add ecx,644h
cmp ebx, ecx
je normalx
mov ecx, [ecx]
cmp dword ptr ds:[dvtype], 0
je uvzero
cmp dword ptr ds:[dvtype], 1
je uvone
sub ecx, 100h
jmp uvzero
uvone:
add ecx, 100h
uvzero:
cmp [ebx],ecx
je endx
normalx:
mov [ebx],eax
endx:
pop ecx
mov edi, [ebp+10h]
jmp dword ptr ds:[rtdEMI2]
dEMI2 endp
dEMI3 proc
push ecx
mov ecx, dword ptr ds:[00850460h]
add ecx,648h
cmp edi, ecx
je normaly
mov ecx, [ecx]
cmp [edi],ecx
je endy
normaly:
mov [edi],eax
endy:
pop ecx
mov ebx, dword ptr ds:[ebp+14h]
jmp dword ptr ds:[rtdEMI3]
dEMI3 endp
Blinker proc
jle outzor
mov ecx, edi
call dword ptr ds:[callz1]
mov esi, eax
sub esi, 01Eh
push esi
mov ecx, edi
call dword ptr ds:[callz2]
test esi, esi
jle outzor
push 0
mov ecx, edi
call dword ptr ds:[callz2]
outzor:
mov ecx, edi
call dword ptr ds:[callz1]
test eax, eax
mov ecx, edi
call dword ptr ds:[callz1]
mov esi, eax
add esi, 01Eh
push esi
mov ecx, edi
call dword ptr ds:[callz2]
test esi, esi
jmp dword ptr ds:[rtBlink]
Blinker endp
pgChoice proc
cmp dword ptr ds:[guiBool2], 0
jnz @1
mov eax, VALUEh ;Secret Value. Will not assemble as is.
jmp @2
@1:
mov eax, 0C8h
@2:
jmp dword ptr ds:[rtPGChoice]
pgChoice endp
dem proc
push edx
mov edx, dword ptr ds:[00850460h]
lea edx, [edx+0644h]
mov ecx, [edx]
mov edx, dword ptr ds:[00850460h]
lea edx, [edx+0648h]
lea eax, [edx]
mov eax, [eax]
pop edx
jmp dword ptr ds:[rtDEM]
dem endp
OPTION PROLOGUE:PrologueDef
OPTION EPILOGUE:EpilogueDef
setPG proc
mov eax, dword ptr ds:[dwNKB]
mov byte ptr ds:[eax], 07Dh
mov eax, dword ptr ds:[dwBlink]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset Blinker
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
mov eax, dword ptr ds:[dwBlink]
add eax, 5
mov dword ptr ds:[eax], 090909090h
mov eax, dword ptr ds:[dwPG]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset pgChoice
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
ret
setPG endp
unSetPG proc
mov eax, dword ptr ds:[dwdEMI1]
mov word ptr ds:[eax], 08389h
add eax, 2
mov dword ptr ds:[eax], 0454h
mov eax, dword ptr ds:[dwdEMI2]
mov byte ptr ds:[eax], 089h
inc eax
mov dword ptr ds:[eax], 0107D8B03h
mov eax, dword ptr ds:[dwdEMI3]
mov byte ptr ds:[eax], 089h
inc eax
mov dword ptr ds:[eax], 0145D8B07h
mov eax, dword ptr ds:[dwDEM]
mov word ptr ds:[eax], 08B8Bh
add eax, 2
mov dword ptr ds:[eax], 00448h
mov eax, dword ptr ds:[dwPG]
mov byte ptr ds:[eax], 0E8h
inc eax
mov dword ptr ds:[eax], 0FFD45ACBh
mov eax, dword ptr ds:[dwBlink]
mov dword ptr ds:[eax], 0CF8B217Eh
add eax, 04h
mov byte ptr ds:[eax], 0E8h
inc eax
mov dword ptr ds:[eax], 0FFD98301h
ret
unSetPG endp
setDEMI proc
mov eax, dword ptr ds:[dwdEMI1]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset dEMI1
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
mov eax, dword ptr ds:[dwdEMI1]
add eax, 5
mov byte ptr ds:[eax], 090h
mov eax, dword ptr ds:[dwdEMI2]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset dEMI2
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
mov eax, dword ptr ds:[dwdEMI3]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset dEMI3
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
ret
setDEMI endp
setDEM proc
mov eax, dword ptr ds:[dwDEM]
mov byte ptr ds:[eax], 0E9h
mov ecx, offset dem
add eax, 5
sub ecx, eax
sub eax, 4
mov dword ptr ds:[eax], ecx
mov eax, dword ptr ds:[dwDEM]
add eax, 5
mov byte ptr ds:[eax], 090h
ret
setDEM endp
fadeIn proc hWin:DWORD
invoke GetWindowLong, hWin, GWL_EXSTYLE
or eax, WS_EX_LAYERED
invoke SetWindowLong, hWin, GWL_EXSTYLE, eax
invoke GetModuleHandle, addr szUser32
invoke GetProcAddress, eax, addr SLWA
mov dword ptr ds:[pSLWA], eax
push LMA_ALPHA
push 0
push 0
push hWin
call pSLWA
mov dword ptr ds:[Value], 90
invoke ShowWindow, hWin, SW_SHOWNA
doloop:
push LMA_COLORKEY + LMA_ALPHA
push Value
push Value
push hWin
call pSLWA
invoke Sleep, DELAY_VALUE
add Value, 15
cmp Value, 255
jne doloop
push LMA_ALPHA
push 255
push 0
push hWin
call pSLWA
ret
fadeIn endp
fadeOut proc hWin:DWORD
invoke GetWindowLong, hWin, GWL_EXSTYLE
or eax,WS_EX_LAYERED
invoke SetWindowLong, hWin, GWL_EXSTYLE, eax
invoke GetModuleHandle, ADDR szUser32
invoke GetProcAddress, eax, ADDR SLWA
mov dword ptr ds:[pSLWA], eax
push LMA_ALPHA
push 255
push 0
push hWin
call pSLWA
mov dword ptr ds:[Value], 255
doloop:
push LMA_COLORKEY + LMA_ALPHA
push Value
push Value
push hWin
call pSLWA
invoke Sleep, DELAY_VALUE
sub dword ptr ds:[Value], 15
cmp dword ptr ds:[Value], 0
jne doloop
ret
fadeOut endp
isClose proc dwA:DWORD, dwX:DWORD
mov eax, dwA
sub eax, dwX
bt eax, 31
jnc @f
neg eax
@@:
sub eax, 16
js @f
mov eax, FALSE
jmp done
@@:
mov eax, TRUE
done:
ret
isClose endp
WndProc proc hWnd:HWND, uMSG:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMSG == WM_CREATE
invoke fadeIn, dword ptr ds:[hWnd]
invoke CreateWindowEx, NULL, addr buttonClass, addr button2Text, WS_CHILD or WS_VISIBLE or BS_CHECKBOX, 08h, 05h, 032h, 0Bh, dword ptr ds:[hWnd], ID_DMGTXT, hInstance, NULL
mov dword ptr ds:[hWndButton2], eax
invoke CreateWindowEx, NULL, addr buttonClass, addr buttonText, WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON or BS_CENTER or BS_VCENTER or BS_PUSHLIKE, 05h, 025h, 08Ah, 014h, dword ptr ds:[hWnd], ID_SET, hInstance, NULL
mov dword ptr ds:[hWndButton], eax
invoke CreateWindowEx, NULL, addr buttonClass, addr button3Text, WS_CHILD or WS_VISIBLE or BS_CHECKBOX, 08h, 015h, 032h, 0Bh, dword ptr ds:[hWnd], ID_DTYPE, hInstance, NULL
mov dword ptr ds:[hWndButton3], eax
invoke CreateFontIndirect, addr strctLOG
mov dword ptr ds:[hWndArialB], eax
invoke SendMessage, dword ptr ds:[hWndButton3], WM_SETFONT, dword ptr ds:[hWndArialB], 0
invoke SendMessage, dword ptr ds:[hWndButton2], WM_SETFONT, dword ptr ds:[hWndArialB], 0
invoke SendMessage, dword ptr ds:[hWndButton], WM_SETFONT, dword ptr ds:[hWndArialB], 0
.ELSEIF uMSG == WM_COMMAND
mov eax, dword ptr ds:[wParam]
.IF ax == ID_SET
shr eax, 010h
.IF ax == BN_CLICKED
cmp dword ptr ds:[guiBool1], 0h
jnz @2
@1:
invoke SetWindowText, dword ptr ds:[hWndButton], addr buttonText2
xor dword ptr ds:[guiBool1], 01h
call setPG
cmp dword ptr ds:[guiBool3], 01h
jnz doDEM
call setDEMI
jmp @3
doDEM:
call setDEM
jmp @3
@2:
invoke SetWindowText, dword ptr ds:[hWndButton], addr buttonText
xor dword ptr ds:[guiBool1], 01h
call unSetPG
@3:
.ENDIF
.ELSEIF ax == ID_DMGTXT
shr eax, 010h
.IF ax == BN_CLICKED
cmp dword ptr ds:[guiBool2], 0h
jnz @5
@4:
invoke SendMessage, dword ptr ds:[hWndButton2], BM_SETCHECK, BST_CHECKED, 0
xor dword ptr ds:[guiBool2], 01h
jmp @6
@5:
invoke SendMessage, dword ptr ds:[hWndButton2], BM_SETCHECK, BST_UNCHECKED, 0
xor dword ptr ds:[guiBool2], 01h
@6:
.ENDIF
.ELSEIF ax == ID_DTYPE
shr eax, 010h
.IF ax == BN_CLICKED
cmp dword ptr ds:[guiBool1], 0h
jz @7
jmp @f
@7:
cmp dword ptr ds:[guiBool3], 0h
jnz @8
invoke SendMessage, dword ptr ds:[hWndButton3], BM_SETCHECK, BST_CHECKED, 0
xor dword ptr ds:[guiBool3], 01h
jmp @f
@8:
invoke SendMessage, dword ptr ds:[hWndButton3], BM_SETCHECK, BST_UNCHECKED, 0
xor dword ptr ds:[guiBool3], 01h
@@:
.ENDIF
.ENDIF
.ELSEIF uMSG == WM_CLOSE
invoke fadeOut, dword ptr ds:[hWnd]
invoke DeleteObject, dword ptr ds:[hWndArialB]
invoke DestroyWindow, dword ptr ds:[hWnd]
.ELSEIF uMSG == WM_DESTROY
invoke PostQuitMessage, NULL
ret
.ELSEIF uMSG == WM_ENTERSIZEMOVE
invoke GetWindowRect, hWnd, ADDR rctwin
invoke GetCursorPos, addr pt
mov eax, dword ptr ds:[pt.x]
mov edx, dword ptr ds:[pt.y]
sub eax, dword ptr ds:[rctwin.left]
sub edx, dword ptr ds:[rctwin.top]
mov dword ptr ds:[dwCx], eax
mov dword ptr ds:[dwCy], edx
.ELSEIF uMSG == WM_MOVING
invoke GetCursorPos, addr pt
mov eax, dword ptr ds:[pt.x]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx]
add ecx, dword ptr ds:[dwCx]
sub eax, ecx
push eax
mov eax, dword ptr ds:[pt.y]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx+4]
add ecx, dword ptr ds:[dwCy]
sub eax, ecx
pop ecx
invoke OffsetRect, lParam, ecx, eax
invoke SystemParametersInfo, SPI_GETWORKAREA, NULL, addr rctScr, NULL
mov edx, dword ptr ds:[lParam]
mov edx, [edx]
Invoke isClose, edx, rctScr. left
.IF EAX == TRUE
mov edx, dword ptr ds:[rctScr.left]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx]
sub edx, ecx
invoke OffsetRect, lParam, edx, 0
jmp @F
.ENDIF
mov edx, dword ptr ds:[lParam]
mov edx, [edx+8]
invoke isClose, edx, rctScr.right
.IF EAX == TRUE
mov edx, dword ptr ds:[rctScr.right]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx+8]
sub edx, ecx
invoke OffsetRect, lParam, edx, 0
.ENDIF
@@:
mov edx, dword ptr ds:[lParam]
mov edx, [edx+4]
invoke isClose, edx, rctScr.top
.IF EAX == TRUE
mov edx, dword ptr ds:[rctScr.top]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx+4]
sub edx, ecx
invoke OffsetRect, lParam, 0, edx
jmp @f
.ENDIF
mov edx, dword ptr ds:[lParam]
mov edx, [edx+12]
invoke isClose, edx, rctScr.bottom
.IF EAX == TRUE
mov edx, dword ptr ds:[rctScr.bottom]
mov ecx, dword ptr ds:[lParam]
mov ecx, [ecx+12]
sub edx, ecx
invoke OffsetRect, lParam, 0, edx
.ENDIF
@@:
.ENDIF
invoke DefWindowProc, hWnd, uMSG, wParam, lParam
ret
WndProc endp
dmgWinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, cmdLine:LPSTR, cmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
mov dword ptr ds:[wc.cbSize], SIZEOF WNDCLASSEX
mov dword ptr ds:[wc.style], CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNWINDOW
mov dword ptr ds:[wc.lpfnWndProc], offset WndProc
mov dword ptr ds:[wc.cbClsExtra], NULL
mov dword ptr ds:[wc.cbWndExtra], NULL
push hInstance
pop wc.hInstance
mov dword ptr ds:[wc.hbrBackground], COLOR_BTNFACE+1
mov dword ptr ds:[wc.lpszMenuName], NULL
mov dword ptr ds:[wc.lpszClassName], OFFSET className
invoke LoadIcon, NULL, IDI_APPLICATION
mov dword ptr ds:[wc.hIcon], eax
mov dword ptr ds:[wc.hIconSm], eax
invoke LoadCursor, NULL, IDC_ARROW
mov dword ptr ds:[wc.hCursor], eax
invoke RegisterClassEx, addr wc
invoke GetDesktopWindow
invoke GetWindowRect, eax, addr rct
mov eax, dword ptr ds:[rct.right]
sub eax, 09Ah
invoke CreateWindowEx, WS_EX_TOOLWINDOW or WS_EX_CONTROLPARENT, addr className, addr windowName, WS_OVERLAPPED or WS_CLIPSIBLINGS or WS_CLIPCHILDREN or WS_SYSMENU or WS_CAPTION, eax, 047h, 09Ah, 056h, NULL, NULL, dword ptr ds:[hInst], NULL
mov dword ptr ds:[dmghWnd], eax
invoke ShowWindow, dword ptr ds:[dmghWnd], SW_SHOWNORMAL
invoke UpdateWindow, dword ptr ds:[dmghWnd]
msgLoop:
invoke GetMessage, addr msg, NULL, 0, 0
cmp eax, 0
jz endmsgLoop
invoke TranslateMessage, addr msg
invoke DispatchMessage, addr msg
jmp msgLoop
endmsgLoop:
mov eax, dword ptr ds:[msg.wParam]
ret
dmgWinMain endp
windowCreate proc
invoke GetModuleHandle, NULL
mov dword ptr ds:[hInstance], eax
invoke GetCommandLine
mov dword ptr ds:[commandLine], eax
invoke dmgWinMain, dword ptr ds:[hInstance], NULL, dword ptr ds:[commandLine], SW_SHOWDEFAULT
invoke ExitThread, NULL
windowCreate endp
DllMain proc hinstDLL:HINSTANCE, fdwReason:DWORD, lpvReserved:LPVOID
cmp dword ptr ds:[fdwReason], DLL_PROCESS_ATTACH
jne @f
invoke CreateThread, NULL, NULL, addr windowCreate, NULL, NULL, NULL
@@:
mov eax, 1
pop ebp
retn 0Ch
DllMain endp
end DllMain