1st Опубликовано 14 января, 2022 Поделиться Опубликовано 14 января, 2022 Здравствуйте, с чит энджин познакомился сравнительно недавно. Очень заинтересовался им узнав о его возможностях. Научился находить поинтеры. Ищу значение, затем выполняю pointer scan, выгружаю игру, снова ищу значения и отсеиваю по новому адресу и так в цикле пока не доберусь до нужных результатов. С 4-байтовыми значениями в памяти проблем нет, так же с float, но когда дело доходит до получения поинтеров с 1-байтовыми и 2-байтовыми значениями начинаются приколы: любо после отсеивания я получаю 0 результатов, либо когда сканирую получаю смещение в 1 байт и значение уже совершенно другое в таблице указателей. Я разумеется гуглил, читал, но так нифига и не понял, что я делаю не так. Может подкрутить настройки при поиске какие-то нужно? Всем кто поможет, от меня огромный респект. Ссылка на комментарий Поделиться на другие сайты Поделиться
1st Опубликовано 14 января, 2022 Автор Поделиться Опубликовано 14 января, 2022 Хочу еще добавить. Не на 1 байт смещение, это я оговорился, а на 2 байта. Вот пример: ["game.exe"+00298B70]+476 это руками я уже поправил А в таблице найденных поинтеров было ["game.exe"+00298B70]+474 при поиске 1-байтовых значений Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 15 января, 2022 Поделиться Опубликовано 15 января, 2022 Автоматизированный поиск указателей - плохая идея. Есть другие способы, типа реверсивного поиска, используй их. Ссылка на комментарий Поделиться на другие сайты Поделиться
1st Опубликовано 15 января, 2022 Автор Поделиться Опубликовано 15 января, 2022 Xipho, благодарю за ответ. Но я хочу освоить все методы и хочу знать все нюансы, почему так происходит. Двигаюсь от простого к сложному. И в ненадежности вообще поинтеров я уже тоже осведомлен, но пока еще ни разу не сталкивался, чтобы какой-то из них не работал на другой машине Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 15 января, 2022 Поделиться Опубликовано 15 января, 2022 Не помню как там ищутся указатели в СЕ, но что если искать четырех байтовое, а после нахождения, просто сменить тип, на 1 байт? Ссылка на комментарий Поделиться на другие сайты Поделиться
1st Опубликовано 15 января, 2022 Автор Поделиться Опубликовано 15 января, 2022 17 минут назад, Antonshka сказал: Не помню как там ищутся указатели в СЕ, но что если искать четырех байтовое, а после нахождения, просто сменить тип, на 1 байт? Спасибо. Конечно меняю, но это влияет только на отображаемое значение. Кстати при отсеивании по новому значению (не по новому адресу) в списке указателей стоит только 4 байт, float и double Ссылка на комментарий Поделиться на другие сайты Поделиться
Antonshka Опубликовано 15 января, 2022 Поделиться Опубликовано 15 января, 2022 17 минут назад, 1st сказал: Спасибо. Конечно меняю, но это влияет только на отображаемое значение. Кстати при отсеивании по новому значению (не по новому адресу) в списке указателей стоит только 4 байт, float и double Кажется я не так выразился, и ты меня не понял. Вот пример - есть адрес, 0041A510. Его можно использовать как для 1 байтового значения, так и для четырех, смотря на выставленный тип. Когда ты делаешь сканирование, сканируй значение этого адреса как 4 байтовое, а затем, когда уже добавишь верный указатель в таблицу, выстави его на 1 байт. Также, если у тебя адрес не выравнен по четырем байтам, то есть не 0041A510, а 0041A511, или 0041A512. То сканируй значение выравненного адреса, то есть значение адреса 0041A510, или 0041A514. Затем, в конце, просто сместишь указатель на один, два, или три байта. Ссылка на комментарий Поделиться на другие сайты Поделиться
1st Опубликовано 15 января, 2022 Автор Поделиться Опубликовано 15 января, 2022 21 минуту назад, Antonshka сказал: Кажется я не так выразился, и ты меня не понял. Вот пример - есть адрес, 0041A510. Его можно использовать как для 1 байтового значения, так и для четырех, смотря на выставленный тип. Когда ты делаешь сканирование, сканируй значение этого адреса как 4 байтовое, а затем, когда уже добавишь верный указатель в таблицу, выстави его на 1 байт. Также, если у тебя адрес не выравнен по четырем байтам, то есть не 0041A510, а 0041A511, или 0041A512. То сканируй значение выравненного адреса, то есть значение адреса 0041A510, или 0041A514. Затем, в конце, просто сместишь указатель на один, два, или три байта. Вооот, это уже интересно. Про выравнивание. Сейчас буду пробовать. Спасибо) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения