1)
я так понял ты свбп и хвбп путаешь.
свбп(software breakpoint) это байтпатч инструкций на int3(винда кидает исключение когда выполняется эта инструкция, дебаггер ловит это исключение и паузит тебе приложуху и ты делаешь что надо). проц выполняет инструкцию, у тебя паузится приложуха
хвбп(hardware breakpoint) это дебагер в Dr регистры записывает адреса и свойства брейкпоинтов. инструкции mov и тд учитывают эти др регистры и у тебя паузится приложуха если надо. в чит енджине этот функционал называется "Find out what accesses/writes to this address" или както так
я так понял ты свбп ставишь, и он у тебя естественно не срабатывает - т.к. процессор не запускает эти данные(там где св читс лежит. эти данные(ну например значения 0 и 1) не для выполнения предназначены)
ставь хвбп и будет тебе паузить после исполнения mov инструкции которая модифицирует этот адрес
![1706437323180.png 1706437323180.png](https://yougame.biz/data/attachments/269/269223-433187ee91a710cb39a55185837488f4.jpg)
2)
ну вообще сомнительная идея св читс 1. вальвам труда не составляет квары чекнуть твои если захотеть(в ксго вроде они это делают
, в доте хз). ты можешь либо нужные тебе квары которые требуют св читс 1 напрямую менять(опять таки их тоже могут вальвы чекнуть), либо пропатчить проверку на св читс(.text модификации как и модификации любой ридонли секции детектятся легко(т.к. они не должны модифицироваться и должны совпадать с оригиналом(за исключением релоцированных данных)) - берется оригинал, релоцируется и сравнивается с тем что в памяти. хз делают вальвы это или нет но ничто им этого не мешает делать если они захотят), либо менять какието связанные но не кварные переменные(ну т.е. которые глубоко гдето живут(в модифицируемых секциях) и габен не станет их чекать). ну тут вопрос в общем сводится к тому что габен хочет. если ему похуй то можно что угодно делать, а если захочет то всё увидит
3)
класс это описание членов и методов. есть "человек" у него есть руки ноги может ходить бегать.
объект это конкретные уже значения членов и имплементации методов(у одного класса может быть дохуя объектов). есть "вася" он "человек" у него короткие ноги и длинные руки он может быстро ходить и бегать челночным бегом и тд. "петя" тоже "человек" но он инвалид без рук без ног не может ни бегать ни ходить. есть класс "сторублёвая купюра", есть объекты - мятая купюра, идеальная купюра, порванная купюра и тд(ну или можно сказать что есть просто "купюра", а есть объекты - мятая купюра номиналом 100, идеальная купюра номиналом 1000, и тд и тп это уже как программист захочет)
классы иногда имеют иерархию(цепочку наследования. например мужчина это человек, человек это животное, животное это многоклеточное блаблабла)
C_BaseEntity в сурс движке это основа иерархии живых существ(и всякой вспомогательной фигни. но не всей). это что-то вроде "животного". есть птички рыбки обезьянки всё это животные и у них есть всякие общие какието параметры но они все разные
есть допустим класс C_DOTA_Unit_Hero_PhantomAssassin, он наследует от C_DOTA_BaseNPC_Hero, он наследует от C_DOTA_BaseNPC_Additive, он от C_DOTA_BaseNPC, он от C_NextBotCombatCharacter, он от C_BaseCombatCharacter, он от C_BaseFlex, он от C_BaseAnimatingOverlay, он от CBaseAnimatingActivity, он от C_BaseModelEntity, он от C_BaseEntity, он от CEntityInstance, он от IHandleEntity
и таких инстанций C_DOTA_Unit_Hero_PhantomAssassin у тебя может быть несколько. например в демке наспавнишь кучу фантомок, они все будут "фантомками", но у них у всех могут быть разные хп мана левел вкаченные абилки и тд