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

VoLT

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

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

  • Посещение

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

    1

VoLT стал победителем дня 20 июля 2011

VoLT имел наиболее популярный контент!

Репутация

8 Newbie

Информация о VoLT

Информация

  • Пол
    Не определился

Контакты

  • Skype
    mr.vo1t
  1. Перехват функций + вызов функций игр написанных на Delphi library sr2;uses Windows , SysUtils , DDetours // https://code.google.com/p/delphi-detours-library/ ;{$R *.res}var dwThrdHack: Dword = 0; dwThrdMain: Dword = 0; dwThrdKeys: Dword = 0; CALL: Boolean = False; Trampoline: function( p0: Integer; p1: Integer; p2: Integer; p3: WideString): Integer; dwLoadOffset: Dword;function TrampolineFunc( p0: Integer; p1: Integer; p2: Integer; p3: WideString): Integer;begin OutputDebugString(PWideChar(p3)); Result := Trampoline(p0, p1, p2, p3);end;Function FuncKeys(const LPVOID: variant): Boolean;begin while (True) do begin if (GetAsyncKeyState(VK_END) <> 0) then CALL := True; sleep(100); end;end;function FuncMain(const LPVOID: variant): Boolean;begin while (True) do begin asm pushad; end; if CALL then begin OutputDebugString('FPS'); CALL := False; end; sleep(100); asm popad; end; end;end;Function HackThread(): Dword;var cHandle: Cardinal;begin repeat sleep(500); until (dwThrdMain = 0); dwLoadOffset := GetModuleHandle(nil); Dec(dwLoadOffset, $400000); @Trampoline := InterceptCreate(Pointer($0051DD38 + dwLoadOffset), @TrampolineFunc); CreateThread(nil, 0, @FuncKeys, nil, 0, dwThrdKeys); CreateThread(nil, 0, @FuncMain, nil, 0, dwThrdMain); Result := 0;end;procedure DllMain(reason: Integer);begin case reason of DLL_PROCESS_ATTACH: begin CreateThread(nil, 0, @HackThread, nil, 0, dwThrdHack); end; DLL_PROCESS_DETACH: begin if dwThrdMain <> 0 then CloseHandle(dwThrdMain); if dwThrdKeys <> 0 then CloseHandle(dwThrdKeys); end; end;end;begin OutputDebugString('inject'); DisableThreadLibraryCalls(hInstance); DllProc := @DllMain; DllProc(DLL_PROCESS_ATTACH);end.
  2. Не ужель дождались ) позже попробую сделать тутор по вызовам )
  3. KoBRaAndrey в общем совет: изучи этот архив http://www.datafilehost.com/download-52bdd47a.html, переделай под GTAIII и будет счастье - третья от вайса отличается мало чем. Тот же RAGE тока довели до ума мотики
  4. Не понимаю какого лешего этот вопрос тут, но раз хотели ответ, получайте http://www.hiew.ru/f.../sencalc106.zip он ещё и складывать умеет всё в ReadMe// MasterGH: программу скинул. Сообщения почистил. Пользоваться ли этой программой решайте сами.
  5. Уж лучше datafilehost.com ... у многих с народа тянет в час по чайной ложке
  6. Далеко не всё можно реализовать изменением каких либо значений, например добавление в игру определённого оружия, или скажем каких либо игровых бонусов, а иногда в разы проще реализовать через процедуры игры. И так мной была написана DLL работоспособная на Космических рейнджерах 2: Перезагрузка которая добавляет текст в игру используя процедуры в игре void AddMsg() { BSTR bstr = SysAllocString(L"Галактика в опасности!"); int curtime = *(DWORD *)(*(DWORD *)(*(DWORD *)(0x007058D0))+0x48); // в CE 0x007058D0+0x48 //данный способ универсален можно расписать до сколь угодно глубокого вложения _call(0x006B67BC, 3, 7, curtime, bstr); // первый параметр адрес второй количество параметров остальное параметры DWORD *screens = *(DWORD **)(0x007056BC); BYTE index = *(BYTE *)(*(DWORD *)(0x00705DA8)); DWORD curscreen = *(DWORD *)(screens[index]+0xB8); // поверьте в отладчике, при поиске сего чуда, код выглядит страшнее ) // как реализовать его в CE без скрипта мне не довелось узнать _call(0x006A6374, 1, curscreen); SysFreeString(bstr); } За сим всё, получилось несколько сумбурно, но исходные коды должны расказать большее, их можно скачать тут PS поскольку fastcall в Delphi и C++ отличается как хлеб и рама пришлось использовать обёртку - процедуру _call которая выполняет вызов процедур таким образом как это принято в Delphi PSS для компиляции требуется MinGW например можно заюзать Code::Blocks. PSSS чудную вставку на MSVC++ можно написать путём goto и меток PSSSS данным способом можно изголятся так же и на играх написанных на Borland C++
  7. MasterGH а реально вызывать процедуры из CE по горячей клавише? Допустим при внедрении DLL можно вызвать фунцию из неё ... хотелось бы без DLL так же вызывать произвольную функцию в игре
  8. aliast собственно разобрал довольно быстро сравнивая в IDA похожие участки кода используя базу от listener'a и свежий дамп с exe эпизодов ... без него и неё ничего бы не вышло PS И да Шефы плохо отозвались об этом методе
  9. а ведь можно было использовать стандартные процедуры которые от скриптов если интересно могу подсказать Сорцы трейнера от 1с версии кажется 1031 не важно всё равно надо многое переписывать http://www.datafilehost.com/download-adf0f799.html И да он не может выполнять некоторые скриптовые функции ещё информации http://gtamodding.ru/w/index.php?title=Scripting.pas и ещё
  10. Есть Шеф, убрать не юзать сжечь и тп
  11. Вызов процедуры из DLL Объявление: DWORD dwLoadOffset = ((DWORD)GetModuleHandle (NULL)-0x400000); void (__cdecl *AddScore)(int) = (void (__cdecl *)(int))(0xDEADBEEF + dwLoadOffset); где 0xDEADBEEF адрес процедуры которую мы хотим вызвать в игре Использование: AddScore(300); Тут важно одно - правильно определить какие параметры функции нужны и что она возвращает
  12. aliast вызов функций по хэшу даёт только оружие жизни и броню ... для всего остального в том числе и для спавна требуется заменить поток с выполняющимся скриптом - своим и уже из него выполнять
×
×
  • Создать...

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

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