2011-04-19 85 views
0

我在Windows下使用OLLdbg练习反转技能。当可执行文件正在运行时跟踪数据流

有一个询问你输入的交互式窗口,比如说“序列号”。我的问题是,当用户在窗口上操作时,很难在调试器窗口中找到相关的数据流。例如,如果我点击“F9”,我们可以查看指令流程;但是当在窗口上输入时,我不知道哪些指令已经执行。

我的目标是找到一些跳转指令并进行更改,这样我就可以绕过正确的输入要求。我认为指令应该非常接近与arg#相关的指令,并且与TEST指令相关。

寻找提示或技巧。谢谢。

回答

1

您可以做的一件事是在文本字段中输入内容,然后使用应用程序(如Cheat Engine)来查找内存中这些字符的存储位置。然后,您可以在ollydbg中的第一个字符的地址上放置一个内存(在访问时)断点。然后按验证序列号的按钮。当指令访问这部分内存时,它会中断。您位于验证字符串的代码中。现在,您必须尝试了解代码正在执行哪些操作以找到要更改的指令。

取决于应用程序的安全性,这将起作用。对于更安全的应用程序,这很可能不起作用。当你刚刚开始逆向工程时,我建议你找一些简单的应用程序来破解并为更安全的应用程序工作。一个网站,你可以找到许多这些“crackmes”是crackmes.de。我也可以推荐lene151的教程here。我在反向工程中看到的一些最好的教程。

+0

该链接非常有帮助。 – SecureFish 2011-04-25 22:17:43

+0

该链接非常有帮助。在“GetWindowTextA”上设置一个BP,我可以登录注册方案代码。但是,看起来这个方案有点复杂,涉及大约三百条指令。我可以读取一些有价值的信息,例如我的输入序列号是Arg2,并且有“猜测的Arg1”。另外,我觉得指令:CMP DWORD PTR SS:[],DCBAABCD; JNE 7707003B0(不采取跳跃)是我可能工作的要点。需要更多时间来澄清整个计划并找出解决方案。 – SecureFish 2011-04-25 22:30:25