Ну, ваше начальное предложение было следующим: «Я видел тренеров для игр, которые могут установить здоровье игрока и появления машин и т. Д. Я хочу сделать что-то похожее на это».
Вот очень хороший справочник код, который делает то, что вы говорили в C++ http://www.codeproject.com/Articles/7468/Game-Wizard
Сначала укрепить C++ навыки, а затем изучить то, что он там делает.
Общее описание состоит в том, что память процесса «жертва» выполняет поиск определенного значения. Обычно что-то, что представляет ценность, о которой вы знаете, например, количество пуль вашего персонажа. Обычно сначала открывается большой список местоположений в памяти. Но тогда вы стреляете в пулю, и теперь список, который вы ранее нашли (и только он!), Ищет новое значение. Каждый шаг отбрасывает «ложноположительные» находки, пока в конце вы не узнаете местоположение переменной, которую вы искали. После этого вы также можете изменить его.
Теперь, перейдя к общей теме - эта техника является лишь конкретным подходом, и в то же время очень полезна в некоторых случаях, вам нужны более сильные и разные инструменты.
Вот очень похожий вопрос: How can I find the data structure that represents mine layout of Minesweeper in memory?
Я лично считаю IDA быть удивительным инструментом для обратного проектирования и анализа приложения (статически и динамически). В сочетании с «idapython» (привязка ida для python) он чувствует себя неустойчивым :)
Для обратной инженерии требуется, по крайней мере, базовое знание архитектуры вашей целевой машины - например, инструкции x86.
Ищите учебники IDA, чтобы их повесить. Существует много плавающих «трещин», это проблемы для взлома (для образовательных целей) различных видов защиты приложений. Это научит вас многому.
Вы также можете найти google для «обратного проектирования для начинающих». В Интернете есть масса ресурсов на эту тему. Объем информации может быть пугающим сначала, поэтому убедитесь, что вы нашли базовый сайт, который поможет вам постепенно наращивать свои навыки.
Другим важным термином, который вы должны знать, является «зацепление». Если вы сами это сделаете, вы научите вас больше всего, есть библиотеки, которые выполняют эту операцию для вас. Идея состоит в том, чтобы получить контроль над определенной функцией. Всякий раз, когда кто-либо вызывает эту функцию, элемент управления сначала передается вашему коду, и вы можете решить, что делать. Например, вы можете просто зарегистрировать этот вызов в файле и вызвать исходную функцию, , или вы можете делать более сложные вещи.
Я нашел http://tuts4you.com/, чтобы содержать множество полезных уроков и фрагментов информации.
О, и, как говорят люди, Java не является вашим другом в этом случае. C/C++/Assembly, вероятно, есть.
Запуск совершенно новой темы, особенно обратное проектирование в начале, но я могу заверить, что это очень полезно.
Edit: У меня есть для вас сюрприз: http://www.uninformed.org/?v=1&a=7
я просто гугл обратных инженерного учебника тральщик;)
удачи :)
Java, безусловно, неправильным язык для этого. Удаление тега. –
Это гораздо более глубокое поле, чем вы ожидаете, на мой взгляд. Google Reverse Engineering. –