是否可以像我在 OllyDbg 中那样使用 IDA 查看内存中的字符串?

Is it possible to view strings in Memory using IDA just like I can in OllyDbg?

我编写了一个简单的注册程序,需要名称和许可证密钥才能获得成功消息。编码解决方案只是希望两个字段都区分大小写,名称字段必须是 Admin,许可证密钥必须是 TopSecret,两个字段必须匹配才能成功。

这当然并不复杂,永远不会在现实世界中使用汇编的工作原理。

我的最终目标是分解我自己的注册方案,并确定它对 "outsiders" 可能会尝试破坏它的人来说有多容易,随着我变得更好,我希望让我的应用程序更多对此类攻击的抵抗力更强。


在OllyDbg中,设置断点并使用F8单步执行时,我可以从内存堆栈中查看字符串,如下屏幕右下方所示:

如您所见,以绿色突出显示,我在“名称”字段中输入了 SOME NAME,在“许可证密钥”字段中输入了 123456789,OllyDbg 成功地显示了我所使用的内容假设是内存堆栈。

是否可以在 IDA 中执行此操作,如果可以,如何操作?我已经尝试打开尽可能多的子视图和调试子视图,但我看不到一种单步执行和监视内存中字符串的方法。 IDA中是否有内存堆栈window就像在OllyDbg中一样?

IDA 在做静态分析时更有用。说到动态分析和动态调试,可能IDA不是我最喜欢的工具。

要在 IDA 中查看 username/password,只需按 SHIFT + F12 或转到“查看”->“打开子视图”->“字符串”。

在那里你应该看到字符串。

如果您想在动态分析中执行此操作,请将断点放在您在 Ollydbg 中所做的完全相同的位置,然后查看堆栈视图。