Перейти к содержанию

Japonamat

Пользователи
  • Постов

    56
  • Зарегистрирован

  • Посещение

Весь контент Japonamat

  1. Да там 2-3 адреса всего, по которым мне интересно пробежаться. Всего-то по где-то 250 тыков по хоткею на адрес. Не успею устать ))). Тем более, после ручного ввода каждого значения - это на два порядка быстрее. За ссылку спасибо, гляну.
  2. Поковырялся в СЕ, похоже, и без скриптов есть такая возможность. Найденный адрес - назначить хоткей - увеличить значение на... и т.д.
  3. Я с кодами не дружу совершенно. Можешь помочь с таким скриптом?
  4. Всем привет. Собственно, хотелка такая. Имеем процесс игры, адрес в памяти, Cheat Engine. Требуется перебрать все возможные значения по адресу в памяти игры. Но даже в пределах 1-го байта это все цифровые значения + буквенные + смешанные = получается далеко за сотню. Менять значения вручную - руки отвалятся. Можно ли с помощью Cheat Engine автоматизировать процесс? Например, с помощью хоткея менять значение, допустим 00, клацнул - 01, еще клац - 02, еще - 03 и т.д. до победного конца. Если в Cheat Engine такое реализовать нельзя, возможно существуют другие приблуды с подобным функционалом❓
  5. ; #########################################################################;; This Is My Trainer Template Created For The Game Trainer Studio (Xeta);; This Is Based On A MASM Example.;; #########################################################################.386.model flat, stdcall ; 32 bit memory modeloption casemap :none ; case sensitiveinclude trainer.inc ; local includes for this fileinclude include\shell32.incincludelib lib\shell32.lib UrlProc PROTO :DWORD, :DWORD, :DWORD, :DWORD; #########################################################################.datahFontUl DWORD ?lpOrgStaticProc DWORD ?lpOrgWebProc DWORD ?hBrush DWORD ?bMouseOver DWORD ?hEmail DWORD ?hWeb DWORD ?hMain DWORD ?szWndClsMain BYTE "SSC_MAIN", 0szWndClsStatic BYTE "STATIC", 0szWebText BYTE "Домашняя страница", 0szWebURL BYTE "http://forum.gamehacklab.ru", 0szShelOpen BYTE "open", 0LabelHandle5500 dd ?LabelHandle5501 dd ?LabelHandle5502 dd ?; ### Constants Below; ### Constants Above; ### Bytes BelowHotKey00000 db 000hdb 001hdb 000hdb 001hHotKey00001 db 001hdb 001hdb 001hdb 000h; ### Bytes Above; ### Button Messages Below; ### Button Messages AboveWindCap db "Game.exe",0szDisplayName db 'Trainer-2',0.codestart:invoke GetModuleHandle, NULLmov hInstance, eaxinvoke GetCommandLinemov CommandLine, eaxinvoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULTinvoke ExitProcess,eax; #########################################################################WinMain proc hInst :DWORD,hPrevInst :DWORD,CmdLine :DWORD,CmdShow :DWORD;====================; Put LOCALs on stack;====================LOCAL wc :WNDCLASSEXLOCAL msg :MSGLOCAL Wwd :DWORDLOCAL Wht :DWORDLOCAL Wtx :DWORDLOCAL Wty :DWORD;==================================================; Fill WNDCLASSEX structure with required variables;==================================================invoke LoadIcon,hInst,500 ; icon IDmov hIcon, eaxszText szClassName,"Trainer_Class"mov wc.cbSize, sizeof WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAW \or CS_BYTEALIGNWINDOWmov wc.lpfnWndProc, offset WndProcmov wc.cbClsExtra, NULLmov wc.cbWndExtra, NULLm2m wc.hInstance, hInstmov wc.hbrBackground, COLOR_BTNFACE+1mov wc.lpszMenuName, NULLmov wc.lpszClassName, offset szClassNamem2m wc.hIcon, hIconinvoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor, eaxm2m wc.hIconSm, hIconinvoke RegisterClassEx, ADDR wc;================================; Centre window at following size;================================mov Wwd, 209 ; Dialog Widthmov Wht, 118 ; Dialog Heightinvoke GetSystemMetrics,SM_CXSCREENinvoke TopXY,Wwd,eaxmov Wtx, eaxinvoke GetSystemMetrics,SM_CYSCREENinvoke TopXY,Wht,eaxmov Wty, eaxinvoke CreateWindowEx,WS_EX_LEFT,ADDR szClassName,ADDR szDisplayName,WS_MINIMIZEBOX or WS_OVERLAPPED or WS_SYSMENU,Wtx,Wty,Wwd,Wht,NULL,NULL,hInst,NULLmov hWnd,eaxinvoke ShowWindow,hWnd,SW_SHOWNORMALinvoke UpdateWindow,hWnd;===================================; Loop until PostQuitMessage is sent;===================================StartLoop:invoke GetMessage,ADDR msg,NULL,0,0cmp eax, 0je ExitLoopinvoke TranslateMessage, ADDR msginvoke DispatchMessage, ADDR msgjmp StartLoopExitLoop:return msg.wParamWinMain endp; #########################################################################WndProc proc hWin :DWORD,uMsg :DWORD,wParam :DWORD,lParam :DWORDLOCAL var :DWORDLOCAL caW :DWORDLOCAL caH :DWORDLOCAL color :DWORDLOCAL hDC :DWORDLOCAL Rct :RECTLOCAL Ps :PAINTSTRUCTLOCAL buffer1[128]:BYTELOCAL buffer2[128]:BYTELOCAL lfnt :LOGFONTLOCAL psd :PAGESETUPDLGLOCAL pd :PRINTDLGLOCAL RectB :RECT.if uMsg == WM_COMMANDMOV EAX, wParam.if wParam == 499.endifmov ecx, hEmailmov edx, hWeb.if ecx == lParam || edx == lParam.if bMouseOvermov eax, Red.elsemov eax, Yellow.endifinvoke SetTextColor, wParam, eaxinvoke SetBkMode, wParam, TRANSPARENTmov eax, hBrush.endifret.elseif uMsg == WM_DRAWITEM.elseif uMsg == WM_CREATEMOV HotKeyMiniToggle, TRUEszText font1,'MS Sans Serif'invoke CreateFont,8,5,0,0,500,0,0,0, \DEFAULT_CHARSET,0,0,0,\DEFAULT_PITCH,ADDR font1mov hFont, eax ;##### Create 2 fonts invoke RtlZeroMemory, addr lfnt, sizeof LOGFONT ;##### Reg font mov lfnt.lfHeight, -11 mov lfnt.lfWeight, FW_NORMAL invoke szCatStr, addr lfnt.lfFaceName, offset font1 ;##### Bold font mov lfnt.lfUnderline, TRUE invoke CreateFontIndirect, addr lfnt mov hFontUl, eax;##### Web Hyperlinkinvoke CreateWindowEx,NULL,offset szWndClsStatic,offset szWebText,WS_CHILD or WS_VISIBLE or SS_NOTIFY,48,60,140, 17,hWin, 0,0, 0mov hWeb, eax;##### URL is dif than text, save URLinvoke SetWindowLong, eax, GWL_USERDATA, offset szWebURL;##### Subclass controlinvoke SetWindowLong, hWeb, GWL_WNDPROC, offset UrlProcmov lpOrgStaticProc, eaxinvoke SendMessage, hWeb, WM_SETFONT, hFont, FALSE;invoke GetSysColorBrush,COLOR_HIGHLIGHT ; COLOR_3DFACE;mov hBrush, eaxInvoke SetTimer, hWin, 1, 100, 0 ; HotKey TimerInvoke SetTimer, hWin, 2, 300, 0 ; EditBox Timer 1Invoke SetTimer, hWin, 3, 300, 0 ; EditBox Timer 2Invoke SetTimer, hWin, 4, 100, 0 ; EditBox Freeze Timer;szText lbl11, "?омашн¤¤ страница";invoke Static,ADDR lbl11,hWin,48,56,116,17,5500;mov LabelHandle5500, eaxszText lbl12, "Trainer for Game"invoke Static,ADDR lbl12,hWin,56,8,92,17,5501mov LabelHandle5501, eaxszText lbl13, "F12 - бесконечные патроны"invoke Static,ADDR lbl13,hWin,24,32,148,17,5502mov LabelHandle5502, eax.elseif uMsg == WM_TIMER.If wParam == 1 ; ### Timer Below ###Invoke GetKeyState, VK_HOMEmov HotBuffer1, eax.if HotBuffer1 > 1Invoke TrainerEngineRead, NULL, Offset WindCap, 001C0F965h, 1MOV Read, EAX.If Read == 001hInvoke TrainerEngine, NULL, Offset WindCap, 001C0F965h, Offset HotKey00000, 4.ElseInvoke TrainerEngine, NULL, Offset WindCap, 001C0F965h, Offset HotKey00001, 4.EndIf.endif.Endif ; ### Timer Above ###.If wParam == 2 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 3 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 4 ; ### EBFreeze Timer Below ###.Endif ; ### EBFreeze Timer Above ### .elseif uMsg==WM_CTLCOLORSTATIC mov ecx, hEmail mov edx, hWeb .if ecx == lParam || edx == lParam .if bMouseOver mov eax, Red .else mov eax, Yellow .endif invoke SetTextColor, wParam, eax invoke SetBkMode, wParam, TRANSPARENT mov eax, hBrush .endif ret.elseif uMsg == WM_HOTKEY.elseif uMsg == WM_PAINTinvoke BeginPaint,hWin,ADDR Psmov hDC, eaxinvoke Paint_Proc,hWin,hDCinvoke EndPaint,hWin,ADDR Psreturn 0.elseif uMsg == WM_DESTROYinvoke PostQuitMessage,NULLreturn 0.endifinvoke DefWindowProc,hWin,uMsg,wParam,lParamretWndProc endp; ########################################################################TopXY proc wDim:DWORD, sDim:DWORDshr sDim, 1 ; divide screen dimension by 2shr wDim, 1 ; divide window dimension by 2mov eax, wDim ; copy window dimension into eaxsub sDim, eax ; sub half win dimension from half screen dimensionreturn sDimTopXY endp; #########################################################################Paint_Proc proc hWin:DWORD, hDC:DWORDLOCAL btn_hi :DWORDLOCAL btn_lo :DWORDLOCAL Rct :RECTinvoke GetSysColor,COLOR_BTNHIGHLIGHTmov btn_hi, eaxinvoke GetSysColor,COLOR_BTNSHADOWmov btn_lo, eaxreturn 0Paint_Proc endp; ########################################################################OnDrawItem proc uses ebx idCtl:DWORD,pdis:DWORD,pcol:DWORD,pbkcol:DWORDLOCAL tbuff[20h]:bytemov ebx,pdisassume ebx:ptr DRAWITEMSTRUCT.if [ebx].CtlType == ODT_BUTTON.if pbkcol == 0.elseinvoke SetBkMode,[ebx].hdc,OPAQUEInvoke SetBkColor,[ebx].hdc,pbkcolInvoke CreateSolidBrush, pbkcolinvoke FillRect,[ebx].hdc,addr [ebx].rcItem,eax.endifinvoke SetTextColor,[ebx].hdc,pcol.if ([ebx].itemState & ODS_SELECTED)invoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,BDR_SUNKEN,BF_RECTinvoke OffsetRect,addr [ebx].rcItem,1,1.elseinvoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,EDGE_RAISED,BF_RECT.endifinvoke GetWindowText,[ebx].hwndItem,addr tbuff,sizeof tbufflea edx,[ebx].rcItemlea ecx,tbuffinvoke DrawText,[ebx].hdc,ecx,eax,edx,DT_CENTER or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP.if [ebx].itemState & ODS_FOCUSinvoke InflateRect,addr [ebx].rcItem,-4,-4invoke DrawFocusRect,[ebx].hdc,addr [ebx].rcItem.endif.endifassume ebx:nothingretOnDrawItem endp; ########################################################################UrlProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAMlocal rect:RECT mov eax,uMsg .if eax == WM_MOUSEMOVE invoke GetClientRect, hWin, addr rect invoke GetCapture ;##### Make sure the mouse is in our control .if eax != hWin mov bMouseOver, TRUE invoke SetCapture, hWin invoke SendMessage, hWin, WM_SETFONT, hFontUl, TRUE .endif mov edx,lParam movzx eax,dx shr edx,16 .if eax > rect.right || edx > rect.bottom ;##### moved out of control mov bMouseOver, FALSE invoke ReleaseCapture invoke SendMessage, hWin, WM_SETFONT, hFont, TRUE .endif .elseif eax == WM_LBUTTONUP mov bMouseOver, FALSE invoke ReleaseCapture invoke SendMessage, hWin, WM_SETFONT, hFont, TRUE ;##### Get URL we stored with the control invoke GetWindowLong, hWin, GWL_USERDATA invoke ShellExecute, hMain, offset szShelOpen, eax, NULL, NULL, SW_SHOWNORMAL .elseif eax==WM_SETCURSOR invoke LoadCursor, NULL, IDC_HAND invoke SetCursor, eax .else invoke CallWindowProc, lpOrgStaticProc, hWin, uMsg, wParam, lParam ret .endif xor eax,eax retUrlProc endpend start;szText lbl11, "?омашн¤¤ страница";invoke Static,ADDR lbl11,hWin,48,56,116,17,5500;mov LabelHandle5500, eax;##### Web Hyperlinkinvoke CreateWindowEx,NULL,offset szWndClsStatic,offset szWebText,WS_CHILD or WS_VISIBLE or SS_NOTIFY,48,60,140, 17,hWin, 0,0, 0
  6. Попробую зайти с другой стороны . Нашел такой пример в сети: .586.model flat, stdcalloption casemap:noneinclude \masm32\include\windows.incinclude \masm32\include\masm32.incinclude \masm32\include\user32.incinclude \masm32\include\kernel32.incinclude \masm32\include\gdi32.incinclude \masm32\include\shell32.incincludelib \masm32\lib\masm32.libincludelib \masm32\lib\user32.libincludelib \masm32\lib\kernel32.libincludelib \masm32\lib\gdi32.libincludelib \masm32\lib\shell32.libUrlProc PROTO :HWND,:UINT,:WPARAM,:LPARAM.data?hInst DWORD ?hFont DWORD ?hFontUl DWORD ?lpOrgStaticProc DWORD ?lpOrgWebProc DWORD ?hBrush DWORD ?bMouseOver DWORD ?msg MSGhEmail DWORD ?hWeb DWORD ?hMain DWORD ?.codestart:jmp @FszWndClsMain BYTE "SSC_MAIN", 0szWndClsStatic BYTE "STATIC", 0szAppName BYTE "Static Subclass Example", 0szEmailText BYTE "Send Gunner Mail", 0szEmailURL BYTE "mailto://gunner@gunnerinc.com", 0szWebText BYTE "Домашняя страница", 0szWebURL BYTE "http://http://forum.gamehacklab.ru", 0szShelOpen BYTE "open", 0szFontName BYTE "Verdana", 0@@:call Startup.while TRUEinvoke GetMessage, addr msg, NULL, 0, 0.break .if !eaxinvoke TranslateMessage, addr msginvoke DispatchMessage, addr msg.endwmov eax, msg.messageinvoke ExitProcess, eaxStartup proc uses ebxLOCAL lfnt:LOGFONTLOCAL wc:WNDCLASSEXinvoke GetModuleHandle, NULLmov hInst, eax;##### Create 2 fontsinvoke RtlZeroMemory, addr lfnt, sizeof LOGFONT;##### Reg fontmov lfnt.lfHeight, -11mov lfnt.lfWeight, FW_NORMALinvoke szCatStr, addr lfnt.lfFaceName, offset szFontNameinvoke CreateFontIndirect, addr lfntmov hFont, eax;##### Bold fontmov lfnt.lfUnderline, TRUEinvoke CreateFontIndirect, addr lfntmov hFontUl, eax;##### Register main window classinvoke RtlZeroMemory, addr wc, sizeof WNDCLASSEXmov wc.cbSize, sizeof WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAWmov wc.lpfnWndProc, offset WndProcMainpush hInstpop wc.hInstancemov wc.hbrBackground, COLOR_HIGHLIGHT + 1; COLOR_3DFACE + 1mov wc.lpszClassName, offset szWndClsMaininvoke LoadIcon, NULL, IDI_EXCLAMATIONmov wc.hIcon, eaxmov wc.hIconSm, eaxinvoke LoadCursor, NULL, IDC_ARROWmov wc.hCursor, eaxinvoke RegisterClassEx, addr wc;##### Coords to center windowinvoke GetSystemMetrics, SM_CXSCREENsub eax, 300shr eax, 1xchg eax, ebxinvoke GetSystemMetrics, SM_CYSCREENsub eax, 123shr eax, 1;##### Create main windowinvoke CreateWindowEx,WS_EX_APPWINDOW or WS_EX_CONTROLPARENT,offset szWndClsMain,offset szAppName,WS_OVERLAPPED or WS_SYSMENU or WS_MINIMIZEBOX or WS_VISIBLE,ebx, eax,300, 123,HWND_DESKTOP, NULL,hInst, NULLmov hMain, eaxretStartup endpWndProcMain proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAMlocal rect:RECTmov eax, uMsg.if eax == WM_CREATE;##### Email Hyperlinkinvoke CreateWindowEx,NULL,offset szWndClsStatic,offset szEmailText,WS_CHILD or WS_VISIBLE or SS_NOTIFY,88, 20,117, 17,hWin, 0,hInst, 0mov hEmail, eax;##### URL is dif than text, save URLinvoke SetWindowLong, eax, GWL_USERDATA, offset szEmailURL;##### Subclass controlinvoke SetWindowLong, hEmail, GWL_WNDPROC, UrlProcmov lpOrgStaticProc, eaxinvoke SendMessage, hEmail, WM_SETFONT, hFont, FALSE;##### Web Hyperlinkinvoke CreateWindowEx,NULL,offset szWndClsStatic,offset szWebText,WS_CHILD or WS_VISIBLE or SS_NOTIFY,76, 60,137, 17,hWin, 0,hInst, 0mov hWeb, eax;##### URL is dif than text, save URLinvoke SetWindowLong, eax, GWL_USERDATA, offset szWebURL;##### Subclass controlinvoke SetWindowLong, hWeb, GWL_WNDPROC, offset UrlProcmov lpOrgStaticProc, eaxinvoke SendMessage, hWeb, WM_SETFONT, hFont, FALSEinvoke GetSysColorBrush,COLOR_HIGHLIGHT ; COLOR_3DFACEmov hBrush, eax.elseif eax==WM_CTLCOLORSTATICmov ecx, hEmailmov edx, hWeb.if ecx == lParam || edx == lParam.if bMouseOvermov eax, Red.elsemov eax, Yellow.endifinvoke SetTextColor, wParam, eaxinvoke SetBkMode, wParam, TRANSPARENTmov eax, hBrush.endifret.elseif eax == WM_CLOSEinvoke DeleteObject, hFontinvoke DeleteObject, hFontUlinvoke DeleteObject, hBrushinvoke DestroyWindow, hWin.elseif eax == WM_DESTROYinvoke PostQuitMessage, NULL.elseinvoke DefWindowProc, hWin, uMsg, wParam, lParamret.endifxor eax, eaxretWndProcMain endpUrlProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAMlocal rect:RECTmov eax,uMsg.if eax == WM_MOUSEMOVEinvoke GetClientRect, hWin, addr rectinvoke GetCapture;##### Make sure the mouse is in our control.if eax != hWinmov bMouseOver, TRUEinvoke SetCapture, hWininvoke SendMessage, hWin, WM_SETFONT, hFontUl, TRUE.endifmov edx,lParammovzx eax,dxshr edx,16.if eax > rect.right || edx > rect.bottom;##### moved out of controlmov bMouseOver, FALSEinvoke ReleaseCaptureinvoke SendMessage, hWin, WM_SETFONT, hFont, TRUE.endif.elseif eax == WM_LBUTTONUPmov bMouseOver, FALSEinvoke ReleaseCaptureinvoke SendMessage, hWin, WM_SETFONT, hFont, TRUE;##### Get URL we stored with the controlinvoke GetWindowLong, hWin, GWL_USERDATAinvoke ShellExecute, hMain, offset szShelOpen, eax, NULL, NULL, SW_SHOWNORMAL.elseif eax==WM_SETCURSORinvoke LoadCursor, NULL, IDC_HANDinvoke SetCursor, eax.elseinvoke CallWindowProc, lpOrgStaticProc, hWin, uMsg, wParam, lParamret.endifxor eax,eaxretUrlProc endpend start
  7. Выглядит все вполне прилично, но готовая ссылка в программе не работает, то есть при клике на ней ничего происходит. Почему? Для меня что masm, что fasm или nasm - темный лес. Просто Game Trainer Studio пишет именно на masm, а мне уже приходиться экспериментировать с тем, что есть. Сам я код не напишу, не умею.
  8. Я пишу не сам, за меня пишет Game Trainer Studio. А дальше я, по возможности, дорабатываю.Задача. Дано: ; #########################################################################;; This Is My Trainer Template Created For The Game Trainer Studio (Xeta);; This Is Based On A MASM Example.;; #########################################################################.386.model flat, stdcall ; 32 bit memory modeloption casemap :none ; case sensitiveinclude trainer.inc ; local includes for this file; #########################################################################.dataLabelHandle5500 dd ?LabelHandle5501 dd ?LabelHandle5502 dd ?; ### Constants Below; ### Constants Above; ### Bytes BelowHotKey00000 db 000hdb 001hdb 000hdb 001hHotKey00001 db 001hdb 001hdb 001hdb 000h; ### Bytes Above; ### Button Messages Below; ### Button Messages AboveWindCap db "Game.exe",0szDisplayName db 'Trainer-2',0.codestart:invoke GetModuleHandle, NULLmov hInstance, eaxinvoke GetCommandLinemov CommandLine, eaxinvoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULTinvoke ExitProcess,eax; #########################################################################WinMain proc hInst :DWORD,hPrevInst :DWORD,CmdLine :DWORD,CmdShow :DWORD;====================; Put LOCALs on stack;====================LOCAL wc :WNDCLASSEXLOCAL msg :MSGLOCAL Wwd :DWORDLOCAL Wht :DWORDLOCAL Wtx :DWORDLOCAL Wty :DWORD;==================================================; Fill WNDCLASSEX structure with required variables;==================================================invoke LoadIcon,hInst,500 ; icon IDmov hIcon, eaxszText szClassName,"Trainer_Class"mov wc.cbSize, sizeof WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAW \or CS_BYTEALIGNWINDOWmov wc.lpfnWndProc, offset WndProcmov wc.cbClsExtra, NULLmov wc.cbWndExtra, NULLm2m wc.hInstance, hInstmov wc.hbrBackground, COLOR_BTNFACE+1mov wc.lpszMenuName, NULLmov wc.lpszClassName, offset szClassNamem2m wc.hIcon, hIconinvoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor, eaxm2m wc.hIconSm, hIconinvoke RegisterClassEx, ADDR wc;================================; Centre window at following size;================================mov Wwd, 209 ; Dialog Widthmov Wht, 118 ; Dialog Heightinvoke GetSystemMetrics,SM_CXSCREENinvoke TopXY,Wwd,eaxmov Wtx, eaxinvoke GetSystemMetrics,SM_CYSCREENinvoke TopXY,Wht,eaxmov Wty, eaxinvoke CreateWindowEx,WS_EX_LEFT,ADDR szClassName,ADDR szDisplayName,WS_MINIMIZEBOX or WS_OVERLAPPED or WS_SYSMENU,Wtx,Wty,Wwd,Wht,NULL,NULL,hInst,NULLmov hWnd,eaxinvoke ShowWindow,hWnd,SW_SHOWNORMALinvoke UpdateWindow,hWnd;===================================; Loop until PostQuitMessage is sent;===================================StartLoop:invoke GetMessage,ADDR msg,NULL,0,0cmp eax, 0je ExitLoopinvoke TranslateMessage, ADDR msginvoke DispatchMessage, ADDR msgjmp StartLoopExitLoop:return msg.wParamWinMain endp; #########################################################################WndProc proc hWin :DWORD,uMsg :DWORD,wParam :DWORD,lParam :DWORDLOCAL var :DWORDLOCAL caW :DWORDLOCAL caH :DWORDLOCAL color :DWORDLOCAL hDC :DWORDLOCAL Rct :RECTLOCAL Ps :PAINTSTRUCTLOCAL buffer1[128]:BYTELOCAL buffer2[128]:BYTELOCAL lfnt :LOGFONTLOCAL psd :PAGESETUPDLGLOCAL pd :PRINTDLGLOCAL RectB :RECT.if uMsg == WM_COMMANDMOV EAX, wParam.if wParam == 499.endif.elseif uMsg == WM_CTLCOLORSTATICJMP @WM_CTLCOLOREDIT.elseif uMsg == WM_CTLCOLOREDIT@WM_CTLCOLOREDIT:.elseif uMsg == WM_DRAWITEM.elseif uMsg == WM_CREATEMOV HotKeyMiniToggle, TRUEszText font1,'MS Sans Serif'invoke CreateFont,8,5,0,0,500,0,0,0, \DEFAULT_CHARSET,0,0,0,\DEFAULT_PITCH,ADDR font1mov hFont, eaxInvoke SetTimer, hWin, 1, 100, 0 ; HotKey TimerInvoke SetTimer, hWin, 2, 300, 0 ; EditBox Timer 1Invoke SetTimer, hWin, 3, 300, 0 ; EditBox Timer 2Invoke SetTimer, hWin, 4, 100, 0 ; EditBox Freeze TimerszText lbl11, "Домашняя страница"invoke Static,ADDR lbl11,hWin,48,56,116,17,5500mov LabelHandle5500, eaxszText lbl12, "Trainer for Game"invoke Static,ADDR lbl12,hWin,56,8,92,17,5501mov LabelHandle5501, eaxszText lbl13, "F12 - бесконечные патроны"invoke Static,ADDR lbl13,hWin,24,32,148,17,5502mov LabelHandle5502, eax.elseif uMsg == WM_TIMER.If wParam == 1 ; ### Timer Below ###Invoke GetKeyState, VK_HOMEmov HotBuffer1, eax.if HotBuffer1 > 1Invoke TrainerEngineRead, NULL, Offset WindCap, 001C0F965h, 1MOV Read, EAX.If Read == 001hInvoke TrainerEngine, NULL, Offset WindCap, 001C0F965h, Offset HotKey00000, 4.ElseInvoke TrainerEngine, NULL, Offset WindCap, 001C0F965h, Offset HotKey00001, 4.EndIf.endif.Endif ; ### Timer Above ###.If wParam == 2 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 3 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 4 ; ### EBFreeze Timer Below ###.Endif ; ### EBFreeze Timer Above ###.elseif uMsg == WM_HOTKEY.elseif uMsg == WM_PAINTinvoke BeginPaint,hWin,ADDR Psmov hDC, eaxinvoke Paint_Proc,hWin,hDCinvoke EndPaint,hWin,ADDR Psreturn 0.elseif uMsg == WM_DESTROYinvoke PostQuitMessage,NULLreturn 0.endifinvoke DefWindowProc,hWin,uMsg,wParam,lParamretWndProc endp; ########################################################################TopXY proc wDim:DWORD, sDim:DWORDshr sDim, 1 ; divide screen dimension by 2shr wDim, 1 ; divide window dimension by 2mov eax, wDim ; copy window dimension into eaxsub sDim, eax ; sub half win dimension from half screen dimensionreturn sDimTopXY endp; #########################################################################Paint_Proc proc hWin:DWORD, hDC:DWORDLOCAL btn_hi :DWORDLOCAL btn_lo :DWORDLOCAL Rct :RECTinvoke GetSysColor,COLOR_BTNHIGHLIGHTmov btn_hi, eaxinvoke GetSysColor,COLOR_BTNSHADOWmov btn_lo, eaxreturn 0Paint_Proc endp; ########################################################################OnDrawItem proc uses ebx idCtl:DWORD,pdis:DWORD,pcol:DWORD,pbkcol:DWORDLOCAL tbuff[20h]:bytemov ebx,pdisassume ebx:ptr DRAWITEMSTRUCT.if [ebx].CtlType == ODT_BUTTON.if pbkcol == 0.elseinvoke SetBkMode,[ebx].hdc,OPAQUEInvoke SetBkColor,[ebx].hdc,pbkcolInvoke CreateSolidBrush, pbkcolinvoke FillRect,[ebx].hdc,addr [ebx].rcItem,eax.endifinvoke SetTextColor,[ebx].hdc,pcol.if ([ebx].itemState & ODS_SELECTED)invoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,BDR_SUNKEN,BF_RECTinvoke OffsetRect,addr [ebx].rcItem,1,1.elseinvoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,EDGE_RAISED,BF_RECT.endifinvoke GetWindowText,[ebx].hwndItem,addr tbuff,sizeof tbufflea edx,[ebx].rcItemlea ecx,tbuffinvoke DrawText,[ebx].hdc,ecx,eax,edx,DT_CENTER or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP.if [ebx].itemState & ODS_FOCUSinvoke InflateRect,addr [ebx].rcItem,-4,-4invoke DrawFocusRect,[ebx].hdc,addr [ebx].rcItem.endif.endifassume ebx:nothingretOnDrawItem endp; ########################################################################end start
  9. С моими знаниями мне это ни о чем не говорит . Хорошо бы пример кода, а там я его уже доведу до ума на практике.
  10. Всем привет. Ребят, помогите с куском кода, плиз! Сам трейнер делаю в Game Trainer Studio, но там возможностей не хватает или я о них не знаю, приходиться дорабатывать код вручную, но тут я плаваю. Собственно суть в заголовке. Нужно в окне трейнера вставить ссылку на свой сайт, в html это выглядело бы так: [url="http://mojsite.ru"]Домашняя страница[/URL]Тут, как я понимаю, трейнер должен запустить ИЕ с заданными параметрами, то есть с конкретным адресом. Да, и в какую секцию надо будет вставлять этот код?
  11. Ага, ясно, спасибо, буду знать. Они же, вроде, все языки более-менее похожи, вот я и ждал, что будут закрывающие теги, типа как в html. А их нет. Замуровали, демоны
  12. "Ура, заработало!!!" (с) - кот Матроскин. Все как доктор прописал. Огромное спасибо за помощь, дружище! Последний вопрос. Вот эти строки KeySwitch01 db 0 KeyStatus01 db 0 критично куда прописывать с секции дата? Где она, собственно, кончается, эта секция? Каких-то закрывающих тегов не нашел. Извиняюсь за, возможно, дурацкий вопрос, но я в этом деле дуб
  13. Без ошибок. Но когда вставил в секцию .data KeySwitch01 db 0 KeyStatus01 db 0 тогда: Не туда вставил, похоже. А, он же мне строки с ошибками указывает, только сейчас дошло А пример работает именно так, как надо. Может, лучше просто мой пример в шапке исправить так, как надо. Более наглядно будет.
  14. Может, в этом причина? Но тут я не понял что и где влепить.
  15. Не работает. Заменил у себя Invoke GetKeyState, VK_HOMEmov HotBuffer1, eax.if HotBuffer1 > 1Invoke TrainerEngineRead, NULL, Offset WindCap, 00215AF51h, 1MOV Read, EAX.If Read == 001hInvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00000, 4.ElseInvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00001, 4.EndIf.endifна твое invoke GetAsyncKeyState,VK_HOMEshr eax,1.if [KeySwitch01] <> ahmov [KeySwitch01],ah.if ah.if [KeyStatus01] = almov [KeyStatus01],ahinvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00000, 4.elsemov [KeyStatus01],alinvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00001, 4.endif.endif.endifБез изменений.
  16. Ок, жду. Буду следить. Сейчас зашел, почитал, понравилось. Доступно объяснять тоже уметь надо.
  17. Ребят, вы делайте скидку на то, что я дуб в программировании почти полный. Ну так, совсем по мелочи вершков кое-каких нахватался. Разжевывайте, пожалуйста, куда пихать эти коды. А так получается будто мне предлагают прочитать какой-то текст, а я только две буквы из алфавита знаю
  18. Ага, и куда этот код вставлять? И вместо какого? А то я спец тот еще . За меня почти все всякие билдеры делают.
  19. Так я говорил, что игрался уже с этим значением, увеличивал до 500 и 1000. При его увеличении для срабатывания требуется дольше жать хоткей, это тоже неудобно. Мне нужно, чтобы на одно нажатие было ОДНО срабатывание. НЕЗАВИСИМО от длительности нажатия.
  20. Не-не, нужно именно что один хоткей на вкл-выкл. Да все, вроде, работает и при свернутом. Нет, в этом смысле проблем нет.
  21. Всем привет. Народ, помогите настроить работу хоткея. плиз. Суть. Собрал трейнер на Game Trainer Studio. Все работает как надо, но есть одно неудобство - срабатывание хоткея не очень удобное. То есть, если чуть передержать его, то функция успеет включиться и опять выключиться. То есть время нажатия приходиться постоянно контроллировать, а это напрягает. Короче, хочется сделать так - одно нажатие на хоткей - одно срабатывание. Но как это сделать - не знаю. Помогите, знающие! Вот пример трейнера. Нашел строку, отвечающую за это переключение - 191-я строка: Invoke SetTimer, hWin, 1, 100, 0 ; HotKey Timer Вот с этой сотней миллисекунд игрался, пытался увеличивать, но тогда просто дольше нужно клавишу держать для срабатывания. ; #########################################################################;; This Is My Trainer Template Created For The Game Trainer Studio (Xeta);; This Is Based On A MASM Example.;; #########################################################################.386.model flat, stdcall ; 32 bit memory modeloption casemap :none ; case sensitiveinclude trainer.inc ; local includes for this file; #########################################################################.data; ### Constants Below; ### Constants Above; ### Bytes BelowHotKey00000 db 000hdb 010hdb 000hdb 000hHotKey00001 db 001hdb 001hdb 001hdb 001h; ### Bytes Above; ### Button Messages Below; ### Button Messages AboveWindCap db "Game.exe",0szDisplayName db 'Trainer for Game',0.codestart:invoke GetModuleHandle, NULLmov hInstance, eaxinvoke GetCommandLinemov CommandLine, eaxinvoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULTinvoke ExitProcess,eax; #########################################################################WinMain proc hInst :DWORD,hPrevInst :DWORD,CmdLine :DWORD,CmdShow :DWORD;====================; Put LOCALs on stack;====================LOCAL wc :WNDCLASSEXLOCAL msg :MSGLOCAL Wwd :DWORDLOCAL Wht :DWORDLOCAL Wtx :DWORDLOCAL Wty :DWORD;==================================================; Fill WNDCLASSEX structure with required variables;==================================================invoke LoadIcon,hInst,500 ; icon IDmov hIcon, eaxszText szClassName,"Trainer_Class"mov wc.cbSize, sizeof WNDCLASSEXmov wc.style, CS_HREDRAW or CS_VREDRAW \or CS_BYTEALIGNWINDOWmov wc.lpfnWndProc, offset WndProcmov wc.cbClsExtra, NULLmov wc.cbWndExtra, NULLm2m wc.hInstance, hInstmov wc.hbrBackground, COLOR_BTNFACE+1mov wc.lpszMenuName, NULLmov wc.lpszClassName, offset szClassNamem2m wc.hIcon, hIconinvoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor, eaxm2m wc.hIconSm, hIconinvoke RegisterClassEx, ADDR wc;================================; Centre window at following size;================================mov Wwd, 265 ; Dialog Widthmov Wht, 145 ; Dialog Heightinvoke GetSystemMetrics,SM_CXSCREENinvoke TopXY,Wwd,eaxmov Wtx, eaxinvoke GetSystemMetrics,SM_CYSCREENinvoke TopXY,Wht,eaxmov Wty, eaxinvoke CreateWindowEx,WS_EX_LEFT,ADDR szClassName,ADDR szDisplayName,WS_MINIMIZEBOX or WS_OVERLAPPED or WS_SYSMENU,Wtx,Wty,Wwd,Wht,NULL,NULL,hInst,NULLmov hWnd,eaxinvoke ShowWindow,hWnd,SW_SHOWNORMALinvoke UpdateWindow,hWnd;===================================; Loop until PostQuitMessage is sent;===================================StartLoop:invoke GetMessage,ADDR msg,NULL,0,0cmp eax, 0je ExitLoopinvoke TranslateMessage, ADDR msginvoke DispatchMessage, ADDR msgjmp StartLoopExitLoop:return msg.wParamWinMain endp; #########################################################################WndProc proc hWin :DWORD,uMsg :DWORD,wParam :DWORD,lParam :DWORDLOCAL var :DWORDLOCAL caW :DWORDLOCAL caH :DWORDLOCAL color :DWORDLOCAL hDC :DWORDLOCAL Rct :RECTLOCAL Ps :PAINTSTRUCTLOCAL buffer1[128]:BYTELOCAL buffer2[128]:BYTELOCAL lfnt :LOGFONTLOCAL psd :PAGESETUPDLGLOCAL pd :PRINTDLGLOCAL RectB :RECT.if uMsg == WM_COMMANDMOV EAX, wParam.if wParam == 499.endif.elseif uMsg == WM_CTLCOLORSTATICJMP @WM_CTLCOLOREDIT.elseif uMsg == WM_CTLCOLOREDIT@WM_CTLCOLOREDIT:.elseif uMsg == WM_DRAWITEM.elseif uMsg == WM_CREATEMOV HotKeyMiniToggle, TRUEszText font1,'MS Sans Serif'invoke CreateFont,8,5,0,0,500,0,0,0, \DEFAULT_CHARSET,0,0,0,\DEFAULT_PITCH,ADDR font1mov hFont, eaxInvoke SetTimer, hWin, 1, 100, 0 ; HotKey TimerInvoke SetTimer, hWin, 2, 300, 0 ; EditBox Timer 1Invoke SetTimer, hWin, 3, 300, 0 ; EditBox Timer 2Invoke SetTimer, hWin, 4, 100, 0 ; EditBox Freeze Timer.elseif uMsg == WM_TIMER.If wParam == 1 ; ### Timer Below ###Invoke GetKeyState, VK_HOMEmov HotBuffer1, eax.if HotBuffer1 > 1Invoke TrainerEngineRead, NULL, Offset WindCap, 00215AF51h, 1MOV Read, EAX.If Read == 001hInvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00000, 4.ElseInvoke TrainerEngine, NULL, Offset WindCap, 00215AF51h, Offset HotKey00001, 4.EndIf.endif.Endif ; ### Timer Above ###.If wParam == 2 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 3 ; ### Timer Below ###.Endif ; ### Timer Above ###.If wParam == 4 ; ### EBFreeze Timer Below ###.Endif ; ### EBFreeze Timer Above ###.elseif uMsg == WM_HOTKEY.elseif uMsg == WM_PAINTinvoke BeginPaint,hWin,ADDR Psmov hDC, eaxinvoke Paint_Proc,hWin,hDCinvoke EndPaint,hWin,ADDR Psreturn 0.elseif uMsg == WM_DESTROYinvoke PostQuitMessage,NULLreturn 0.endifinvoke DefWindowProc,hWin,uMsg,wParam,lParamretWndProc endp; ########################################################################TopXY proc wDim:DWORD, sDim:DWORDshr sDim, 1 ; divide screen dimension by 2shr wDim, 1 ; divide window dimension by 2mov eax, wDim ; copy window dimension into eaxsub sDim, eax ; sub half win dimension from half screen dimensionreturn sDimTopXY endp; #########################################################################Paint_Proc proc hWin:DWORD, hDC:DWORDLOCAL btn_hi :DWORDLOCAL btn_lo :DWORDLOCAL Rct :RECTinvoke GetSysColor,COLOR_BTNHIGHLIGHTmov btn_hi, eaxinvoke GetSysColor,COLOR_BTNSHADOWmov btn_lo, eaxreturn 0Paint_Proc endp; ########################################################################OnDrawItem proc uses ebx idCtl:DWORD,pdis:DWORD,pcol:DWORD,pbkcol:DWORDLOCAL tbuff[20h]:bytemov ebx,pdisassume ebx:ptr DRAWITEMSTRUCT.if [ebx].CtlType == ODT_BUTTON.if pbkcol == 0.elseinvoke SetBkMode,[ebx].hdc,OPAQUEInvoke SetBkColor,[ebx].hdc,pbkcolInvoke CreateSolidBrush, pbkcolinvoke FillRect,[ebx].hdc,addr [ebx].rcItem,eax.endifinvoke SetTextColor,[ebx].hdc,pcol.if ([ebx].itemState & ODS_SELECTED)invoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,BDR_SUNKEN,BF_RECTinvoke OffsetRect,addr [ebx].rcItem,1,1.elseinvoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,EDGE_RAISED,BF_RECT.endifinvoke GetWindowText,[ebx].hwndItem,addr tbuff,sizeof tbufflea edx,[ebx].rcItemlea ecx,tbuffinvoke DrawText,[ebx].hdc,ecx,eax,edx,DT_CENTER or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP.if [ebx].itemState & ODS_FOCUSinvoke InflateRect,addr [ebx].rcItem,-4,-4invoke DrawFocusRect,[ebx].hdc,addr [ebx].rcItem.endif.endifassume ebx:nothingretOnDrawItem endp; ########################################################################end start
  22. Ок, спасибо. Покопаюсь еще. По моему, еще накосячил с этим адресом - 0EB6990C. Похоже, он плавающий, гад. Может, потому код и не пашет, что условие не срабатывает. А вчера этот адрес был вполне себе актуальный. Ага, нашел статичный адрес и все заработало. Также увидел, что можно упростить код, то есть два условия ни к чему. Пока по крайней мере. Вот так сделал: If 0241DA7F 80Poke 02134B21 00 00 00 00ElsePoke 02134B21 00 01 00 00EndIfНо теперь возникла другая сложность. Код работает по хоткею (шифт), но дело в том, что это условие - "0241DA7F 80" - это снайперский режим, может возникнуть по двум причинам - по шифту и колесиком мыши. А код срабатывает только по шифту, по колесу не пашет. Надо, видимо, отслеживать в памяти этот адрес 0241DA7F и при изменении значения с 00 на 80 запускать код. То есть, это, судя по всему ReadMemory. Вот так попробовал: ReadMemory BYTE 0241DA7FIf 0241DA7F 80Poke 02134B21 00 00 00 00ElsePoke 02134B21 00 01 00 00EndIfНо не работает, гад. Где накосячил?
  23. Да, так генератор схавал, но код тогда не работает, к сожалению И попробовал на всякий случай "Else if" - тоже не пашет.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.