Ollydbg条件

发布于 2024-08-13 14:37:44 字数 54 浏览 6 评论 0原文

当其中一个寄存器包含某个字符串时,我需要 Ollydbg 暂停。我有什么办法可以做到这一点吗?

I need Ollydbg to pause when one of the registers contains a certain string. Any way I could accomplish that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

_畞蕅 2024-08-20 14:37:44

我不太明白你的意思。您根本无法将字符串加载到寄存器中:) 您可以在加载数据上设置断点。例如->你的值“祝你有美好的一天!”,在这个地址上设置一个BP。每次加载字符串时 Olly 都会断裂。否则我无法理解你的问题。

但这里仍然有一个小教程。

首先,我加载了我的pe文件并发现了一个字符串“GAMMA”,它是一个在线游戏的配置创建程序。

http://img7.imagebanana.com/img/hu6kg56k/findstr.png

现在让我们在转储中找到它。双击参考文献中的“GAMMA”,现在我们是 disasm 窗口,双击 PUSH 或跟随转储部分并转到字符串表达式。选择您的字符串并设置硬件bp,如下所示。

http://img7.imagebanana.com/img/pejyx72i/bp.png

按 F9 或 Olly 顶部的播放按钮,我们会在加载弦乐的第一个点处中断。当然,如果你想找到一个特定的地方,你就必须一步一步地一步一步,直到找到你的目标。

http://img6.imagebanana.com/img/f7w15fr6/hwbp1.png

编辑:

您可以使用 F7 跟踪代码以查看何时从堆栈调用该字符串。

I dont understand you clearly. You cant load strings in a register at all :) You can set a breakpoint on the loading data. for example -> your value "Have a nice day!", set a BP on this adress. Olly will break everytime the string is loaded. Else I cant understand your question.

But still here a little tutorial.

First I loaded my pe file and found a string "GAMMA" its a configuration creation programm for a onlinegame.

http://img7.imagebanana.com/img/hu6kg56k/findstr.png

Now lets find it in the Dump. Doubleclick on "GAMMA" in the references, now we are it the disasm window, doubleclick the PUSH or follow in dump section and goto string expression. Select Your string and set a hardwarebp like below.

http://img7.imagebanana.com/img/pejyx72i/bp.png

Hit F9 or the play button at the top of Olly and we break at the first point where our string is loaded. Sure if you want to find a specific place you have to step and step again until you find your point.

http://img6.imagebanana.com/img/f7w15fr6/hwbp1.png

EDIT:

You may trace the code with F7 to see when the string is called from the stack.

醉生梦死 2024-08-20 14:37:44

您使用的是哪个版本的 OllyDbg?
你试过2.0版本吗?它有一些可能对您有帮助的条件检查(尽管我不确定 OllyDbg 是否可以监视特定寄存器)。

跟踪 ->设置条件...

What version of OllyDbg are you using?
Have you tried version 2.0? It has some condition checking that may help you (although I'm not sure if OllyDbg can watch a specific register).

Trace -> Set condition...

洛阳烟雨空心柳 2024-08-20 14:37:44

尝试 OllyStepNSearch
它为您提供了一种简单的方法,可以在寄存器之一具有特定字符串时停止调试

Try OllyStepNSearch
It gives you a simple way to make debugging stop when one of the register has a specific string

帅冕 2024-08-20 14:37:44

右键单击您的代码并选择

搜索 >所有模块间调用都会

查找 RegQueryValueEx 或 RegCreateKeyEx 函数。它们位于 Advapi32.dll 中,

您应该知道要写入哪个参数设置字符串。

看这里: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms724875%28v=vs.85%29.aspx

right click on your code and select

search for > All intermodular calls

look for RegQueryValueEx or RegCreateKeyEx functions. they are in Advapi32.dll

you should know which parameter set an string to write.

look here: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724875%28v=vs.85%29.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文