【问题标题】:Beginning Executable Hacking/Decompiling/Debugging开始可执行黑客/反编译/调试
【发布时间】:2011-05-21 05:18:30
【问题描述】:

我对 C#/Java 很熟悉,而且我对 C 和 C++ 相当了解。但是,我想更深入地挖掘并学习更多裸机的东西。例如,一个简单的 C++ 控制台程序:

int main()
{
    char *ptr = "helloworld";
    return 1;
}

我使用调试器(在删除 pdb 文件后)在 Visual Studio 中打开它,以单步执行程序集中的代码。我也在使用 HxD 十六进制编辑器来查看二进制文件。

显然,我还远远不能理解发生了什么。我想学习如何跟踪代码,因为它正在为我没有源代码的二进制文件执行(如果可能的话),或者尽可能多地了解这个主题。我理解使用源代码进行逐步调试,因为我每天在工作中都使用它,但没有它我很无助。

是否有针对此类事物的“基础”教程? 您可以推荐哪些工具/演练?

谢谢。

【问题讨论】:

    标签: debugging executable reverse-engineering decompiling


    【解决方案1】:

    如果你想更深入地看一下 Ollydbg 和一些逆向/破解教程。这肯定会很深入:) 你将了解这些东西是如何工作的 :) Reverse Engineering Team 是一个很好的起点。任何搜索引擎都会用正确的关键字为您提供很多东西。:)

    【讨论】:

      【解决方案2】:

      您至少需要了解汇编。我会练习编写一些(有些微不足道的)程序,以便掌握操作码、寄存器、堆栈使用等。

      http://en.wikibooks.org/wiki/X86_Assembly

      【讨论】:

      • 英特尔参考手册也非常有用。 OllyDbg 2 有一个集成的迷你汇编器文档,您可以使用它来快速获取有关您选择的命令的信息。
      【解决方案3】:

      书籍:

      1. 关于 Assembler - 根据您的喜好;
      2. 一些关于操作系统的书籍(Jeffrey Richter、Helen Custer、Matt Pietrek 仍然是真实的?)
      3. Knuth 的“计算机编程艺术”(不要问为什么)。
      4. Intels/AMD 有关其 proc 的文档(或者您要破解哪一个?)

      工具/软件:

      1. 软冰。
      2. IDA 专业版。
      3. HEX 编辑器(你说你已经有了)。
      4. DDK(现在称为 WDK - Windows Driver Kit)。
      5. 尽可能多的编译器 SDK。

      关注this guy

      我希望没有人会认真对待这个问题和这个答案:)

      【讨论】:

      • 谢谢...虽然我不确定你最后的陈述是什么意思。
      • @Trust 我在 6 年前来到 RE 并对此充满热情……我列出了我使用的工具。我更新了我的最后一个陈述,仅参考我的答案,抱歉:) 关键是它还有很长的路要走。 “黑客”有其令人惊叹的效果,但这是一项非常艰苦的工作......
      • 我不应该使用“黑客”这个词,因为它很容易被误解为“破解”——这不是我想做的。不过,您的回答很有帮助。
      【解决方案4】:

      我不知道为什么没有人提到 Lena 的逆向工程教程。
      我个人发现它们非常有帮助。你可以在这里找到他们www.tuts4you.com
      但是你需要了解一些基本的程序集,比如(jmp 等,寄存器),我不需要提到对编程的公平理解(我相信你有它)
      还有很多你可以处理的crackme提高自己。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-02
        • 2018-10-13
        • 1970-01-01
        • 1970-01-01
        • 2012-09-02
        • 2017-01-12
        相关资源
        最近更新 更多