Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format PE GUI 4.0
- include 'win32a.inc'
- LOGO_MAIN = 2000
- IDB_LOGO = 2001
- IDD_MAIN = 1000
- IDE_BUDGET = 101
- IDE_IRON = 102
- IDE_STEEL = 103
- IDE_CABLE = 104
- IDE_HYDRALC = 105
- IDE_SUSPCBLE = 106
- IDE_HVSTEEL = 107
- IDB_SET = 200
- IDB_BUDGSET = 201
- section '.text' code readable writeable executable
- start:
- invoke CreateSolidBrush,0h
- mov [colblack],eax
- invoke GetModuleHandle,0
- mov [hInstance],eax
- invoke DialogBoxParam,[hInstance],IDD_MAIN,NULL,MainDialogProc,0
- invoke ExitProcess,0
- proc MainDialogProc hwnd,msg,wparam,lparam
- push ebx esi edi
- cmp [msg],WM_INITDIALOG
- je .init
- cmp [msg],WM_COMMAND
- je .wmcommand
- cmp [msg],WM_CTLCOLORDLG
- je .backcolour
- cmp [msg],WM_CTLCOLORSTATIC
- je .statcolour
- cmp [msg],WM_CLOSE
- je .close
- xor eax,eax
- jmp .finish
- .init:
- invoke LoadCursor,NULL,IDC_HAND
- mov [handcursor],eax
- invoke LoadBitmap,[hInstance],LOGO_MAIN
- invoke SendDlgItemMessage,[hwnd],IDB_LOGO,STM_SETIMAGE,IMAGE_BITMAP,eax
- invoke LoadIcon,[hInstance],17
- invoke SendMessage,[hwnd],WM_SETICON,ICON_SMALL,eax
- invoke CheckDlgButton,[hwnd],IDB_BUDGSET,BST_CHECKED
- invoke GetDlgItem,[hwnd],IDE_BUDGET
- mov [budgethandle],eax
- mov [curdlghwnd],101
- invoke GetDlgItem,[hwnd],IDB_LOGO
- invoke SetWindowLong,eax,GWL_WNDPROC,AboutProc
- mov [maindlgproc],eax
- .loadtextlim:
- invoke GetDlgItem,[hwnd],[curdlghwnd]
- invoke SendMessage,eax,EM_SETLIMITTEXT,9,0
- inc [curdlghwnd]
- cmp [curdlghwnd],107
- jna .loadtextlim
- jmp .processed
- .backcolour:
- mov eax,[colblack]
- jmp .finish
- .statcolour:
- invoke SetTextColor,[wparam],00FFFFFFh
- invoke SetBkMode,[wparam],TRANSPARENT
- mov eax,[colblack]
- jmp .finish
- .wmcommand:
- mov eax,[wparam]
- and eax,0FFFFh
- cmp eax,IDB_SET
- je .setbudget
- jmp .processed
- .setbudget:
- invoke IsDlgButtonChecked,[hwnd],IDB_BUDGSET
- cmp eax,BST_CHECKED
- jne .nobudgetset
- mov [setthebudget],1
- invoke SendMessage,[budgethandle],WM_GETTEXT,9,budget
- test eax,eax
- jz .nobudg
- invoke GetDlgItemInt,[hwnd],IDE_BUDGET,0,FALSE
- mov [budget],eax
- .nobudgetset:
- cmp [setthebudget],0
- setne [setthebudget]
- mov [curdlghwnd],102
- xor ebx,ebx
- .loadints:
- invoke GetDlgItemInt,[hwnd],[curdlghwnd],0,FALSE
- mov [materials+ebx],eax
- add ebx,4
- inc [curdlghwnd]
- cmp [curdlghwnd],107
- jna .loadints
- invoke FindWindow,programclass,programtitle
- test eax,eax
- jz .noponti
- invoke GetWindowThreadProcessId,eax,programpid
- invoke OpenProcess,PROCESS_ALL_ACCESS,FALSE,[programpid]
- mov [opid],eax
- cmp [setthebudget],1
- jne .skipbudget
- invoke WriteProcessMemory,[opid],19FA2ACh,budget,4,byteswritten
- test eax,eax
- jz .error
- .skipbudget:
- invoke WriteProcessMemory,[opid],19FA2B8h,materials,24,byteswritten
- test eax,eax
- jz .error
- invoke CloseHandle,[opid]
- jmp .processed
- .nobudg:
- invoke MessageBoxA,[hwnd],_nobudget,_error,MB_ICONWARNING
- jmp .processed
- .noponti:
- invoke MessageBoxA,[hwnd],_noponti,_error,MB_ICONERROR
- jmp .processed
- .about:
- invoke MessageBoxA,[hwnd],_aboutmsg,_about,0
- jmp .processed
- .error:
- invoke GetLastError,0
- invoke FormatMessageA,FORMAT_MESSAGE_FROM_SYSTEM+FORMAT_MESSAGE_ALLOCATE_BUFFER,0,eax,0,error_buffer,0,0
- invoke MessageBoxA,0,[error_buffer],_error,MB_OK+MB_ICONERROR
- jmp .processed
- .close:
- invoke EndDialog,[hwnd],0
- jmp .processed
- .processed:
- mov eax,TRUE
- .finish:
- pop edi esi ebx
- ret
- endp
- proc AboutProc hwnd,msg,wparam,lparam
- cmp [msg],WM_LBUTTONUP
- je .about
- cmp [msg],WM_SETCURSOR
- je .setcursor
- invoke CallWindowProc,[maindlgproc],[hwnd],[msg],[wparam],[lparam]
- xor eax,eax
- ret
- .setcursor:
- invoke SetCursor,[handcursor]
- jmp .end
- .about:
- invoke MessageBoxA,[hwnd],_aboutmsg,_about,0
- .end:
- ;mov eax,TRUE
- ret
- endp
- ;section '.data' readable writeable
- _error TCHAR 'ERROR',0
- programclass TCHAR 'SDL_app',0
- programtitle TCHAR 'Pontifex II',0
- _nobudget TCHAR 'No Budget entered',0
- _noponti TCHAR 'Pontifex II Is not Running',0
- _about TCHAR 'About',0
- _aboutmsg TCHAR 'Pontifex II Trainer by PHREAK76',0
- hInstance dd ?
- curdlghwnd dd ?
- handcursor dd ?
- maindlgproc dd ?
- error_buffer dd ?
- budgethandle dd ?
- budget dd ?
- programpid dd ?
- byteswritten dd ?
- opid dd ?
- iconhandle dd ?
- colblack dd ?
- logolocation dd ?
- setthebudget db 0
- materials dd 6 dup (?)
- section '.idata' import data readable
- library \
- kernel,'KERNEL32.DLL',\
- user,'USER32.DLL',\
- gdi,'GDI32.DLL'
- import kernel,\
- ExitProcess,'ExitProcess',\
- GetModuleHandle,'GetModuleHandleA',\
- GetLastError,'GetLastError',\
- FormatMessageA,'FormatMessageA',\
- ReadProcessMemory,'ReadProcessMemory',\
- WriteProcessMemory,'WriteProcessMemory',\
- OpenProcess,'OpenProcess',\
- CloseHandle,'CloseHandle'
- import user,\
- MessageBoxA,'MessageBoxA',\
- DialogBoxParam,'DialogBoxParamA',\
- GetDlgItem,'GetDlgItem',\
- EndDialog,'EndDialog',\
- SendMessage,'SendMessageA',\
- FindWindow,'FindWindowA',\
- GetWindowThreadProcessId,'GetWindowThreadProcessId',\
- MessageBox,'MessageBoxA',\
- GetDlgItemInt,'GetDlgItemInt',\
- CheckDlgButton,'CheckDlgButton',\
- IsDlgButtonChecked,'IsDlgButtonChecked',\
- LoadIcon,'LoadIconA',\
- SendDlgItemMessage,'SendDlgItemMessageA',\
- LoadBitmap,'LoadBitmapA',\
- GetDC,'GetDC',\
- SetWindowLong,'SetWindowLongA',\
- CallWindowProc,'CallWindowProcA',\
- LoadCursor,'LoadCursorA',\
- SetCursor,'SetCursor'
- import gdi,\
- CreateSolidBrush,'CreateSolidBrush',\
- SetTextColor,'SetTextColor',\
- SetBkMode,'SetBkMode'
- section '.rsrc' resource data readable
- directory RT_ICON,icons,\
- RT_GROUP_ICON,group_icons,\
- RT_DIALOG,dialogs,\
- RT_BITMAP,bitmaps
- resource dialogs,\
- IDD_MAIN,LANG_ENGLISH+SUBLANG_DEFAULT,PONTIFEXDIALOG
- resource icons,\
- 1,LANG_NEUTRAL,icon_data
- resource group_icons,\
- 17,LANG_NEUTRAL,main_icon
- resource bitmaps,\
- LOGO_MAIN,LANG_NEUTRAL,LOGO
- dialog PONTIFEXDIALOG,'Pontifex II 1.5 Trainer',0,0,244,176,WS_VISIBLE+DS_CENTER+WS_CAPTION+WS_MINIMIZEBOX+WS_SYSMENU
- dialogitem 'EDIT','100000000',IDE_BUDGET,100,130,50,13,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_IRON,31,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_STEEL,99,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_CABLE,165,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_SUSPCBLE,31,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_HVSTEEL,99,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'EDIT','100000000',IDE_HYDRALC,165,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
- dialogitem 'STATIC','IRON:',-1,31,55,28,8,WS_VISIBLE
- dialogitem 'STATIC','STEEL:',-1,99,55,28,7,WS_VISIBLE
- dialogitem 'STATIC','CABLE:',-1,166,55,28,7,WS_VISIBLE
- dialogitem 'STATIC','SUSPCBL:',-1,31,90,35,7,WS_VISIBLE
- dialogitem 'STATIC','HVSTEEL:',-1,99,90,35,7,WS_VISIBLE
- dialogitem 'STATIC','HYDRALC:',-1,165,90,35,7,WS_VISIBLE
- dialogitem 'STATIC','BUDGET:',-1,100,120,53,7,WS_VISIBLE
- dialogitem 'BUTTON','Set',IDB_SET,100,152,49,14,WS_VISIBLE
- dialogitem 'BUTTON','Set Budget',IDB_BUDGSET,165,129,50,15,WS_VISIBLE+BS_AUTOCHECKBOX
- dialogitem 'STATIC','',IDB_LOGO,31,11,0,0,WS_VISIBLE+SS_BITMAP
- enddialog
- icon main_icon,icon_data,'bridge.ico'
- bitmap LOGO,'LOGO.bmp'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement