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

Sergey99

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

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

  • Посещение

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

    2

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

  1. Проблема в том, что не где отсеивать, нельзя биндить клавиши и соответственно никак не найти адрес
  2. Всем привет ещё раз! На этот раз вопрос по поводу перехвата готовых команд в играх. К примеру есть игра CoD: MW3, там так же как и в MW2 есть консольные команды и если в 2 части их можно было отследить (допустим noclip), отсеивая значения состояния команды (0 - выкл; 1 - вкл), то в 3 части такой штуки нет (менять конфиг и биндить горячие клавиши), но есть умельцы которые нашли способ отсева или всё-таки перехвата. От сюда вопрос, как это сделать (какой-нибудь вариант найти значения состояния команды)??
  3. И так вот всё готовенько, сделал хук на D3D9 так как CoD: MW2 работает с ним. Вот ссылка на гит хаб хука: https://github.com/Pirate1953/D3D9_HOOK,, по сути всё что делаю это рисую меню сверху слева в окне игры с возможностью управления клавишами на клавиатуре. Теперь вопрос: как мне реализовать функцию, которая будет отключать текстуры, оставляя полигоны моделей (если такая вообще существует) или как отображать полигоны у всех моделей на карте (видны даже те, которые за стеной стоят)??? Вот само меню:
  4. Исходя из документации выясняется, что DetourFunction - определяет адрес по которому наша DLL ищет функцию, но в новой версии есть DetourAttach. Как тогда переписать строчку для определения HOOK? Короче нашёл древний заголовок detours v1.5 думаю сейчас с ним попробую для начала, а то так не интересно, когда мелгомягкие придумывают новые название и структуры для функций)
  5. Такс пришёл домой, решил писать заново всё и попутно справляться с ошибками (до тех которые не смог решить пока не дошёл). Итак вот часть моего творения с комментариями, поясните я правильно понял (комментирую) эту часть? /** typedef для long HRESULT WINAPI *имя - это указатель на функцию с соглашением вызова WINAPI, которая принимает параметры опредедлённых типов данных и возвращает HRESULT WINAPI - это _stdcall (соглашение вызова) */ typedef HRESULT(WINAPI *tSetStreamSource)(LPDIRECT3DDEVICE9 pDevice, UINT StreamNumber, IDirect3DVertexBuffer9 *pStreamData, UINT OffsetInBytes, UINT Stride); tSetStreamSource oSetStreamSource; //Объявляем oSetStreamSource, это имя будет использоваться для вызова функции, указателем на которую является tSetStreamSource typedef HRESULT(WINAPI *tEndScene)(LPDIRECT3DDEVICE9 pDevice); tEndScene oEndScene; //Объявляем oEndScene, это имя будет использоваться для вызова функции, указателем на которую является tEndScene typedef HRESULT(WINAPI *tDrawIndexedPrimitive)(LPDIRECT3DDEVICE9 pDevice, D3DPRIMITIVETYPE PrimType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount); tDrawIndexedPrimitive oDrawIndexedPrimitive; //Объявляем oDrawIndexedPrimitive, это имя будет использоваться для вызова функции, указателем на которую является tDrawIndexedPrimitive Немножко не верно: typedef для объявления имени HRESULT для типа данных long для описания ошибки или предупреждения Вот так ок? Как я почитал в месте: WINAPI *tSetStreamSource мы объявляем указатель на метод SetStreamSource из класса IDirect3DDevice9, которая принимает параметры и вызывается из _stdcall, но не ясно для чего тогда typedef и зачем потом oSetStreamSource? Вот подробное описание этой конструкции: 1) Объявляем тип указателя на метод 2) tSetStreamSource - указатель на метод SetStreamSource, который принимает определённые параметры и возвращает HRESULT 3) Объявялем указатель, принадлежащий типу tSetStreamSource Надеюсь всё ясно) НА дворе 2 часа ночи а тем временем дошёл до этой строчки: #define HOOK(func, addy) o##func = (t##func)DetourFunction((PBYTE)addy, (PBYTE)hk##func) Первую часть я понял, мы с помощью директивы препроцессора определяем константу или макрос HOOK, который судя по всему принимает, аргументы а что дальше. Кто может объяснить, что делает эта строчка? Хотя пишут, что есть теперь DetourAttach, но в общем что вся строчка делает?
  6. Чтобы текстуры не отрисовывались, необходимо отключить какую-то функцию (или же изменить алгоритм рисования в D3D приложении) из D3D. Я располагаю Visual Studio 2017 и 2015 у меня есть DirectX SDK (June 2010), в которой есть необходимые файлы, но проблемы начинаются в самом начале, ведь даже не дают сделать хук на отрисовку меню поверх окошка прогаммы.
  7. Ок, это слишком сложно, тогда как отключить текстуры и оставить одни полигоны? Наверняка на c++ это делается. Желательно с примером и объяснением (стиль "Как нарисовать сову" не принимается, так как все исходники, которые я беру не работют так как не определы идентификаторы функций а символы и directx я подрубил всё пашет) И ещё прошу объяснить как оптимизировать под новые версии DirectX (11 например)?
  8. Здравствуйте, ни как и ни где не найду исходник логгера текстур на C++ и вытекающий от туда WH на DirectX, который ещё кенг делал. На гите его уже нет, как мне быть?? Хочу сделать Chameleon для CoD: MW2 и не спрашивайте почему, потом всё видите как только закончу) Где мне взять исходник?
  9. Спасибо, это стоит запомнить Просто в некоторых играх адреса инструкций в наглую меняются при перезапуске, возможно я не помню, но тогда CE мне показывал полный адрес без прибавления смещения к базовому адресу, может быть такое?
  10. А вот теперь если представить имеется игра с динамическим распределением памяти, у неё инструкции расположены по адресам, мне CE, показывает, например, инструкцию сохранения координат по такому адресу: game.exe+842432, где game.exe = 00400000 - базовый адрес модуля, а 842432 - смещение до адреса с инструкцией. Может ли меняться смещение (в моём случае 842432) при динамическом распределении памяти и при статическом?
  11. Вы все не поверите, но я блин посмотрел настройки по умолчанию и выяснил следующее: раз уж при стандартных настройках параметр g_speed равен 190, то я нашёл его через CE методом тыка Но всё же, всё равно интересно, как вы нашли этот параметр, я видел что адрес состоит из нескольких значений и умножения на 4 (видимо это размер 4 байта, непонятно зачем там нужен оператор смещения >>) Я всё ещё не допёр как же найти эту метку и провести анализ, чтобы в итоге получить тот же адрес? Потому что ведь может быть игра, в которой нет мультиплеера, в которой даже нет файла с конфигами, чтобы можно было подсмотреть значение
  12. Загрузил в модуль, теперь у меня вот это окно, правильно двигаюсь? https://imgur.com/AagL2I7
  13. Вот как я делаю когда присоединил отладчик к процессу игры, ведь правильно?
  14. Есть способ тут картинку к сообщению присобачить, чтобы проще ориентироваться по ходу?
  15. Чтобы было более понятно, я запустил процесс, присоединился, приступаю к поиску в модуле, а как сюда картинки вставлять, а то я новенький на сайте, не вижу формуляра для добавление картинок к сообщению? Тогда будем присоединять отладчик уже к процессу
  16. Я просто привык к стандартному отладчику СЕ и Olly, к тому же процесс игры не запускаю. Как мне здесь сделать дамп файла? Видимо буду теперь привыкать к новому отладчику
  17. Не находит, даже выпадающий список не предлагает ничего похожего Для чего это: 53 55 8B 6C 24 0C 56 68 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 Я тупой видимо
  18. Это точно нужно искать в листинге, где дизассемблированный код файла лежит, где адреса, инструкции и байты?
  19. Ок, я как раз поставил отладчик x64dbg, тот самый, пока привыкать буду Я так полагаю версии у нас разные поэтому мне сперва надо найти текстовую метку g_speed? Сейчас у меня открыт именно файл .exe игры, а не присоединён к процессу
  20. Ок, вижу что адрес получен в результате математической операции, можете сказать от куда начали реверс? Если ставили отладчик на проверку "какая инструкция пишет в этот адрес", то в какой, где координата хранится или что-то другое? И не совсем понятно от куда нашлось число 1233 (0x4D1) и зачем сдвигать операнд влево через оператор <<, если можно объясните подробнее, чтобы я понял
  21. Ой да ладно вам, Olly живи Однако более детального способа найти скорость персонажа ещё не нашёл, может быть всё очень замудрено там в игре? Есть ли кто-нибудь ещё по мимо меня, кто увлекается CoD MW2, кто более прошарен чем я, подскажите в какую сторону копать, чтобы найти "некую константу для скорости персонажа", на наглядном примере (у кого игра сейчас имеется при себе).
×
×
  • Создать...

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

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