Вопрос Активация sv_cheats 1

Начинающий
Статус
Оффлайн
Регистрация
14 Янв 2024
Сообщения
30
Реакции[?]
1
Поинты[?]
2K
Цель: активировать sv_cheats 1 и не получить бан.

1) Нахожу адрес (переменной??? содержащей значение sv_cheats) в виртуальной динамической памяти с помощью cheat engine; 1878CF904A0; закрываю cheat engine;

2) Запускаю x64dbg, подключаюсь к доте, отключаю все точки останова и нажимаю выполнить; перехожу по адресу 1878CF904A0 и ставлю точку останова; текущее значение 00 00; add dword ptr ds:[rax], eax

3) Перехожу в доту, ввожу sv_cheats 1; остановка не отрабатывает, но значение становится 01 00;

Вопросы:

1) Почему не отрабатывает точка останова?

2) Пытаю найти метод который меняет значение в переменной, может не туда свернул, просьба указать правильный путь?

3) Своими словами: энтити это объект унаследованный от класса?
 
Начинающий
Статус
Оффлайн
Регистрация
14 Янв 2024
Сообщения
30
Реакции[?]
1
Поинты[?]
2K
через cheat engine нашёл кто пишет в sv_cheats:

engine2.dll+3343A3:
7FFDAC27439F - CC - int 3
7FFDAC2743A0 - 0FB6 02 - movzx eax,byte ptr [rdx]
7FFDAC2743A3 - 88 01 - mov [rcx],al <<
7FFDAC2743A5 - C3 - ret
7FFDAC2743A6 - CC - int 3
Пожалуйста, авторизуйтесь для просмотра ссылки.

теперь осталось понять как вызвать этот метод) планирую использовать патчер от Wolf49406
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
759
Реакции[?]
328
Поинты[?]
60K
1)
я так понял ты свбп и хвбп путаешь.
свбп(software breakpoint) это байтпатч инструкций на int3(винда кидает исключение когда выполняется эта инструкция, дебаггер ловит это исключение и паузит тебе приложуху и ты делаешь что надо). проц выполняет инструкцию, у тебя паузится приложуха
хвбп(hardware breakpoint) это дебагер в Dr регистры записывает адреса и свойства брейкпоинтов. инструкции mov и тд учитывают эти др регистры и у тебя паузится приложуха если надо. в чит енджине этот функционал называется "Find out what accesses/writes to this address" или както так
я так понял ты свбп ставишь, и он у тебя естественно не срабатывает - т.к. процессор не запускает эти данные(там где св читс лежит. эти данные(ну например значения 0 и 1) не для выполнения предназначены)
ставь хвбп и будет тебе паузить после исполнения mov инструкции которая модифицирует этот адрес
1706437323180.png
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 у тебя может быть несколько. например в демке наспавнишь кучу фантомок, они все будут "фантомками", но у них у всех могут быть разные хп мана левел вкаченные абилки и тд
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
14 Янв 2024
Сообщения
30
Реакции[?]
1
Поинты[?]
2K
Liberalist, благодарю за развёрнутый ответ; не знал, что точки останова бывают хардварными. Работаю программистом 1С, всё через абстракции, первый раз так глубоко пришлось капнуть. Теперь в раздумье...
1) Сколько времени понадобится, чтобы освоить реверс? Сейчас мидл на 1С, но ппц как надоела бухгалтерия, торговля, ERP((( Владею С++ на уровне - прочитал руководство на сайте метанит.
2) До сегодня хаотично читал статьи, гуглил, разбирался с патчером с гита от Wolf49406; Итог: каша в голове! Нужна roadmap, но ничего стоящего не нашёл. Какой план посоветуешь?
3) Сам не определился с целью... Если фан, то цена ~+100-300 часов обучения это дорого; коммерция не вариант, так как большая конкуренция - амбрела и тд; Можно создать, что-то прорывное, как мапхак в warcraft 3 ты видишь оппонентов в реальном времени сквозь туман, также можешь их селектить, это реализовывал ShadowFrench в 2003. Вкладываться в реверес (эти компетенции тяжело продать) или улучшать текущие компетенции в дб, скуль, веб - легко продать.
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
759
Реакции[?]
328
Поинты[?]
60K
Liberalist, благодарю за развёрнутый ответ; не знал, что точки останова бывают хардварными. Работаю программистом 1С, всё через абстракции, первый раз так глубоко пришлось капнуть. Теперь в раздумье...
1) Сколько времени понадобится, чтобы освоить реверс? Сейчас мидл на 1С, но ппц как надоела бухгалтерия, торговля, ERP((( Владею С++ на уровне - прочитал руководство на сайте метанит.
2) До сегодня хаотично читал статьи, гуглил, разбирался с патчером с гита от Wolf49406; Итог: каша в голове! Нужна roadmap, но ничего стоящего не нашёл. Какой план посоветуешь?
3) Сам не определился с целью... Если фан, то цена ~+100-300 часов обучения это дорого; коммерция не вариант, так как большая конкуренция - амбрела и тд; Можно создать, что-то прорывное, как мапхак в warcraft 3 ты видишь оппонентов в реальном времени сквозь туман, также можешь их селектить, это реализовывал ShadowFrench в 2003. Вкладываться в реверес (эти компетенции тяжело продать) или улучшать текущие компетенции в дб, скуль, веб - легко продать.
хз сколько времени у тебя уйдет. важно понимать что это всё разные темы и навыки. есть дебаггинг(он как и в обычном программировании так и в реверсе полезен), есть статический анализ, есть навыки использования определенных инструментов, есть навыки работы с определенными платформами(например десктоп версус мобильные платформы), есть разные наборы инструкций(например иа32(х86, т.е. 32 битные игры - сурс 1 движок например), амд64(64 битные игры - сурс 2(дота и тд))), есть разные ОС(виндовс линукс дарвин бсд). есть само программирование(обычно С или С++, т.к. эти языки предоставляют различные лоулевел инструменты)
все эти навыки в свою очередь могут быть развиты на разном уровне, например можно хорошо реверсить и хуево программировать с багами и тд, можно наоборот
на самом деле понимать особо много не нужно чтобы просто сделать что-то рабочее. вопрос лишь в качестве - больше знаешь лучше получается. в теории и хирург который еще даже не закончил обучение уже может оперировать, просто он будет делать это неидеально. так что я не скажу тебе точных цифр и какой нужен процент владения навыками чтобы делать что-то рабочее пусть и хуевое, скажу только что поверхностных знаний зачастую достаточно для тривиальных вещей; плюс конечно же зависит от того что ты уже знаешь
с обучением вопрос сложный - одна из проблем это нужность/ненужность знаний. если ты начнешь читать все подряд то можешь начитаться лишнего(хуже не станет но тем не менее). я предпочитаю по мере надобности информацию искать(т.е. конкретно обучаться по конкретным темам в конкретные моменты), однако при такой форме обучения нет особо никакой систематизации. ну как я сказал вопрос сложный сам решай что лучше. можешь искать курсы туториалы гайды общего характера, можешь специфичного характера, система образования штука непростая, не смею тебе ничего советовать. гугли чекай форумы(unknowncheats и тд) спрашивай на форумах читай гайды спрашивай людей; впринципе особо сложного ничего нет все есть в интернете все можно спросить у других
по поводу перспектив коммерциализации это ты у других людей поспрашивай, для меня это хобби
 
Сверху Снизу