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

ArxLex

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

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

  • Посещение

  • Победитель дней

    7

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

  1. Понятно. Таких вопросов больше не будет, надеюсь
  2. А есть такой инструмент, которым можно было взломать онлайн игры (Счастивый фермер, Парковка и др.)?
  3. Я хотел бы узнать подробно как в Дельфях написать в прогу антиотладочные хитрости. Например, если у вас во время запуска трейнера уже запущены отладочные проги(такие как: Cheatengine, OllyDbg, MHS и другие подобные отладчики), то как сделать так чтобы трейнер ругался и молча закрывал их или вообще не запускался?
  4. Лично мне не удалось скачать трейнер от автора aliast, так как ссылка не рабочая (http://www.filehoster.ru)
  5. В игре Grand Theft Auto IV - Episodes From Liberty City как найти рабочий адрес для денег? Я нашел один зеленый адрес в 4 байтах, меняю, захожу в игру и никакого изменения нет. Короче адрес который я нашел что-то в роде Read-Only=( Может кто ломал уже, помогите или посоветуйте=) Спасибо!
  6. Не важно как ты искал, но я таким образом вышел на адреса жизни и брони
  7. чтобы найти значение здоровья ищи float. само значение жизней и брони и тд смотри в профилях игрока.
  8. Вот отсюда я обычно качаю трекерную музыку http://www.chiptune.com/
  9. Принципы работы с OllyDbgКак запустить сеанс отладки
  10. Нет ничего сложного, просто в проект подключаете модуль uFMOD и всё
  11. Незнаю, но при выборе сохранить или уничтожить базу Коллекционеров все равно кто-то умирал (при разных обстоятельствах...). Там в мульте даже есть два гроба... А насчет опыта и поинтов, советую скачать Save Editor для Mass Effect 2 который валяется на GameCopyWorld
  12. Вот уже дождались выхода версии 5.6, теперь осталось только подождать мод от Мастера
  13. Если честно игра интересная, прошел её за 28 часов. Насчет умений как-то я не особо обратил внимание. Главное много бабла, очки команды и ресурсы))) Как я понял без разницы какая концовка игры, всё равно кто-то из команды умирает...
  14. Вот ещё один пример трейнера для игры WarRock: DLL: functions.cpp #include "stdafx.h" #include "functions.h" DWORD dfgiddfg; HANDLE dfgdsgdsg; void OpenMemory() { HWND frgss = FindWindow(0, "WarRock"); GetWindowThreadProcessId(frgss, &dfgiddfg); dfgdsgdsg = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_VM_OPERATION|PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION, FALSE, dfgiddfg); } void Stamina() { int t=1120403456; OpenMemory(); WriteProcessMemory(dfgdsgdsg,(LPVOID*)(DWORD)0x8B9B04, &t , 4,NULL); } void Teleport(float x, float y, float z) { long raddyx, raddyy, raddyz; // Real address of coordinates long readxyz; // Read base address ReadProcessMemory(dfgdsgdsg,(LPVOID*)(DWORD)0x1279280, &readxyz, 4,NULL); raddyx = readxyz + 0x174; raddyy = readxyz + 0x17C; raddyz = readxyz + 0x178; WriteProcessMemory(dfgdsgdsg,(LPVOID*)(DWORD)raddyx, &x , 4,NULL); WriteProcessMemory(dfgdsgdsg,(LPVOID*)(DWORD)raddyy, &y , 4,NULL); WriteProcessMemory(dfgdsgdsg,(LPVOID*)(DWORD)raddyz, &z , 4,NULL); } functions.h #pragma once void Stamina(); void Teleport(float x, float y, float z); LH1337DLL.def LIBRARY LH1337DLL EXPORTS Stamina Teleport EXE: LH1337EXEDlg.cpp HINSTANCE hDLL = NULL; // 1) Teleport typedef void (*STAMINA)(); STAMINA Stamina; // 2) Teleport typedef void (*TELEPORT)(float x, float y, float z); TELEPORT Teleport; OnInitDialog() hDLL = AfxLoadLibrary("LH1337DLL"); if( hDLL == NULL ) { MessageBox("Could not load LH1337DLL.dll"); } else { Stamina = (STAMINA)GetProcAddress(hDLL, "Stamina"); Teleport = (TELEPORT)GetProcAddress(hDLL, "Teleport"); } BN_CLICKED Stamina Stamina(); BN_CLICKED Teleport UpdateData(1); Teleport(m_cox, m_coy, m_coz); Источник: mpgh.net
  15. В этой теме будут выкладываться примеры трейнеров написанные на языке Ассемблер. Тема будет периодически обновляться))) Необходимые инструменты: - MASM32 v10 - WinAsm v5.1.5 + WinAsm v5.1.7 патч Установка и настройка: 1. Первым делом вам надо установить MASM32, который вы можете скачать по ссылке ниже. - Скачайте и запустите файл install.exe - Выберите диск где будет установлен MASM32 - Далее нажмите на кнопку Start -> Ok -> Yes -> Ok -> Extract - > Ok 2. Установка WinAsm и патча: - Распакуйте папку WinAsm из архива (WinAsm515Full) в папку где вы установили MASM32 - Для установки патча просто распакуйте файлы из архива (WinAsm_V5.1.7.0) в папку WinAsm 3. Настройка WinAsm: - Запустите файл WinAsm.exe из папки WinAsm - Затем Tools -> Options -> Files&Paths -> Projects Path - Тут вы увидете x:masm32WinAsm - Просто в конце добавьте Projects (x:masm32WinAsmProjects) Удаление: - Просто удалите папку MASM32 Сами инструменты и исходники вы можете взять отсюда: http://letitbit.net/download/8716.fe8ed ... es.7z.html
  16. Пример простого трейнера на С++: Инструкция: - Скопируйте данный код в блокнот и сохраните как trainer.cpp или как вам угодно - Для компиляции вам понадобится компилятор для C++, такие как MS Visual C++ 6 или выше #include <windows.h> #include <conio.h> #include <dos.h> #include <tlhelp32.h> #include <stdio.h> int stamina; // will store the stamina value bool dostamina = false; // determines if user activated stamina freezing LPVOID stamina_addr = (void*) 0x007F1110; // memory address of the stamina value in the WarRock process void screen() // output { system("cls"); // clear the screen printf("Hello World! This is my first WarRock trainer! nn"); if(dostamina) printf("[1] - freeze stamina [ENABLED]n"); // if user enabled stamina freeze, let him know! else printf("[1] - freeze stamina [disabled]n"); // same if it's disabled } int main(int argc, char* argv[]) { HANDLE hProcessSnap; // will store a snapshot of all processes HANDLE hProcess = NULL; // we will use this one for the WarRock process PROCESSENTRY32 pe32; // stores basic info of a process, using this one to read the ProcessID from hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); // make process snapshot pe32.dwSize = sizeof( PROCESSENTRY32 ); // correct size Process32First(hProcessSnap, &pe32); // read info about the first process into pe32 do // loop to find the WarRock process { if(strcmp(pe32.szExeFile, "WarRock.exe") == 0) // if WarRock was found { hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID); // open it, assigning to the hProcess handle break; // break the loop } } while(Process32Next(hProcessSnap, &pe32)); // loop continued until Process32Next deliver NULL or its interrupted with the "break" above CloseHandle( hProcessSnap ); // close the handle (just fuckin do it) if(hProcess == NULL) // self explanatory tbh { printf("WarRock not foundnn"); getch(); // wait for a key press. otherwise the app will just close so fast when the process is not found, you wont know wtf happened. } else { screen(); // print the display char key = ' '; // make a key variable to store pressed keys while(key != VK_ESCAPE) // loop until user presses Escape { if(kbhit()) // if a key was pressed { key = getch(); // it is saved into "key" switch(key) // here the commands are handled depending on the key that was pressed { // case '1': ... break; case '2': ... break; and so on case '1': dostamina = !dostamina; // flip the dostamina value true<->false to enable/disable it ReadProcessMemory(hProcess, stamina_addr, &stamina, 4, NULL); // read the stamina value from the memory into the "stamina" variable break; } screen(); // print the display after each key press } if(dostamina) // if stamina freeze is activated WriteProcessMemory(hProcess, stamina_addr, &stamina, 4, NULL); // write the stamina value that was saved before with the key press into memory } CloseHandle(hProcess); // close the handle } return 0; // THE END } Источник: d3scene.com
  17. Простой пример трейнера с использованием ToolHelp 32 API: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, tlhelp32, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Timer1: TTimer; Label1: TLabel; Label18: TLabel; Label2: TLabel; procedure Timer1Timer(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; PidHandle: integer; PidID : integer; byteArr : Array of byte; Const ProgramName = 'BF2.exe'; implementation {$R *.dfm} // tlhelp32 function to Loop through processes and locate your target function GetProcessID(Const ExeFileName: string; var ProcessId: integer): boolean; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin result := false; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := Sizeof(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while integer(ContinueLoop) <> 0 do begin if (StrIComp(PChar(ExtractFileName(FProcessEntry32.szExeFile)), PChar(ExeFileName)) = 0) or (StrIComp(FProcessEntry32.szExeFile, PChar(ExeFileName)) = 0) then begin ProcessId:= FProcessEntry32.th32ProcessID; result := true; break; end; ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; //Write 1 byte to memory procedure poke1(Address: Cardinal; Data: Byte); var Written: Cardinal; begin WriteProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Written); end; //Write 2 bytes to memory procedure poke2(Address: Cardinal; Data: Word); var Written: Cardinal; begin WriteProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Written); end; //Write 4 bytes to memory procedure poke4(Address: Cardinal; Data: Cardinal); var Written: Cardinal; begin WriteProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Written); end; //Write an Array of bytes to memory procedure pokeX(Address: Cardinal; Data: Array of Byte); var Written: Cardinal; begin WriteProcessMemory(PidHandle, Pointer(Address), @Data, SizeOf(Data), Written); end; //Example Function Call 1 procedure TForm1.Button1Click(Sender: TObject); begin if GetProcessID(ProgramName, PidId) then begin PidHandle := OpenProcess(PROCESS_ALL_ACCESS,False,PidId); poke1($401000, $90); poke2($401001, $9090); poke4($401003, $90909090); closehandle(PidHandle); end else begin MessageDlg('Start BF2 First.', mtwarning, [mbOK],0); end; end; //Example Function Call 2 procedure TForm1.Button2Click(Sender: TObject); begin if GetProcessID(ProgramName, PidId) then begin PidHandle := OpenProcess(PROCESS_ALL_ACCESS,False,PidId); SetLength(byteArr, 16); byteArr[0] := $8B; byteArr[1] := $71; byteArr[2] := $10; byteArr[3] := $0F; byteArr[4] := $85; byteArr[5] := $6A; byteArr[6] := $9D; byteArr[7] := $FD; byteArr[8] := $FF; byteArr[9] := $83; byteArr[10] := $7E; byteArr[11] := $0C; byteArr[12] := $00; byteArr[13] := $0F; byteArr[14] := $85; byteArr[15] := $60; pokeX($401007, byteArr); SetLength(byteArr, 15); closehandle(PidHandle); end else begin MessageDlg('Start BF2 First.', mtwarning, [mbOK],0); end; end; // Timer to Detect Hotkey and Execute your Buttons Code procedure TForm1.Timer1Timer(Sender: TObject); begin if (GetAsyncKeyState(VK_F1) <> 0) then Button1.Click; end; end. Источник: mpcforum.com
  18. Короче почистил я её и вот что получилось: Program Api; uses WindowTrainer; begin WindowCreateTrainer; end. unit WindowTrainer; interface uses windows, messages; procedure WindowCreateTrainer; var window:TWndClassEx; Mwindow: HWND; Mmsg: MSG; implementation function WindowProc (wnd: HWND; msg: integer; wp: WPARAM; lp: LPARAM):LRESULT;STDCALL; begin Result := 0; case msg of WM_CLOSE : PostMessage(wnd, WM_QUIT, 0, 0); else Result := DefWindowProc(wnd, msg, wp, lp); end; end; procedure WindowCreateTrainer; begin window.cbSize := sizeof (window); window.style := CS_HREDRAW or CS_VREDRAW; window.lpfnWndProc := @WindowProc; window.cbClsExtra := 0; window.cbWndExtra := 0; window.hInstance := HInstance; window.hIcon := LoadIcon (0,IDI_APPLICATION); window.hCursor := LoadCursor (0,IDC_ARROW); window.hbrBackground:=Color_BtnFace+12; window.lpszMenuName := nil; window.lpszClassName := 'frmTrainer'; RegisterClassEx (window); Mwindow := CreateWindowEx(0,'frmTrainer', 'Demo Window', WS_OVERLAPPEDWINDOW - WS_MAXIMIZEBOX+ WS_EX_TOOLWINDOW- WS_THICKFRAME,100,100,300,300,0,0,Hinstance,nil); SHOWWINDOW (Mwindow,SW_Show); while GetMessage (Mmsg,0,0,0) do begin TranslateMessage (Mmsg); DispatchMessage (Mmsg); end; end; end. П.С. С модулем ...uses Forms... приложение с размером 16 кб никогда не получится
  19. Оочень интересно! Продолжай в том же духе
×
×
  • Создать...

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

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