【问题标题】:Is it possible to view strings in Memory using IDA just like I can in OllyDbg?是否可以像在 OllyDbg 中一样使用 IDA 查看内存中的字符串?
【发布时间】:2015-12-11 01:34:23
【问题描述】:

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

这当然没什么复​​杂的,永远不会在现实世界的应用程序中使用,但由于我几乎是组装和逆向工程的初学者,这有望为我提供良好的服务,因为我对如何了解内部工作原理有了更多的了解组装工作。

我的最终目标是分解我自己的注册方案,并确定它对于可能尝试破坏它的“外人”来说是多么容易,并且随着我变得更好,我希望让我的应用程序更强大,以抵御此类攻击.


在 OllyDbg 中,当设置断点并使用 F8 跳过时,我可以从内存堆栈中查看字符串,如下所示屏幕右下角:

正如您所看到的以绿色突出显示的那样,我在名称字段中输入了SOME NAME,在许可证密钥字段中输入了123456789,OllyDbg 已经设法在我假设的内存堆栈中显示了这一点。

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

【问题讨论】:

    标签: reverse-engineering ida ollydbg


    【解决方案1】:

    当您进行静态分析时,IDA 会更加有用。说到动态分析和动态调试,IDA可能不是我最喜欢的工具。

    要在 IDA 中查看用户名/密码,只需按 SHIFT + F12 或转到查看 -> 打开子视图 -> 字符串。

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

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

    【讨论】:

    • 非常感谢您的回答,我正在拔头发。我认为 OllyDbg 在这里可能会更好,因为我可以在每个断点步骤看到堆栈上内存中的字符串,而在 IDA 中它不像 OllyDbg 那样简单或有用。
    • 使用 IDA 进行静态分析、反编译(HexRays 是完美的)、异常二进制文件分析(IDA 支持几乎所有类型的二进制文件)、固件分析等这些类型的工作。如果您只想将调试器附加到 EXE/DLL 并进行一些动态分析,我会使用 OllyDbg。在没有 Olly 的情况下,IDA 会变得很方便,比如在 Linux 二进制分析、android 二进制分析、固件分析、MBR 分析等方面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多