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

SweetAss1337

Стажёры
  • Публикаций

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

  • Посещение

Репутация

1 Навыки не прокачены

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

  • Звание
    Пользователь

Информация

  • Пол
    Мужчина

Посетители профиля

1 078 просмотров профиля
  1. Ставлю хук на функцию в целевом процессе. Все нормально работало, после чего последовал фикс. Фикс заключается в том что как только я изменяю функцию (ее размер,судя по всему), это фиксируется. Вопрос в том как обходить такую защиту от хука? Самый просто вариант это просто поставить другой хук на функцию,берущую размер первой, но я не знаю какие методы используются.
  2. Долгое время в одной игре работал мой чит, внедряемый в процесс, с недавнего времени в игре появилась защита от инжекта. Работает она таким образом что при создании удаленного потока игра закрывается. То есть игра мониторит потоки (То ли их количество,то ли просто мониторит функции), в следствие чего ни один из известных методов инжекта не работает. Снимать эту защиту естественно можно только снаружи. Можно ли как-то занопить функции,которые игра использует для мониторинга, или что-то вроде этого? Можно ли как-то хукнуть их снаружи? Я не нашел такой техники,которая бы позволяла ставить хуки, не ссылаясь при этом на адреса в своей Длл. Думаю что в теории это возможно.
  3. Реализовал в своем инжекторе такую фичу, как в CheatEngine. То есть моя длл инжектится моим же инжектором в процесс игры, после чего я вызываю из инжектора функции, объявленные в DllExport у моей библиотеки. Библиотека на c++. Проблема в том, что для того чтобы вызвать функцию в постороннем процессе, мне надо получить адрес этой функции через GetProcAddress, а для этого мне надо подгрузить библиотеку в процесс инжектора, что сильно мешает. Была идея загружать библиотеку, брать адрес функции и выгружать (всем костылям костыль) То есть делаю примерно так: try { IntPtr ExampleLib=LoadLibrary(@"C:/Users/Dmitry/Desktop/Hook/x64/Release/Example.dll"); //Загружаю библиотеку чтобы взять из нее "слепок" памяти,чтобы обратиться к этой же длл в чужом процессе IntPtr lpLLAddress = GetProcAddress(GetModuleHandle("Example.dll"), "Pass"); //Беру адрес из "слепка" IntPtr hndProc = OpenProcess((0x2 | 0x8 | 0x10 | 0x20 | 0x400), 1, Pid); //Открываю CreateRemoteThread(hndProc, (IntPtr)null, INTPTR_ZERO, lpLLAddress, (IntPtr)null, 0, (IntPtr)null); //Удаленный поток чтобы вызвать функцию по взятому адресу CloseHandle(hndProc); // FreeLibraryAndExitThread(ExampleLib,0x1); Если выгружаю библиотеку таким образом то происходит краш с AccessViolation. Но ели выгружаю библиотеку "саму из себя" то все нормально. } Адрес вроде как всегда статический но я не смог разобраться с типами и перевести его в нормальный вид чтобы по нему обратиться
  4. У меня есть x64 процесс, в списке его модулей я вижу opengl32.dll. Использовать х32 библиотеку в х64 процессе невозможно по идее, но почему тогда она так называется?
  5. SweetAss1337

    OpenGl логгер

    Я более-менее разобрался. Ddraw.dll используется судя по всему только для всяких win api, то есть для отрисовки самого окна игры и т.д, хоть это и странно. Игра отрисовывается через opengl, но не использует функцию glDrawElements. То есть эта функция вообще никогда не вызывается. Создается ощущение что игра отрисовывает через opengl только так называемый skybox и меню. Мне удалось повлиять на все, я убирал элемены меню, и даже отрисовывал какие-то фигуры на skybox'е. Но моделей игры так и не смог задеть.
  6. У меня есть логгер текстур для OpenGL, в целом принцип его действия такой же как и при d3d, и все работает нормально. Но есть одна игра, которая вроде как отрисовывается через OpenGL, но при этом там нет текстур, игра использует воксели. Мало того, в модулях игры помимо opengl32.dll есть еще и ddraw.dll, то есть DirectDraw, который вообще по идее имеет отношение к директ иксу, но какое я так и не понял. И если я хукаю функцию glClear, то игра перестает отрисовывать все,кроме некоторых элементов, а значит явно использует OpenGL. Помогите разобраться, как игра отрисовывает воксели.
  7. Кто-нибудь работал с античитом? Видно что он защищает процесс игры от чтения и записи памяти, что еще он делает? Можно ли это обойти если действовать на уровне драйвера? Может быть тут есть кто-нибудь кто вкурсе как это работает.
  8. Но какое это имеет значение в конкретно этом случае? Видовая матрица она всегда должна быть одинаковой, ей математика не позволяет состоять менее чем из 16 значений. Тут вариантов не много: Либо это только кусок матрицы а остальное надо искать, либо она действительно такая. Просто я представить себе не могу как нужно будет менять world_to_screen или get_viev_matrix
  9. Пишу есп, все координаты находятся, цифорки рисуются и мерзко мигают на окне, но рисуются они не там где надо , а прямо у меня под ногами. Как я понимаю проблема в видовой матрице, которую я по нормальному так и не нашел. Как я понял она должна состоять из 16 значений, но у меня сколько бы я ее не искал, находятся только 14 этих значений. Может ли она быть такой? Может это особенность движка или еще че-то. Как тогда надо переделывать функцию world_to_screen?
×

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

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