Advertisement
Guest User

Untitled

a guest
Jun 8th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. format PE GUI 4.0
  3.  
  4. include 'win32a.inc'
  5.  
  6. LOGO_MAIN    = 2000
  7. IDB_LOGO     = 2001
  8. IDD_MAIN     = 1000
  9. IDE_BUDGET   = 101
  10. IDE_IRON     = 102
  11. IDE_STEEL    = 103
  12. IDE_CABLE    = 104
  13. IDE_HYDRALC  = 105
  14. IDE_SUSPCBLE = 106
  15. IDE_HVSTEEL  = 107
  16. IDB_SET      = 200
  17. IDB_BUDGSET  = 201
  18.  
  19.  
  20.  
  21. section '.text' code readable writeable executable
  22.  
  23.  
  24. start:
  25.       invoke  CreateSolidBrush,0h
  26.       mov     [colblack],eax
  27.  
  28.       invoke GetModuleHandle,0
  29.       mov    [hInstance],eax
  30.       invoke DialogBoxParam,[hInstance],IDD_MAIN,NULL,MainDialogProc,0
  31.       invoke ExitProcess,0
  32.  
  33.  
  34. proc    MainDialogProc hwnd,msg,wparam,lparam
  35.     push    ebx esi edi
  36.  
  37.     cmp [msg],WM_INITDIALOG
  38.     je  .init
  39.     cmp [msg],WM_COMMAND
  40.     je  .wmcommand
  41.     cmp [msg],WM_CTLCOLORDLG
  42.     je  .backcolour
  43.     cmp [msg],WM_CTLCOLORSTATIC
  44.     je  .statcolour
  45.     cmp [msg],WM_CLOSE
  46.     je  .close
  47.     xor eax,eax
  48.     jmp .finish
  49.  
  50.   .init:
  51.     invoke  LoadCursor,NULL,IDC_HAND
  52.     mov [handcursor],eax
  53.     invoke  LoadBitmap,[hInstance],LOGO_MAIN
  54.     invoke  SendDlgItemMessage,[hwnd],IDB_LOGO,STM_SETIMAGE,IMAGE_BITMAP,eax
  55.     invoke  LoadIcon,[hInstance],17
  56.     invoke  SendMessage,[hwnd],WM_SETICON,ICON_SMALL,eax
  57.     invoke  CheckDlgButton,[hwnd],IDB_BUDGSET,BST_CHECKED
  58.     invoke  GetDlgItem,[hwnd],IDE_BUDGET
  59.     mov [budgethandle],eax
  60.     mov [curdlghwnd],101
  61.     invoke  GetDlgItem,[hwnd],IDB_LOGO
  62.     invoke  SetWindowLong,eax,GWL_WNDPROC,AboutProc
  63.     mov [maindlgproc],eax
  64.     .loadtextlim:
  65.     invoke  GetDlgItem,[hwnd],[curdlghwnd]
  66.     invoke  SendMessage,eax,EM_SETLIMITTEXT,9,0
  67.     inc [curdlghwnd]
  68.     cmp [curdlghwnd],107
  69.     jna .loadtextlim
  70.     jmp .processed
  71.  
  72.   .backcolour:
  73.     mov eax,[colblack]
  74.     jmp .finish
  75.  
  76.   .statcolour:
  77.     invoke  SetTextColor,[wparam],00FFFFFFh
  78.     invoke  SetBkMode,[wparam],TRANSPARENT
  79.     mov eax,[colblack]
  80.     jmp .finish
  81.  
  82.   .wmcommand:
  83.     mov eax,[wparam]
  84.     and eax,0FFFFh
  85.     cmp eax,IDB_SET
  86.     je  .setbudget
  87.     jmp .processed
  88.  
  89.   .setbudget:
  90.     invoke  IsDlgButtonChecked,[hwnd],IDB_BUDGSET
  91.     cmp eax,BST_CHECKED
  92.     jne .nobudgetset
  93.     mov [setthebudget],1
  94.     invoke  SendMessage,[budgethandle],WM_GETTEXT,9,budget
  95.     test    eax,eax
  96.     jz  .nobudg
  97.     invoke  GetDlgItemInt,[hwnd],IDE_BUDGET,0,FALSE
  98.     mov [budget],eax
  99.     .nobudgetset:
  100.     cmp [setthebudget],0
  101.     setne   [setthebudget]
  102.     mov [curdlghwnd],102
  103.     xor ebx,ebx
  104.     .loadints:
  105.     invoke  GetDlgItemInt,[hwnd],[curdlghwnd],0,FALSE
  106.     mov [materials+ebx],eax
  107.     add ebx,4
  108.     inc [curdlghwnd]
  109.     cmp [curdlghwnd],107
  110.     jna .loadints
  111.     invoke  FindWindow,programclass,programtitle
  112.     test    eax,eax
  113.     jz  .noponti
  114.     invoke  GetWindowThreadProcessId,eax,programpid
  115.     invoke  OpenProcess,PROCESS_ALL_ACCESS,FALSE,[programpid]
  116.     mov [opid],eax
  117.     cmp [setthebudget],1
  118.     jne .skipbudget
  119.     invoke  WriteProcessMemory,[opid],19FA2ACh,budget,4,byteswritten
  120.     test    eax,eax
  121.     jz  .error
  122.     .skipbudget:
  123.     invoke  WriteProcessMemory,[opid],19FA2B8h,materials,24,byteswritten
  124.     test    eax,eax
  125.     jz  .error
  126.     invoke  CloseHandle,[opid]
  127.     jmp .processed
  128.  
  129.  
  130.   .nobudg:
  131.     invoke  MessageBoxA,[hwnd],_nobudget,_error,MB_ICONWARNING
  132.     jmp .processed
  133.  
  134.   .noponti:
  135.     invoke  MessageBoxA,[hwnd],_noponti,_error,MB_ICONERROR
  136.     jmp .processed
  137.  
  138.   .about:
  139.     invoke MessageBoxA,[hwnd],_aboutmsg,_about,0
  140.     jmp    .processed
  141.  
  142.   .error:
  143.     invoke GetLastError,0
  144.     invoke FormatMessageA,FORMAT_MESSAGE_FROM_SYSTEM+FORMAT_MESSAGE_ALLOCATE_BUFFER,0,eax,0,error_buffer,0,0
  145.     invoke MessageBoxA,0,[error_buffer],_error,MB_OK+MB_ICONERROR
  146.     jmp    .processed
  147.  
  148.   .close:
  149.     invoke  EndDialog,[hwnd],0
  150.     jmp .processed
  151.  
  152.   .processed:
  153.   mov   eax,TRUE
  154.   .finish:
  155.  pop    edi esi ebx
  156.  ret
  157.  
  158. endp
  159.  
  160. proc    AboutProc hwnd,msg,wparam,lparam
  161.     cmp [msg],WM_LBUTTONUP
  162.     je  .about
  163.     cmp [msg],WM_SETCURSOR
  164.     je .setcursor
  165.     invoke CallWindowProc,[maindlgproc],[hwnd],[msg],[wparam],[lparam]
  166.     xor eax,eax
  167.     ret
  168.  
  169.  
  170.   .setcursor:
  171.     invoke  SetCursor,[handcursor]
  172.     jmp .end
  173.  
  174.   .about:
  175.     invoke MessageBoxA,[hwnd],_aboutmsg,_about,0
  176.  
  177. .end:
  178. ;mov eax,TRUE
  179. ret
  180.  
  181. endp
  182.  
  183.  
  184.  
  185.  
  186.  
  187. ;section '.data' readable writeable
  188. _error TCHAR 'ERROR',0
  189. programclass TCHAR 'SDL_app',0
  190. programtitle TCHAR 'Pontifex II',0
  191. _nobudget TCHAR 'No Budget entered',0
  192. _noponti  TCHAR 'Pontifex II Is not Running',0
  193. _about    TCHAR 'About',0
  194. _aboutmsg TCHAR 'Pontifex II Trainer by PHREAK76',0
  195. hInstance dd ?
  196. curdlghwnd dd ?
  197. handcursor dd ?
  198. maindlgproc dd ?
  199. error_buffer dd ?
  200. budgethandle dd ?
  201. budget dd ?
  202. programpid dd ?
  203. byteswritten dd ?
  204. opid dd ?
  205. iconhandle dd ?
  206. colblack dd ?
  207. logolocation dd ?
  208. setthebudget db 0
  209. materials dd 6 dup (?)
  210.  
  211.  
  212.  
  213. section '.idata' import data readable
  214.  
  215.     library \
  216.         kernel,'KERNEL32.DLL',\
  217.         user,'USER32.DLL',\
  218.         gdi,'GDI32.DLL'
  219.  
  220.     import  kernel,\
  221.         ExitProcess,'ExitProcess',\
  222.         GetModuleHandle,'GetModuleHandleA',\
  223.         GetLastError,'GetLastError',\
  224.         FormatMessageA,'FormatMessageA',\
  225.         ReadProcessMemory,'ReadProcessMemory',\
  226.         WriteProcessMemory,'WriteProcessMemory',\
  227.         OpenProcess,'OpenProcess',\
  228.         CloseHandle,'CloseHandle'
  229.  
  230.     import  user,\
  231.         MessageBoxA,'MessageBoxA',\
  232.         DialogBoxParam,'DialogBoxParamA',\
  233.         GetDlgItem,'GetDlgItem',\
  234.         EndDialog,'EndDialog',\
  235.         SendMessage,'SendMessageA',\
  236.         FindWindow,'FindWindowA',\
  237.         GetWindowThreadProcessId,'GetWindowThreadProcessId',\
  238.         MessageBox,'MessageBoxA',\
  239.         GetDlgItemInt,'GetDlgItemInt',\
  240.         CheckDlgButton,'CheckDlgButton',\
  241.         IsDlgButtonChecked,'IsDlgButtonChecked',\
  242.         LoadIcon,'LoadIconA',\
  243.         SendDlgItemMessage,'SendDlgItemMessageA',\
  244.         LoadBitmap,'LoadBitmapA',\
  245.         GetDC,'GetDC',\
  246.         SetWindowLong,'SetWindowLongA',\
  247.         CallWindowProc,'CallWindowProcA',\
  248.         LoadCursor,'LoadCursorA',\
  249.         SetCursor,'SetCursor'
  250.  
  251.  
  252.     import  gdi,\
  253.         CreateSolidBrush,'CreateSolidBrush',\
  254.         SetTextColor,'SetTextColor',\
  255.         SetBkMode,'SetBkMode'
  256.  
  257.  
  258. section '.rsrc' resource data readable
  259.  
  260.  directory    RT_ICON,icons,\
  261.           RT_GROUP_ICON,group_icons,\
  262.           RT_DIALOG,dialogs,\
  263.           RT_BITMAP,bitmaps
  264.  
  265.  
  266.   resource dialogs,\
  267.        IDD_MAIN,LANG_ENGLISH+SUBLANG_DEFAULT,PONTIFEXDIALOG
  268.  
  269.   resource icons,\
  270.        1,LANG_NEUTRAL,icon_data
  271.  
  272.   resource group_icons,\
  273.        17,LANG_NEUTRAL,main_icon
  274.  
  275.    resource bitmaps,\
  276.        LOGO_MAIN,LANG_NEUTRAL,LOGO
  277.  
  278.  
  279.  
  280.     dialog PONTIFEXDIALOG,'Pontifex II 1.5 Trainer',0,0,244,176,WS_VISIBLE+DS_CENTER+WS_CAPTION+WS_MINIMIZEBOX+WS_SYSMENU
  281.            dialogitem 'EDIT','100000000',IDE_BUDGET,100,130,50,13,WS_VISIBLE+WS_BORDER+ES_NUMBER
  282.            dialogitem 'EDIT','100000000',IDE_IRON,31,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  283.            dialogitem 'EDIT','100000000',IDE_STEEL,99,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  284.            dialogitem 'EDIT','100000000',IDE_CABLE,165,64,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  285.            dialogitem 'EDIT','100000000',IDE_SUSPCBLE,31,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  286.            dialogitem 'EDIT','100000000',IDE_HVSTEEL,99,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  287.            dialogitem 'EDIT','100000000',IDE_HYDRALC,165,99,50,15,WS_VISIBLE+WS_BORDER+ES_NUMBER
  288.            dialogitem 'STATIC','IRON:',-1,31,55,28,8,WS_VISIBLE
  289.            dialogitem 'STATIC','STEEL:',-1,99,55,28,7,WS_VISIBLE
  290.            dialogitem 'STATIC','CABLE:',-1,166,55,28,7,WS_VISIBLE
  291.            dialogitem 'STATIC','SUSPCBL:',-1,31,90,35,7,WS_VISIBLE
  292.            dialogitem 'STATIC','HVSTEEL:',-1,99,90,35,7,WS_VISIBLE
  293.            dialogitem 'STATIC','HYDRALC:',-1,165,90,35,7,WS_VISIBLE
  294.            dialogitem 'STATIC','BUDGET:',-1,100,120,53,7,WS_VISIBLE
  295.            dialogitem 'BUTTON','Set',IDB_SET,100,152,49,14,WS_VISIBLE
  296.            dialogitem 'BUTTON','Set Budget',IDB_BUDGSET,165,129,50,15,WS_VISIBLE+BS_AUTOCHECKBOX
  297.            dialogitem 'STATIC','',IDB_LOGO,31,11,0,0,WS_VISIBLE+SS_BITMAP
  298.     enddialog
  299.  
  300.     icon main_icon,icon_data,'bridge.ico'
  301.  
  302.     bitmap LOGO,'LOGO.bmp'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement