我正在尝试找到一种可以在购买家具时将家具放在地面上并单击该点的功能。

使用作弊引擎查找货币地址
看看哪些区域写入该地址
回溯函数调用并设置断点

我设法回溯了调用次数足以使断点不再通过卖回该物品而触发,而只需将其放在地面上即可触发。通过查看参数,我确定这仍然不是我要查找的功能,因为参数不会根据放置在地面上的项目而改变。

我试图回溯更多,但随后我最终获得了一个似乎一直在主游戏循环(?)中运行的函数。

是否有更好的方法可以实现这一目标?如我所做的?我通常通过使用作弊引擎搜索地址,然后切换到ollydbg进行跟踪来进行工作。甚至为此找到一个切入点,我应该如何尝试?

评论

你为什么这么“回溯”?如果断点不再触发,则您很可能走得太远。我想说的是,在执行操作时实际触发的最后一个调用是对函数的最佳猜测。关于键盘事件的入口点,查看导入的功能并检查与键盘事件相关的功能可能是一个不错的开始。

#1 楼

一些提示/想法,因为他们在流动,很抱歉。也许我稍后再解决。

一般提示:

如果您尝试更高级的操作然后更改值,则CheatEngine(和调试)可能不是此任务IMHO的最佳工具。他们会很好地提供额外的信息并验证您的假设(如果做对了,您将有成千上万的假设),但不是主要工具。
一旦发现一些相关功能,最好还是全面逆转游戏的这些部分。也就是说,启动IDA并像地狱一样记录文件。

我将从为包含金钱的对象创建一个结构开始,尝试花费一些时间查找该结构的其他低空挂件以及其大小(只是假设您看到的成员,然后
每当您看到一个会员时,您都不知道其目的是什么,请给它一个最好的信息性名称(如果您不介意的话,则为mFunc405020)或相关评论。您会惊讶于第三次遇到成员时如何轻松地命名成员。

方法也是如此。找到一些成员之后,就像您为成员所做的那样去使用方法。从构造函数和继承树开始,它们提供了大量信息,并且相对容易找到。绘制继承图并重命名函数并相应地创建结构。
使用构造函数查找结构的更多实例,它们将为您提供更多信息。

如果/当您发现要反转错误的结构时,不要害怕为了找到更有趣的结构而放弃它,或者去寻找另一个结构。

找到对象的特定技巧:

由于您要创建特定的对象(可能会有自己的类),因此需要经常切换对象并使用调试/作弊引擎来验证您找到了相关的构造函数。

我什至花更少的时间在成员/方法上,大部分时间在构造函数和析构函数上。当您映射继承树时,您可以轻松找到专门为您的对象调用的构造函数。

编辑:您可能还会发现我的旧答案对丹尼尔·菲利佩(Daniel Filipe)题为“如何使用作弊引擎查找实体/敌人数组指针”的问题很有帮助。