如何使用 Ollydbg 禁用按钮单击?

逆向工程 ollydbg
2021-06-20 01:09:59

我正在尝试禁用游戏客户端的按钮。

我已经检查了有关如何为按钮消息设置断点的问题的答案

但是,单击按钮后,它会在特定行上中断,但是当我在此行上设置断点时,如果我再次尝试启动客户端,客户端会停止并继续返回到该行。

所以,我的问题是:

  1. 我如何找到使用最近与我断线的线路的电话或线路?
  2. 我是否正在以正确的方式找到按钮行并禁用它?
1个回答

您可能找到了正确的行 - 对话函数的开头,每当对话发生某些事情时就会调用该函数。

问题是,这个函数被调用了很多次;特别是,当 Windows 想要显示对话框时,它会向对话框发送 WM_PAINT 消息。这也会调用对话框函数,所以无论何时你告诉 Ollydbg 继续,并用 alt-tab 到你的游戏客户端,windows 会重绘对话框,它调用你的函数,触发你的断点。

您要做的是拆解并了解完整的功能。该函数应检查 WM_COMMAND (0x111) 的消息,然后检查按钮 ID 的 wParam 参数。查找在此特定情况下执行的装配线。然后,您可以开始更改内容 - 例如,如果这些行调用某个函数,则将函数调用替换为 NOP 以防止按钮执行它应该执行的操作。