在Windows中逆向工程二进制文件的最佳做法是什么?

时间:2010-09-03 06:29:17

标签: c++ reverse-engineering

就我而言,它是用c/c++写的,如果重要的话。

4 个答案:

答案 0 :(得分:8)

IDA摇滚。 IDA Disassembler

答案 1 :(得分:3)

大多数反转者仍然是大师。你应该首先问自己为什么我正在倒车?

我能想到几个主要原因。

  1. 您正试图在视频游戏中破解复制保护机制,盗版软件或作弊。
  2. 您在为防病毒公司工作,需要了解病毒或最新威胁。或者是政府试图阻止战争或间谍活动。
  3. 你正在开始编程,并且错误地通过修补来学习。
  4. 你是一个竞争对手,无法弄明白他们所做的事情(通常很小)。
  5. 在所有这些情况下,真正的目标很小(例如单个算法),即使代码量很大。

    #1 Hacking / Cracking / and Cheating

      

    实际上这很容易。你只需要打败多个反规避措施。没有被抓住。被捕的处罚很高。 DMCA违规,让CD KEY被禁止游戏,诉讼......任何好的调试器都可以。维基百科有一篇关于Windows调试器的好文章。有些是免费的,有些则不是。请务必启用所有反规避措施,并在禁用网络时进行黑客攻击。

    #2专业研究员

      

    很久以前他们问过你问过什么。

    #3初级程序员

      

    计算机编程不是因为这看起来很简单我会弄清楚类型......即使是最有经验的程序员也会在没有文档,示例和示例的情况下失败。至少,了解Windows API,文档位于MSDN.microsoft.com上。 这将教会您需要知道的内容

    #4竞争对手

      

    这是最受争议的逆向工程形式。您将需要有关系统中使用的API的广泛知识。在这种情况下,您需要了解一些Windows API。如果你不反转竞争对手的代码将是非常困难的。你所做的是弄清楚有根据的猜测程序必须使用哪种已知API来执行特定任务。

         

    例如,如果它在屏幕上打印一个消息框,请在Windows API上设置断点:MessageBoxW。然后查看callstack以查看代码在程序中的执行位置,然后退回代码(用你的大脑......)并找出你需要知道的内容。

    逆向工程需要数小时

    防病毒作者可能已经自动化了Windows API(可能需要)才能查找恶意代码中常见的内容。价格低于100美元的工具通常不是很自动化,所以你将大脑使用很多。

答案 2 :(得分:1)

你错过了一些原因, 好奇心学习如何在没有公开记录的情况下完成工作, 有时它的喜马拉雅山呼吸我们的书呆子,为什么这样做,因为它在那里, 和不信任的偏执狂,他们做对了吗,他们是否符合人口众多的道德规范? 你列出的所有内容可能更为常见,但遗憾的是。

这是一个很大的努力,但如果原因是学习,任何工具都很好,我绝对不是大师(我见过的一些人有这么快哦),但我发现如果你采取的方法,反编译,复制一个部分,实质上重写系统,同时存根尚未复制的调用,你可以反转设计并确定使用的算法。

答案 3 :(得分:0)

OllyDbg是与IDA一起在Windows上进行逆向工程的另一个免费工具。您可以从Tuts 4 You找到大量的教程和插件,脚本等两种工具(“Lena的新手翻转”系列是使用Olly的一个很好的介绍)。

相关问题