Так он же видит, куда ведёт хук, и видит, что в этом модуле нет ни одной знакомой ему сигнатуры. Оверлей рисуют многие, но античиты про весь "белый" софт знают, и увидеть что-то незнакомое - это очень подозрительно. Особенно если твой модуль ещё и загружен не через LoadLibrary, а мануалмаппингом. Да: идея была в том, чтобы предоставить такой интерфейс, чтобы из юзермода можно было относительно свободно работать с ядром. Идея была ещё в те времена, когда у меня был EV-сертификат: зная, что он не вечен, хотелось один раз написать большой API, который мог бы закрыть все ядерные потребности. А в плане "подружить"? Если ты можешь подгрузить произвольный драйвер, то зачем грузить бридж? Грузи свой собственный драйвер и делай всё из ядра: это проще, чем работать через юзермодный API. И намного скрытнее, ведь бридж не задумывался для скрытности: он создаёт виртуальный девайс, а это красная тряпка для любого античита. Это ещё один фактор, снижающий доверие к пользователю, но банить за уязвимые драйвера они не могут, потому что большой шанс, что пользователь просто не обновился. В тестовом игры обычно не запускаются. Основанием для бана тестмод тоже служить не может, поскольку игрок может быть одновременно разработчиком, которому этот тестмод нужен для работы (или для чего-то ещё). То же самое по поводу SystemInformer'а, CheatEngine'a и другого условно "читерского" софта: банить за сам факт его наличия нельзя, ведь неизвестно, для чего он запущен у игрока. Может, игрок даже и читер, но читер в другой игре. Или ему этот софт нужен для реверсинга, не связанного с читами. Поэтому основанием для бана служит только факт модификации самой игры, когда у античита есть неоспоримые доказательства, что у игрока читы. Бывают ошибочные баны, конечно, но тем не менее. Да, можно перехватить апи DirectX в dxgkrnl и рисовать из ядра (античиты тоже про это знают). Если говорить именно о драйверах видеокарты и записи напрямую в видеопамять - теоретически конечно можно (драйвера же это как-то делают), но для этого тебе придётся разреверсить сами драйвера, чтобы понять, как они работают с видеокартой, где там у неё отмаплена видеопамять и в каком формате она ожидает данные. И у разных видеокарт эти протоколы будут разными. Поэтому теоретически хоть и возможно, но на практике ты не захочешь в это влезать.
с кайфом, спасибо за ответы. осталось найти драйвер с бэкдором. в принципе моя идея в том, чтобы просто читать память процесса, ничего модифицировать не нужно (для бота хватает). осталось понять опытном путем, что выгоднее и безопаснее: DMA или драйвер. Первое вроде как стабильное, но муторное, а второе полегче, но нестабильное..
А если DMA, то через какое устройство? Ему ведь нужен физический девайс, в который будешь читать память. А если планируешь софт на продажу, то мало кто захочет дополнительно покупать железо. Но таки да, DMA скрытный. А если софт только для тебя, то, имхо, драйвер - лучший выбор: читать можно относительно незаметно, и, пока софт у тебя одного, античиты не будут жестить.
будут - аномалия на серваче обнаружится быстро: по логам можно определить, что игрок получил возможности, коих у него быть не должно.
Смотря что они найдут. Если развесистый ESP на весь экран, как ёлка, то в бан, конечно, но если увидят неизвестный драйвер, которого больше нет ни у кого, но не найдут явной связи между драйвером и читами (а если только читать память, то определить довольно сложно) - то скорее всего они просто проигнорят. Или сделают у себя пометку, чтобы впоследствии найти ещё кого-то с таким же драйвером, и тогда уже сделать вывод, чит это или нет.
тамо всё проще - смотрят на динамику прокачки учётки + происходят периодические обновления модулей игры, тч чит нужно постоянно адаптировать. то бишь получаем, что просадка успешности учётки напрямую коррелирует с обновлением модулей
Привет, использовал эту тулзу https://github.com/hfiref0x/KDU ? Стоит использовать или лучше свой шелл писать
Подойдёт что угодно, любой способ загрузки драйвера (даже штатный через сервис или через ZwLoadDriver), но только если ты после загрузки почистишь все следы
это понятно, я про размещение неподписанного драйвера не в тест моде. По сути там тулза, которая может запамить драйвер в уязвимый подписанный драйвер и передать исполнение на DriverEnrty замапленного драйвера, какие способы в этом случае остаются, ведь хендла на драйвер нет и ядро по сути вообще знать не должно (или знает?), что новый драйвер загружен (варварски замаплен в другой)
так мапишь ты через функи ядра. конечно, можно всё запускать под виртой и мапить чрез неё.. однако, скорость работы сего колхоза сильно уронится
А ты рассуждай, как бы ты сам искал такие драйвера и чем такой драйвер может спалиться. Например, если ты перезаписываешь уже существующий драйвер, можно сравнить содержимое кодовых секций с файлом на диске. Если выделяешь исполняемую память - палится сам факт наличия такой памяти. Если переключаешься в контекст игры, чтобы прочитать её память, то твой поток палится по регистру cr3, который смотрит на адресное пространство игры. Если драйвер общается с юзермодом через какой-либо именованный объект (девайс, communication-порт, что-то ещё) - палится этот объект. Если мапишь драйвер одним из уязвимых драйверов, то палится этот уязвимый драйвер (и если он загружен, и если ты его выгрузил - например, в MmUnloadedDrivers). Перечислять можно долго, здесь надо смотреть конкретику, что ты используешь в драйвере, и что из этого потенциально опасное.
HoShiMin, кстати, дма тоже вполне себе палево - система видит девайс и может его опросить да сравнить с ориг девайсами/
тогда чекер берёт соответствующий дравер и начинает гонять тесты, даже эдакий супер-пупер чит едва ль так хорош, чтобы выдержать все тесты/
ничто не мешает предупредить юзвера о возможных тестах + в лицухе легко могут быть буковки, что вероятны физ повреждения оборудования (ежли оно нестандартное).
Но даже если предположить, что ты хочешь проверить, что железка именно та, за кого себя выдаёт - что ты с ней сделаешь? Ты же не знаешь о ней буквально ничего, кроме её номера. Куда и какие слать запросы и что ожидать в ответ?
Привет! Можешь, пожалуйста, быстрый ликбез сделать как делают читы на гипервизорах, насколько это сложно в реализации и когда оправдано?