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

Пробелы в знаниях


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

3. DirectxHook, я просматривал соурсы этого изобретия, и обнаружил там поиск по сигнатуре. Т.е. в либе d3d9.dll ищется сигна, с которой потом что-то делают... Это типо используют эксплойты в d3d9 библиотеке?

можно ставить хуки на коде игры. тогда 100% совместимость со всеми виндами и без костылей.

они ставят хук на EndScene в той длл. так как d3d9.dll на всех виндах разный бредокод - это создает немеряно проблем. +в тех примерах 99% менюха будет крешить при переходе окно > весь экран тд тп.. +наверно еще и fps жрет постоянными вызовами например ReleaseFont...

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

  • Ответов 66
  • Создана
  • Последний ответ

Топ авторов темы

можно ставить хуки на коде игры. тогда 100% совместимость со всеми виндами и без костылей.

они ставят хук на EndScene в той длл. так как d3d9.dll на всех виндах разный бредокод - это создает немеряно проблем. +в тех примерах 99% менюха будет крешить при переходе окно > весь экран тд тп.. +наверно еще и fps жрет постоянными вызовами например ReleaseFont...

Ты что тут паришь? Индекс EndScene в vTable у 9го директа - всегда 42. Так что это будет совместимо со всеми версиями винды.

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

можно ставить хуки на коде игры. тогда 100% совместимость со всеми виндами и без костылей.

они ставят хук на EndScene в той длл. так как d3d9.dll на всех виндах разный бредокод - это создает немеряно проблем. +в тех примерах 99% менюха будет крешить при переходе окно > весь экран тд тп.. +наверно еще и fps жрет постоянными вызовами например ReleaseFont...

 

Реквестирую работающий хук на код игры. А также пояснение, что он даст. И в каком месте вдруг разные версии d3d9.dll при хуке EndScene могут вызвать проблемы, если хук идет через vtable? Я уже не первый раз повторяю - если что-то где-то поверхностно почитал - не считай себя экспертом, изучай углубленно, а то какую-то чушь порешь. Единственное, с чем согласен - это с постоянным ReleaseFont. Один раз создал - один раз освободил.

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

Release вызывается в хуке Reset, который кидается при DeviceLost. Иначе все нужные объекты создаются один раз и висят в памяти, пока их не нужно будет убить по тем или иным причинам. По тем же причинам падают приложения при переходе fullscreen <-> windowed - не очищают все нужные рефы, если таковые имеются.
Ссылка на комментарий
Поделиться на другие сайты

Release вызывается в хуке Reset, который кидается при DeviceLost. Иначе все нужные объекты создаются один раз и висят в памяти, пока их не нужно будет убить по тем или иным причинам. По тем же причинам падают приложения при переходе fullscreen <-> windowed - не очищают все нужные рефы, если таковые имеются.

Т.е. нужно очищать шрифты после рисования, чтобы при переходе в фулскрин не крашило? 

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

Т.е. нужно очищать шрифты после рисования, чтобы при переходе в фулскрин не крашило? 

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

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

Ты что тут паришь? Индекс EndScene в vTable у 9го директа - всегда 42. Так что это будет совместимо со всеми версиями винды.

в тех хардкорд примерах хук ставят на проц. EndScene в d3d9.dll = код разный = паттерн не найдет.

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

в тех хардкорд примерах хук ставят на проц.

Примеры, примеры! А то опять сплошной треп

 

 

EndScene в d3d9.dll = код разный = паттерн не найдет.

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

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

Примеры, примеры! А то опять сплошной треп

 

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

все к автору темы. не хватало еще всякое г. искать и доказывать чужие бредометоды. даа нифига оно не найдет, хотя такие как ты сделают под каждую версию d3d9.dll свой паттерн и скажут все круто и правильно :D

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

Вот тебе универсальная паттерна с маской.

FindPattern(GetModuleHandle("d3d9.dll"), 0x128000,  (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86",  "xx????xx????xx"); 

Как сказали выше, индекс у Endscene в виртуальной таблице DX9 всегда тот же = 42.

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

 даа нифига оно не найдет

Оно - ? твоё отношение к людям становится очень понятным.

 

Докажи действиями - вот здесь я задаю конкретный вопрос.

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

Докажи действиями - вот здесь я задаю конкретный вопрос.

 

Да ничего он не докажет, Гарик. Ясно же, что он - обычное трепло, возомнившее себя экспертом в IT. Тьфу, короче.

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

Мне - нет. Сомнения остались, особенно, в свете того, что код аобскана для асма - рипнут.

Я и написал там, что лично мне - доказал. А другим...... пусть сам думает.

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

Он сказал - что код аобскана на АСМе он украл (возможно).

Естесна. Такая штука и у меня есть. Она вообще у многих есть...

 

P.s. как использовать винапи не используя винапи? Т.е. чтобы античит не детектил - нужно исключить WinAPI из кода, но как тогда без него? Какие есть альтернативы?

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

WinAPI - это только вершина айсберга, т.е. те функции, которые можно вызывать из пользовательских привелегий. Так или иначе все процессы проходят через ядро ОС, которому доступно сильно больше, чем WinAPI. И, конечно же, у него самого есть API. Можно обращаться к нему. Это раз. Можно долго искать и найти недокументированные WinAPI, которые не проверяют античиты. Это два. Можно написать свой аналог RPM\WPM, это три. Можно спуститься на уровень ядра и написать *все* свое, выпрашивая у ядра только хэндлы процессов. Это четыре. Можно отказаться и от этого, но тогда нужно будет написать свой менеджер памяти. Это пять. Последнее - можно отказаться от записи на жесткий диск и запускаться с флешки, положив свою, гм, "программу" рядом с ядром. Тут потребуется свой менеджер памяти + свое много чего еще, мини-ОС, в общем.

 

Методы - в порядке нарастания сложности исполнения, градуса кретинизма и трудозатрат в целом.

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

Так или иначе все процессы проходят через ядро ОС, которому доступно сильно больше, чем WinAPI. И, конечно же, у него самого есть API. Можно обращаться к нему. Это раз.

Ссылку? 

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

[Запросто]. В частности, тебя должен интересовать цикл статей "Перехват API функций в Windows NT" от Ms-Rem'а. Ну и, конечно, блог и книга "Windows Internals" за авторством Марка Руссиновича.
Ссылка на комментарий
Поделиться на другие сайты

[Запросто]. В частности, тебя должен интересовать цикл статей "Перехват API функций в Windows NT" от Ms-Rem'а. Ну и, конечно, блог и книга "Windows Internals" за авторством Марка Руссиновича.

перехват апи функций... А как это поможет их скрыть?

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

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

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

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