这样,您就可以将创建的DLL 插入到Rush Tetris 程序中并运行它。
DLL 中实现了什么?
我们需要在DLL中实现的是一组基于人工智能的俄罗斯机器人。假设引入了一个超级智能LIB。其次,DLL还需要方法来实现模拟控制。你还需要什么别的吗?您还需要知道当前块是什么,下一个块是什么,当前如何放置,以及您的对手可能会如何玩它。您可能还需要知道您放置了哪些道具以及您获得了哪些道具。
这些数据从哪里来?
图像识别会截取当前窗口的屏幕截图,并根据其X 和Y 坐标开始对其进行分析。通过图像识别方法,您可以获取当前块外观、您自己的放置外观以及块外观。你的对手。
这是一个好主意吗?
这是一个相对直观的解决方案,但每次您需要扫描、比较图像、检索数据时,您都会直观地想到,“这样不是更快吗?”有效率吗?假设你有这些数据,当然,你还能做什么呢?移动方块、使它们变形、掉落它们、使用道具等等。这个怎么做?它很简单,通过模拟鼠标和键盘按键进行操作。
你不觉得这是一个很好的计划吗?不,这样做的话,最多只能称其为武器,但离称其为神器还差得远呢!那么如何打造一件法宝呢?
分析你的记忆并从中找出你当前的方块、它的放置方式以及你的对手的样子。它解析程序,检索开发人员实现的行为函数,并调用该函数。在那之后?看起来好像很深奥,但是可能吗?
反向工具
在此,我们只向大家普及一下工具,不会一一进行demo,只是简单的介绍和说明。
静态分析工具IDA(Interactive Disassembler Professional),有时称为IDA Pro 或简称IDA,是总部位于比利时列日的Hex-Rayd 的产品。 IDA 是由一位名叫Ilfak Guilfanov 的编程天才开发的。十年前IDA 推出时,它是一个基于控制台的MS-DOS 应用程序。这很重要,因为它可以帮助您了解IDA 用户界面的本质。除此之外,IDA 的非Windows 和非GUI 版本继续使用源自原始DOS 版本的控制台风格界面。
动态调试工具包括OD(OllyDBG)和Windbg。 这两种调试器都可以用来调试应用层程序。 OD 主要用于逆向工程,是大多数操作的首选,因为窗口布局更加精简和直观。命令,但有时会使用windbg,因为它的各种命令(内置、元和扩展命令)提供了强大的控制和分析功能。如果你想调试内核程序或模块,OD是你唯一的选择。以前有Softice,但是Softice已经停止更新和支持,不再有用了。
PEid是一个shell检测工具,但实际结果仍然是该工具加上自己的分析。要破坏shell,请尝试手动运行它。二进制编辑工具UltraEdit、Hex Workshop、WinHex、比较工具Beyond Compare。网络数据包捕获和分析工具Wireshark和Iris。文件和注册表监控工具Process Monitor。最后,虚拟机只是一个虚拟机。
开始向后移动
一旦你拥有了工具,你就可以开始对俄罗斯进行逆向工程了。逆向工程是一个复杂而乏味的过程。会有无数的试验、代码分析、逻辑分析。如果您正在分析游戏,并且您是游戏开发人员,您可能会有更广泛的想法并了解开发人员通常的思考方式。那么我们从哪里开始玩这个游戏呢?
使用OD安装俄罗斯方块并找到关键点。这里的关键点是游戏初始化。
从正常开发的角度来看,数据通常会在初始化期间被清除。块样式可以从网络或本地分配。而从这里开始,我很快就找到了一些内存地址。从这些地址中,您可以获取当前块的样式,预测下一个块的样式,或者获取当前放置的游戏池的样式。然后立即寻找一个可以控制动作的地方。我很快从钥匙中获取信息,找到了它。
在其中,对于每个丢弃的块,您可以在OD 中看到其内存样式。红色块是变化的数据。哪些数据发生了变化?这是定位后的块。数字代表了区块的颜色,也可以称为区块的风格。您可以在图中检查内存中的分布。
然后通过将DLL 注入到进程中来创建插件。该图显示了该插件的工作原理。
其中,AUTO的意思是预测接下来几个区块的风格并自动开始游戏。测试结果还不错。
完成的?
其实,这背后还有很多深奥的谜团。我只是一个初学者。目前的大多数计划都有一些额外的措施。并在我自己的程序中添加了一些外壳。
如今,大家对安全的关注度越来越高,公司的安全逆向工程团队通常也会分析病毒样本,保护公司的产品。这是一个广阔而有深度的世界,非常有趣,也充满挑战。因此,我们希望本文的简单介绍能够带您进入这个神奇的境界。
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/645242.html