好吧,您的开头是:“我见过可以设置玩家健康和产生汽车等游戏的训练师。我想做类似的东西。”
这是一个非常好的参考代码,可以完成您在 C++ 中谈到的内容
http://www.codeproject.com/Articles/7468/Game-Wizard
首先加强你的 C++ 技能,然后研究他在那里做什么。
一般描述是“受害者”进程内存正在搜索某个值。通常代表你知道的值的东西 - 例如,你角色的子弹数。通常首先会找到内存中位置的大列表。但是随后,您射出一颗子弹,现在您之前找到的列表(而且只有它!)正在搜索新值。每一步都会丢弃“误报”发现,直到最后您知道您搜索的变量的位置。完成此操作后,您也可以更改它。
现在,转到一般主题 - 这种技术只是一种特定的方法,虽然在某些情况下非常有用,但很多时候您需要更强大和不同的工具。
这是一个非常相似的问题:如何在内存中找到代表 Minesweeper 的排雷布局的数据结构?
我个人认为 IDA 是逆向工程和分析应用程序(静态和动态)的绝佳工具。与“idapython”(python 的 ida 绑定)结合使用,感觉势不可挡:)
逆向工程要求您至少具备目标机器架构的基本知识——例如 x86 指令。
搜索 IDA 教程以掌握它。周围有很多“crackme”,它们是破解(出于教育目的)不同类型的应用程序保护的挑战。它会教给你很多东西。
你也可以在谷歌上搜索“初学者的逆向工程”。网络上有大量关于这个主题的资源。信息量起初可能令人生畏,因此请确保您找到一个可以帮助您逐步建立技能的基本网站。
您应该知道的另一个重要术语是“挂钩”。虽然自己制作会教给您最多的东西,但有些库可以为您执行此操作。这个想法是为了控制某个功能。每当有人调用该函数时,首先将控件传递给您的代码,然后您可以决定要做什么。例如,您可以决定将此调用简单地记录到文件并调用原始函数,或者您可以做更复杂的事情。
我发现http://tuts4you.com/包含许多有用的教程和信息片段。
哦,正如人们所说,在这种情况下,Java 不是你的朋友。C/C++/Assembly 可能是。
开始一个全新的话题,尤其是逆向工程,一开始是很棘手的,但我可以向你保证,这是非常有益的。
编辑:我给你一个惊喜:
http ://www.uninformed.org/?v=1&a=7
我只是在谷歌上搜索了逆向工程教程扫雷器;)
祝你好运 :)