我玩过使用作​​弊引擎之类的软件来修改内存,清空代码,甚至注入自己的一些代码。但是,找到合适的位置进行修改始终是一个难题。我希望能够识别在对象上单击鼠标时运行的代码(最终模拟整个过程)。

我过去曾经使用过ollydb和作弊引擎。

评论

这取决于用于构建游戏的框架。例如,unity3d游戏基于.net,因此应使用.net工具(反编译器/调试器/跟踪器/等)。可以使用Olly或Cheat Engine,但很困难。

请参阅突出显示IDA中执行的基本块

#1 楼



在Windows上您可以
找到winproc函数,在其中搜索单击消息并从此处添加断点/跟踪...。


在不同的OS上
跟踪鼠标处理程序...


如果使用OpenGL
对象选择通常是在渲染过程中直接由它完成的。您可以跟踪对使用的那些函数的调用。


如果使用了任何框架
了解鼠标具有什么功能并跟踪其调用...



#2 楼

在这些情况下(尽管不一定很简单),一种有效的方法是使用差异调试。

核心原理是两次运行应用程序并记录正在执行的函数的跟踪,甚至记录基本块(如果需要的话)需要变得如此细致。

这个想法可以归结为:


第一次记录跟踪时,请尝试行使尽可能多的功能,除了您感兴趣的(在您的情况下,请勿按该按钮!)。
第二次直接搜索感兴趣的内容时,请按下该按钮!
现在,您可以通过查找仅出现在第二条中的匹配项(而不是第二条中的匹配项)来滤除第二条迹线中的噪音第一个)

这不是一个完美的方法,但是在几种情况下可以缩小搜索范围。

无耻的插件:
这里是我的链接我在博客中讨论了类似的问题(本质上)。甚至还有一些旧代码可以帮助您入门。