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

Рекомендуемые сообщения

Доброго времени суток ребят у меня возникла проблема мне нужно изменить значение по адресу который находится в модуле game.dll

Trainer  не меняет значение по адресу в этом модуле помогите решить проблему если вам не трудно

Изменено пользователем Devil9313
Ссылка на комментарий
Поделиться на другие сайты

Название и версию игры в студию, а так же код трейнера, которым меняешь значение, или кусок кода трейнера, если он твой. А если трейнер чужой - рекомендую обратиться к автору трейнера, так как мы заранее не можем знать, как у него написан трейнер.

Ссылка на комментарий
Поделиться на другие сайты

Вот кусочек кода трейнера 

 if CheckBox1.Checked then    DebugPrivilege;    GameID := ProcessID('PointBlank.exe');  if GameID = 0 then     Label1.Caption := 'ID процесса не найден, запустите игру!' else Label1.Caption := 'ID процесса:' + #32 + IntTostr(GameID);
procedure TTrainer.CheckBox20Click(Sender: TObject);const A: Array [1..2] of Byte = ($0F, $84); B: Array [1..2] of Byte = ($0F, $85);begin if CheckBox20.Checked then WriteBytes(ESP_Name,A) else WriteBytes(ESP_Name,;end;

Название и версию игры в студию, а так же код трейнера, которым меняешь значение, или кусок кода трейнера, если он твой. А если трейнер чужой - рекомендую обратиться к автору трейнера, так как мы заранее не можем знать, как у него написан трейнер.

А причем тут версия и название игры речь идет не об игре а о том как работать с модулями игры то как изменять значение в памяти exe я знаю проблема в том что я не знаю как работать с модулем который подгружает играть нужный мне адрес находится не в exe игры а в её модуле game.dll

Ссылка на комментарий
Поделиться на другие сайты

AOBScan (сканер сигнатур) пишешь, и он найдет адрес в любом месте адресного пространства игры (модули туда же подгружаются). А далее работаешь с этим адресом как тебе нужно.

Ссылка на комментарий
Поделиться на другие сайты

Что передаешь в ESP_Name? Как работает процедура WriteBytes

Расскажи подробней, как пытаешься писать в память.

procedure WriteBytes(Address: Integer; WriteValue: array of Byte);var pHandle: LongInt; NumWritten: DWORD_PTR;begin pHandle := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,False,GameID); VirtualProtectEx(pHandle,Ptr(Address),SizeOf(WriteValue),PAGE_EXECUTE_READWRITE,old_Protect_ON); WriteProcessMemory(pHandle,Ptr(Address),@WriteValue,SizeOf(WriteValue),NumWritten); VirtualProtectEx(pHandle,Ptr(Address),SizeOf(WriteValue),old_Protect_OFF,old_Protect_ON); CloseHandle(pHandle);end;

Кто поможет реализовать в Delphi поиск адреса по сигнатуре мой Skype: gm..4game

Ссылка на комментарий
Поделиться на другие сайты

По поводу поиска сигнатуры в игре :

 

kis3J.png

 

http://zhyk.ru/forum/showthread.php?t=887570

 

По поводу если тебе нужно записать инструкцию - байты в игру ну не в самой ехе , а в длл игры есть функция

Думаю как использовать догадаешся сам ?*

function G_Base(ProcessID: Cardinal; MName: String): Pointer; var   Modules         : Array of HMODULE;   cbNeeded, i     : Cardinal;   ModuleInfo      : TModuleInfo;   ModuleName      : Array[0..MAX_PATH] of Char;   PHandle         : THandle; begin   Result := nil;   SetLength(Modules, 1024);   PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, False, ProcessID);   if (PHandle <> 0) then   begin     EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE), cbNeeded);     SetLength(Modules, cbNeeded div SizeOf(HMODULE));     for i := 0 to Length(Modules) - 1 do     begin       GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName));       if AnsiCompareText(MName, ModuleName) = 0 then       begin         GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf(ModuleInfo)); //Get the information of module         Result := ModuleInfo.lpBaseOfDll;         CloseHandle(PHandle);         Exit;       end;     end;   end; end;
Ссылка на комментарий
Поделиться на другие сайты

У меня несколько ошибок

1. TModuleInfo;               // Ошибка

2. EnumProcessModules   // Ошибка

3. GetModuleBaseName   // Ошибка

4. if AnsiCompareText      // Ошибка

5. GetModuleInformation  // Ошибка

6. lpBaseOfDll                 // Ошибка


Delphi XE7

Ссылка на комментарий
Поделиться на другие сайты

tlhelp32 для этой функции не нужен подключил библиотеку psapi

ошибка осталась только тут 

if AnsiCompareText(Name, ModuleName) = 0 then

Vlad2, ESP_Name константа с нужным мне адресом 


const

ESP_Name = $6749AF;  // ESP подсветка ников 


подключил библиотеку SysUtils шибок нет

Изменено пользователем Devil9313
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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