Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Принцип чтения памяти игры используя механики ядра ОС Windows (Virtual Memory, Physical Memory)

Ты разве не говоришь про подмену eprocess фиктивным значением? Можешь сам зайти в раст какой-нибудь и посмотреть. На последних билдах виндовса cr3 не меняется, хотя ранее он шафлился каждые 5-10 секунд. И на более старых билдах такого тоже вероятно уже нет, не проверял
да, возможно ты прав, что на каком-нибудь 25H2 крипт ср3 действительно убрали, я не смотрел, что там, но не смотря на это, начиная с 10 винды, заканчивая 23H2 (?), крипт ср3 ( а именно подмена значения в EPROCESS'e ) - остался. "хотя ранее он шафлился каждые 5-10 секунд" - раньше еак релокал пейдж тейблы, что заставляло заново получать ср3. сейчас ( с ~ лета / сентября прошлого года ) это убрали
 
да, возможно ты прав, что на каком-нибудь 25H2 крипт ср3 действительно убрали, я не смотрел, что там, но не смотря на это, начиная с 10 винды, заканчивая 23H2 (?), крипт ср3 ( а именно подмена значения в EPROCESS'e ) - остался. "хотя ранее он шафлился каждые 5-10 секунд" - раньше еак релокал пейдж тейблы, что заставляло заново получать ср3. сейчас ( с ~ лета / сентября прошлого года ) это убрали
Да. Подмена eprocess осталась. Но сейчас достаточно 1 раз при запуске получить cr3 и сохранить его. Он больше не меняется
 
И как это связано с твоим упоминанием LA57?
У большинства 4-х уровневая система умник, не у всех LA57 стоит.

Если в статье не учитывается LA57 это не делает ее технический ложной
я не говорил что она технически ложная потому что в ней не упомянут pml5, я добавил что по спеке pml4 это не самый верхний уровень

технически ложной ее делают фрагменты про физ и вирт память
 
после PG=1 понятие физ памяти не имеет смысла. в статье очень часто за чтением виртуальной памяти стоит вызов хуйни шинды которая подсосет cr3, а за чтение физ памяти(что, еще раз, некорректно) тот же процесс но со спизженным cr3.
 
после PG=1 понятие физ памяти не имеет смысла. в статье очень часто за чтением виртуальной памяти стоит вызов хуйни шинды которая подсосет cr3, а за чтение физ памяти(что, еще раз, некорректно) тот же процесс но со спизженным cr3.
до сих пор не понял о чем идет речь

если ты имел в виду: "В этой статье разберем, как работать с физической памятью и почему использование чтения / записи виртуальной памяти в условиях популярных анти-читов - плохое решение.", то я привел пример именно в контексте работы с анти-читами ( EAC, BE, etc ). сама система не предоставляет средств для безопасного чтения / записи виртуальной памяти, которое соответствовало бы требованиям вышеперечисленных анти-читов. опять таки я не говорю, что читать виртуальную память - бред, я всего лишь говорю, что пока-что в винде просто нет таких средств, которые обеспечивают безопасность.
 
после PG=1 понятие физ памяти не имеет смысла. в статье очень часто за чтением виртуальной памяти стоит вызов хуйни шинды которая подсосет cr3, а за чтение физ памяти(что, еще раз, некорректно) тот же процесс но со спизженным cr3.
Что значит неккоректно чтение физ памяти? Ты переводишь физику в вирт также как это делает твой процессор. Имея cr3 ты это можешь делать не находясь в контексте игры.
Если ты втупую делаешь mmcopyvirtualmemory то в зависимости от размера чита он у тебя может даже 20 тысяч раз вызываться. То есть ты 20 тысяч раз в секунду из вероятно неподписанной аттачишься к процессу игры.

И что за "вызов хуйни шинды". kestackattach? В случае с физикой его необязательно делать, когда у функции mmcopyvirtualmemory он делается в каждом вызове
 
до сих пор не понял о чем идет речь

если ты имел в виду: "В этой статье разберем, как работать с физической памятью и почему использование чтения / записи виртуальной памяти в условиях популярных анти-читов - плохое решение.", то я привел пример именно в контексте работы с анти-читами ( EAC, BE, etc ). сама система не предоставляет средств для безопасного чтения / записи виртуальной памяти, которое соответствовало бы требованиям вышеперечисленных анти-читов. опять таки я не говорю, что читать виртуальную память - бред, я всего лишь говорю, что пока-что в винде просто нет таких средств, которые обеспечивают безопасность.
я скорее про то что твоя статья не бьется с терминами x86
Что значит неккоректно чтение физ памяти? Ты переводишь физику в вирт также как это делает твой процессор. Имея cr3 ты это можешь делать не находясь в контексте игры.
Если ты втупую делаешь mmcopyvirtualmemory то в зависимости от размера чита он у тебя может даже 20 тысяч раз вызываться. То есть ты 20 тысяч раз в секунду из вероятно неподписанной аттачишься к процессу игры.

И что за "вызов хуйни шинды". kestackattach? В случае с физикой его необязательно делать, когда у функции mmcopyvirtualmemory он делается в каждом вызове
в x86 при PG вся память виртуальна, ты всегда читаешь и пишешь только в нее.
то что ты подменил cr3 и вирт адреса начали маппится на другие физические, не говорит о том что ты начал писать или читать физ память. ты все также работаешь с вирт памятью. вопрос именно к терминологии.
 
я скорее про то что твоя статья не бьется с терминами x86

в x86 при PG вся память виртуальна, ты всегда читаешь и пишешь только в нее.
то что ты подменил cr3 и вирт адреса начали маппится на другие физические, не говорит о том что ты начал писать или читать физ память. ты все также работаешь с вирт памятью. вопрос именно к терминологии.
Да. Ты не обрабатываешь физ память. Ты ее вручную переводишь в виртуальную и работаешь. Доеб только до этого.
То есть грубо говоря это тот же mmcopyvirutalmemory только без атача к процессу.
И это будет андетектнее. Все остальное по детектам уже зависит от остальных частей твоего чита
 
Да. Ты не обрабатываешь физ память. Ты ее вручную переводишь в виртуальную и работаешь. Доеб только до этого.
То есть грубо говоря это тот же mmcopyvirutalmemory только без атача к процессу.
И это будет андетектнее. Все остальное по детектам уже зависит от остальных частей твоего чита
не то чтоб прям доеб, статья про пейджинг, термины не про пейджинг
 
я скорее про то что твоя статья не бьется с терминами x86

в x86 при PG вся память виртуальна, ты всегда читаешь и пишешь только в нее.
то что ты подменил cr3 и вирт адреса начали маппится на другие физические, не говорит о том что ты начал писать или читать физ память. ты все также работаешь с вирт памятью. вопрос именно к терминологии.
ты прав, что мы работаем с виртуальной памятью, но в чит-деве термин "чтение физической памяти" означает ручной перевод адресов с помощью дтб без использования mm_copy_virtual_memory
 
Назад
Сверху Снизу