

Sergey99
Пользователи-
Постов
97 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Sergey99
-
Всем привет ещё раз! На этот раз вопрос по поводу перехвата готовых команд в играх. К примеру есть игра CoD: MW3, там так же как и в MW2 есть консольные команды и если в 2 части их можно было отследить (допустим noclip), отсеивая значения состояния команды (0 - выкл; 1 - вкл), то в 3 части такой штуки нет (менять конфиг и биндить горячие клавиши), но есть умельцы которые нашли способ отсева или всё-таки перехвата. От сюда вопрос, как это сделать (какой-нибудь вариант найти значения состояния команды)??
-
И так вот всё готовенько, сделал хук на D3D9 так как CoD: MW2 работает с ним. Вот ссылка на гит хаб хука: https://github.com/Pirate1953/D3D9_HOOK,, по сути всё что делаю это рисую меню сверху слева в окне игры с возможностью управления клавишами на клавиатуре. Теперь вопрос: как мне реализовать функцию, которая будет отключать текстуры, оставляя полигоны моделей (если такая вообще существует) или как отображать полигоны у всех моделей на карте (видны даже те, которые за стеной стоят)??? Вот само меню:
-
Исходя из документации выясняется, что DetourFunction - определяет адрес по которому наша DLL ищет функцию, но в новой версии есть DetourAttach. Как тогда переписать строчку для определения HOOK? Короче нашёл древний заголовок detours v1.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, но в общем что вся строчка делает?
-
Чтобы текстуры не отрисовывались, необходимо отключить какую-то функцию (или же изменить алгоритм рисования в D3D приложении) из D3D. Я располагаю Visual Studio 2017 и 2015 у меня есть DirectX SDK (June 2010), в которой есть необходимые файлы, но проблемы начинаются в самом начале, ведь даже не дают сделать хук на отрисовку меню поверх окошка прогаммы.
-
Ок, это слишком сложно, тогда как отключить текстуры и оставить одни полигоны? Наверняка на c++ это делается. Желательно с примером и объяснением (стиль "Как нарисовать сову" не принимается, так как все исходники, которые я беру не работют так как не определы идентификаторы функций а символы и directx я подрубил всё пашет) И ещё прошу объяснить как оптимизировать под новые версии DirectX (11 например)?
-
Chameleon Wallhack для CoD: MW2
Sergey99 опубликовал тема в Вопросы по созданию читов в одиночных играх
Здравствуйте, ни как и ни где не найду исходник логгера текстур на C++ и вытекающий от туда WH на DirectX, который ещё кенг делал. На гите его уже нет, как мне быть?? Хочу сделать Chameleon для CoD: MW2 и не спрашивайте почему, потом всё видите как только закончу) Где мне взять исходник? -
А вот теперь если представить имеется игра с динамическим распределением памяти, у неё инструкции расположены по адресам, мне CE, показывает, например, инструкцию сохранения координат по такому адресу: game.exe+842432, где game.exe = 00400000 - базовый адрес модуля, а 842432 - смещение до адреса с инструкцией. Может ли меняться смещение (в моём случае 842432) при динамическом распределении памяти и при статическом?
-
Вы все не поверите, но я блин посмотрел настройки по умолчанию и выяснил следующее: раз уж при стандартных настройках параметр g_speed равен 190, то я нашёл его через CE методом тыка Но всё же, всё равно интересно, как вы нашли этот параметр, я видел что адрес состоит из нескольких значений и умножения на 4 (видимо это размер 4 байта, непонятно зачем там нужен оператор смещения >>) Я всё ещё не допёр как же найти эту метку и провести анализ, чтобы в итоге получить тот же адрес? Потому что ведь может быть игра, в которой нет мультиплеера, в которой даже нет файла с конфигами, чтобы можно было подсмотреть значение
-
Ок, вижу что адрес получен в результате математической операции, можете сказать от куда начали реверс? Если ставили отладчик на проверку "какая инструкция пишет в этот адрес", то в какой, где координата хранится или что-то другое? И не совсем понятно от куда нашлось число 1233 (0x4D1) и зачем сдвигать операнд влево через оператор <<, если можно объясните подробнее, чтобы я понял
-
Ой да ладно вам, Olly живи Однако более детального способа найти скорость персонажа ещё не нашёл, может быть всё очень замудрено там в игре? Есть ли кто-нибудь ещё по мимо меня, кто увлекается CoD MW2, кто более прошарен чем я, подскажите в какую сторону копать, чтобы найти "некую константу для скорости персонажа", на наглядном примере (у кого игра сейчас имеется при себе).