问题标签 [ollydbg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
43019 浏览

reverse-engineering - 如何使用 OllyDbg 绕过 IsDebuggerPresent?

我真的不明白如何绕过 IsDebuggerPresent。我想我应该找到用于调试的寄存器,然后将其设置为 0 以欺骗 IsDebuggerPresent,但我不知道该怎么做。我尝试在 Google 上搜索,甚至尝试了一些解决方案,但它并没有真正适合我。有人可以向我解释这应该如何工作以及如何绕过它?

0 投票
1 回答
190 浏览

ollydbg - 同一类中的函数

ollydbg 中有没有一种方法可以让我找到一个类中的所有函数,比如如果我知道那个类的一个函数,我可以找到其他函数,比如

在 ollydbg 中,我知道在哪里休息,sum()但我不知道在哪里休息power(),有什么方法可以让我这样做吗?

0 投票
1 回答
684 浏览

debugging - 为什么在启动程序时单步执行每条指令都会崩溃?[调试]

我正在尝试在调试器(ollydbg)中遵循我用 C++ 编译的一个简单程序的执行指令(它计算一些素数然后退出),但我有几个问题:

  • 为什么第一条指令不是“CODE”部分的入口点?他们有区别
  • 一旦我“跳过”一些指令,调试器就会崩溃并写入“ntdll.someaddress 处的单步事件,按 shift+F7/F8/F9 将异常传递给程序”并崩溃。如果我在不执行指令的情况下运行程序,它可以正常工作并且程序加载没有问题

为什么会这样?这不仅发生在我的程序中,而且发生在其他几个程序中(我系统中几乎每隔一个 32 位 exe)

0 投票
2 回答
3827 浏览

assembly - 在 WinDbg 中编辑程序集

我一直在尝试使用 WinDbg解决一些“crackmes”(来自http://crackmes.de )。我看过的大多数解决方案都涉及使用 Olly Dbg 对程序集进行修改。有没有办法在 WinDbg 中做到这一点?

0 投票
1 回答
3464 浏览

search - 在 WinDBG 中搜索“所有引用的文本字符串”

在 Olly Dbg 中,有一个搜索“所有引用的文本字符串”的选项。有没有办法在 WinDBG 中做类似的事情?

到目前为止,我已经尝试了以下方法:

然而,这会返回大量垃圾。关于如何将其减少为更易于管理的字符串列表(以及可能引用它们的位置?)的任何想法,就像 Olly 所做的那样?

0 投票
1 回答
18688 浏览

windbg - 在 WinDBG 中手动设置断点

我正在尝试使用 WinDBG 检查可执行文件的程序集,但我很难找到它。我想在程序的第一条指令处设置断点,但是当我尝试手动执行此操作(使用模块的地址)时,WinDBG 告诉我它“无法在该位置插入断点”,因为“对内存位置的访问无效。”

我注意到,当我通过源代码 GUI 创建断点时,地址与模块的第一部分不同(在我的示例中:“Win32FileOpen”,我编写的一个简单程序。)是否有某种标题这需要在我的模块地址上添加一个偏移量?

在另一个 问题中,我看到了建议:“我会尝试将断点地址计算为:模块开始 + 代码开始 + 代码偏移”,但不确定从哪里获得这些值。有人可以详细说明一下吗?

我不只是使用源 GUI 的原因是我希望能够使用我可能没有源/符号的程序来执行此操作。

如果有更简单的方法可以立即开始使用我打开的可执行文件,请告诉我。(例如,打开一个 .exe Olly 会立即向我显示该 .exe 的程序集,搜索引用的字符串会为我提供该模块的结果等。WinDBG 似乎在 ntdll.dll 中让我开始,这对我来说通常没有用处。)

0 投票
3 回答
30920 浏览

windows - OllyDbg 在 Windows 7 x64 中不起作用

Windows 7 x64 和 OllyDbg 1.10

我刚开始学习调试技术,并尝试使用 OllyDbg 调试一个名为“crack_me.exe”的演示程序。但我遇到如下问题:

我在 'crack_me.exe' 中设置了一个断点并按 F9 运行程序,但 Windows 会提示一个对话框(我的操作系统是中文的):
让我崩溃

一般含义:
crack_me.exe 已停止工作。
Windows 可以连接到 Internet 并找到解决此问题的方法。

  • 连接到 Internet 以查找解决方案并关闭程序
  • 关闭程序
  • 调试程序

如果我选择第三个选项,那么 Windows 会说: 在此处输入图像描述

一般含义:
crack_me.exe 附加了调试器,但调试器未设置为调试未处理的异常。如果要调试此异常,则必须分离当前调试器。

我选择忽略所有异常 Ollydbg 设置,如下图所示: 在此处输入图像描述

我只想知道为什么会出现这个问题以及如何解决它。预计所有回复。谢谢你。


奇怪的是,今天这个问题再次发生,即使是同一个应用程序,crack_me.exe。这次我没有安装任何插件,但 Windows 仍然会提示 crash_me.exe(与其他应用程序相同)崩溃。为什么昨天Olly正常工作,今天又出现问题?

0 投票
1 回答
11274 浏览

assembly - 在这种情况下,OllyDbg 和 Assembler 中的 EBP+8 是什么意思?

我只是在 OllyDbg 中学习汇编和调试技能,以便学习如何使用未记录的函数。现在我遇到以下问题:

我有以下代码部分(来自 OllyDbg):

这是函数的开始,目标是找到数据结构。所以我发现它首先将 EBP 推入堆栈,然后将 ESP(当前堆栈指针)移动到 EBP,我认为它现在为函数定义了一个堆栈帧。现在教程说,在流行的布局中,第一个参数放在 [EBP+8] 处,第二个放在 [EBP+C] 处

这是我不明白的。我怎么知道第一个参数放在 EBP+8 ?

希望有人可以帮助我!谢谢!

0 投票
2 回答
574 浏览

debugging - 如何获取程序当前功能?

是否可以在汇编中使用 ollydbg 调试器程序来查找正在执行的程序当前函数?

这样做的原因是因为我创建的应用程序在特定时间以 70% 的计算机使用率运行,我想看看为什么会这样以及它做了什么来获得计算机使用率

我知道我可以使用源调试器,这会更容易,但在这种情况下,不幸的是我不能,需要使用像 ollydbg 这样的调试器来解决这个问题,怎么做?

0 投票
1 回答
698 浏览

debugging - 如何打破 ollydbg 调试器?

我真的是调试新手,调试不是我的强项,所以我不会让任何人感到困惑,我不是在问如何breakpoint使用 ollydbg 在程序中设置 a,但这个功能break有点类似于break在 Visual c++ 调试器中调试程序时可用,这在 ollydbg 中是否可用?

如果是那么我该怎么做呢?或者如果不是,那么我还能做些什么来模拟break使用 ollydbg WIN32 调试器的程序中的 a 吗?