Undert4ker Опубликовано 7 августа, 2020 Поделиться Опубликовано 7 августа, 2020 Здравствуйте, написал некий чит для игры, но он детектится местным античитом, который работает по такому принципу: В БД заносится адрес и его значение при старте игры, а затем по циклу с задержкой проверяется указанный адрес и его значение, и если текущее значение адреса не соответствует значению с БД, то просто блок игры. Так вот, после предыстории, хочу спросить, можно ли как нибудь это обойти? Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 7 августа, 2020 Поделиться Опубликовано 7 августа, 2020 Стопудово можно. Но среди нас нет телепатов, поэтому как это сделать без описания действий и игры, скорее всего не получится рассказать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 7 августа, 2020 Автор Поделиться Опубликовано 7 августа, 2020 (изменено) 20 минут назад, Kvazimado сказал: Стопудово можно. Но среди нас нет телепатов, поэтому как это сделать без описания действий и игры, скорее всего не получится рассказать. На старте игры запускается цикл, вызывается функция, в которую помещается адрес и его значение, таких адресов там примерно 150 штук, каждый занесенный адрес отвечает за определенную функцию в игре, например выстрел\очки навыков\видимость на карте и так далее на все возможные адреса в игре, по которым можно сварганить чит. Цикл работает всю игру, и если изменить значение одного из адресов, тогда уже в функции вызываемой в цикле со значением адреса сработает проверка, Текущий адрес != переданному в функцию ранее, и блокировка игры. Мне нужно как то обойти эту проверку значения, но все что пытался - не помогло( Как то так этот античит выглядит: ... цикл... AddAddressToBaseData(0x1FAB65F4, 3454512) ... void AddAddressToBaseData(int address, int value){ //Читается текущая память процесса игры и сравниваются тек.значение и переданное в функцию } ... Изменено 7 августа, 2020 пользователем Undert4ker Ссылка на комментарий Поделиться на другие сайты Поделиться
KRYPTOPUNK Опубликовано 7 августа, 2020 Поделиться Опубликовано 7 августа, 2020 Ну так занопь функцию, я не знаю, или перехвати её со своими аргументами Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 8 августа, 2020 Автор Поделиться Опубликовано 8 августа, 2020 17 часов назад, KRYPTOPUNK сказал: Ну так занопь функцию, я не знаю, или перехвати её со своими аргументами Если бы все было так просто, я бы не задавал вопрос) Самый разумный вариант - как то перенаправить чтение из нужных адресов этой самой функции античита на что то другое, или подменить значение читаемого адреса на первоначальный паралельно с его изменением на нужное мне значение, сложновато на деле( Ссылка на комментарий Поделиться на другие сайты Поделиться
KRYPTOPUNK Опубликовано 8 августа, 2020 Поделиться Опубликовано 8 августа, 2020 Ну так ты этого не сделаешь без хука самой функции все равно, намного проще сделать как я сказал, передавать в функцию аргументы нужные тебе, если и правда так античит работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 8 августа, 2020 Автор Поделиться Опубликовано 8 августа, 2020 (изменено) 5 часов назад, KRYPTOPUNK сказал: Ну так ты этого не сделаешь без хука самой функции все равно, намного проще сделать как я сказал, передавать в функцию аргументы нужные тебе, если и правда так античит работает. Антихак находиться во временном пространстве памяти каждый раз при его инициализации, его функции обращаются по ссылкам в память на спец. функции движка, которые в свою очередь делают запись в последующие указанные адреса в антихаке, следовательно, имею лишь 1 адрес, который точно вызывается антихаком, но так же он вызывается для большого кол-ва других операций, значит занопить не выйдет. А как перехватить в этой функции нужный вызов из временного пространства и подменить значение - я не совсем понимаю, был бы признателен за пример Изменено 8 августа, 2020 пользователем Undert4ker Ссылка на комментарий Поделиться на другие сайты Поделиться
KRYPTOPUNK Опубликовано 8 августа, 2020 Поделиться Опубликовано 8 августа, 2020 3 часа назад, Undert4ker сказал: Антихак находиться во временном пространстве памяти Не совсем понимаю, что значит временное пространство памяти. А так, реверсишь антихак, ищешь эту функцию, выясняешь соглашение о вызове этой функции и аргументы этой функции, и, собственно, перехватываешь. Как перехватывать есть информация в интернете и на форуме. Так же, ты можешь проследить, откуда эта функция вызывается, и если для этой функции есть обертка, то можешь перехватывать обертку, это на твоё усмотрение. Можешь кстати сказать название игры, может гляну на досуге. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 9 августа, 2020 Автор Поделиться Опубликовано 9 августа, 2020 11 часов назад, KRYPTOPUNK сказал: Не совсем понимаю, что значит временное пространство памяти. Адрес динамический, постоянно Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения