2023-03-17 20:12:34
Wassup, сегодня познакомимся с реверс-инжинирингом Сразу скажу, в этой области я новичок, мне захотелось изучить и рассказать вам всё.
Как вы уже знаете, я начал играть и запускать трансляции (
чтобы разбавить контент).
Часть поста будет в другом канале t.me/saasnik с примером взлома игры, прошу обратить внимание.
Чтобы взломать игру, нам нужны знания Assembler'a. Когда мы запускаем игру, игра сохраняет информацию в оперативную память (
кол-во монет, урон и прочие механики) и обрабатывается процессором. Вся эта информация выдается на языке ассемблер.
В качестве дебагера, можно использовать
Ghidra, Cheat Engine, ну и
IDA.
Ghidra — это бесплатный инструмент обратного проектирования с открытым исходным кодом, разработанный Агентством национальной безопасности США.
DA Pro Disassembler — интерактивный дизассемблер, который широко используется для реверс-инжиниринга.
Cheat Engine — это проприетарный бесплатный сканер/отладчик памяти с исходным кодом, созданный Эриком Хейненом для операционной системы Windows.
Запускаем игру, запускаем отладчик и ищем нужные нам аргументы. Например, у нас 10.900
ХП. В поиске указываем кол-во
ХП, тип указываем
float. И нажимаем поиск, чтобы найти нужный адрес. Мы должны получить урон, прописывает новое число. Например 10.801 и жмем отсеять.
Допустим мы нашли адрес (
к примеру:
601F194С0). В Cheat Engine нажимаешь F5 и смотрим, какие адреса обращается к этому адресу. Дальше мы можем нажать вывести код и переписать его, либо выключить функцию, заменив всё на
NOP. В итоге, вы не будете получать урон, замечательно, правда? Тут конечно нужно понимать, что функция может влиять не только на ХП, но и на другие аспекты.
Переписывание функций на ассемблере и разбор огромного кода, это задача не из простых конечно. Но, если вы разбираетесь в ассемблере, для вас это не будет большой проблемой. Я мог бы тут описать пошаговые действия, но только на практике и с примерами, всё будет понятно. Многие онлайн игры синхронизируют данные с сервером, из-за чего создается ещё больше проблем. Вот тут нужно уже перехватывать сетевые пакеты. Есть много тонких нюансов, в пост все это не поместить.
Важное уточнение, я не собираюсь писать чит для игры, или ещё что-то подобное. Моя цель - взломать и обойти донатную систему, есть миллионы способов как это сделать. Ну и свободное время, я посвящаю изучению кода.
Хотелось бы конечно на трансляции взламывать разные игры, но это прям очень противозаконно. Таким точно нельзя заниматься, а жаль. Если тема интересна, может быть запищу для вас какое-то видео.
No Operation — инструкция процессора на языке ассемблера, или команда протокола, которая предписывает ничего не делать.
Если вы хотите более подробный гайд на примере, переходите в https://t.me/saasnik. Там будет продолжение поста.
Antichrist Blog & Andromeda, IT, APK, Music, Chat, Archive
4.9K viewsedited 17:12