【发布时间】:2014-03-24 07:58:18
【问题描述】:
我最近又开始学习倒车,但在使用 OllyDBG 时遇到了问题。在调试具有每个按钮执行不同操作的按钮的 EXE 时,我似乎找不到遵循特定按钮代码的方法。
例如:我有一个带有 3 个按钮的 KeygenMe:“登录”、“关于”、“退出”。 我希望 OllyDbg 跟踪我按下“登录”按钮时发生的情况。
我该怎么做?我知道这是可能的,因为我以前做过。
【问题讨论】:
标签: reverse-engineering ollydbg
我最近又开始学习倒车,但在使用 OllyDBG 时遇到了问题。在调试具有每个按钮执行不同操作的按钮的 EXE 时,我似乎找不到遵循特定按钮代码的方法。
例如:我有一个带有 3 个按钮的 KeygenMe:“登录”、“关于”、“退出”。 我希望 OllyDbg 跟踪我按下“登录”按钮时发生的情况。
我该怎么做?我知道这是可能的,因为我以前做过。
【问题讨论】:
标签: reverse-engineering ollydbg
当程序从函数返回时,您可以通过要求 olly 停止来跟随按钮。 这样做:
Ctrol+F9
Olly 将在按钮功能返回时停止。
有时 olly 可能会像在 user32.dll 中那样停在离你想去的地方有点远的地方,所以你需要追溯你的方式。
您可以使用两种技术来做到这一点(我知道):
(着陆后使用一个)
使用追溯:
Ctrol+F11
或使用断点
(我两个都用,但有时第一个不起作用)
【讨论】:
我认为上面描述的方式是通用的,它应该适用于大多数情况。但是,如果您已经知道应用程序是在哪个编译器中构建的,则可以使用特定的方法,最终您可以更快、更准确地找到您要查找的内容。
假设您的 exe 不是使用 .NET 构建的,并且您无法轻松反编译它。有一些技巧。 例如,Delphi/C++ 构建器应用程序在二进制文件中创建一个包含公共对象事件和地址的表,解码它非常容易,实际上有一些 Olly 脚本可以做到这一点。 另一方面,如果它是用 Visual C 使用 MFC 或类似的东西制作的,如果你知道 MFC 是如何被调用的,那么你可以很容易地找到它。
【讨论】: