【问题标题】:The simplest code hacking [closed]最简单的代码黑客[关闭]
【发布时间】:2009-10-01 12:49:00
【问题描述】:

我有以下代码:

#include <iostream>
#include <string>

void main()
{

    std::string str;
    std::cin>>str;

    if(str == "TheCorrectSerialNumber")
        std::cout<<"Hello world!!!"<<std::endl;
}

我需要一个反编译或反汇编工具,它可以帮助我通过执行以下列出的步骤找到“TheCorrectSerialNumber”。所以步骤是:

  1. 反编译或反汇编我的代码的可执行文件
  2. 运行 exe 并键入不正确的序列号,而是键入“AAA”之类的内容
  3. 找到我的“AAA”和正在比较的字符串,最后找出“TheCorrectSerialNumber”。

还请向我提供说明您建议的工具如何执行上述步骤。

非常感谢!!!

注意:对于那些倾向于认为我想破解某人密码的人!首先看看我在这个问题之前和之后提出的问题。我是一名程序员,我需要关注我的代码安全性。因此,我决定破解我的代码并对其他代码进行一些练习(在教授破解的网站上有一堆旨在破解的软件)以了解如何提供安全代码。如果您知道人们如何破解,您可能会创建比不知道的人更安全的代码。如果您要研究如何破解,则必须尝试。这就是我的观点!

【问题讨论】:

  • -1 听起来你想免费获取某人的代码...
  • 很少有串行密钥实现像您想象的那样天真。通常它们不是简单的字符串,而是经过算法的数字。可能没有“一个”正确的序列号;可能有数百万。因此,有效的密钥也不会存储在内存中。您的问题是在错误的前提下形成的。如果你使用暴力破解,你可能就在太阳熄灭时完成了。
  • @Patrick:“假设善意”发生了什么? @Gamecat:逆向工程在大多数国家并不违法,但在某些情况下,绕过版权保护在某些国家可能是非法的。
  • -1 不要要求软件开发人员帮助您免费获得他们的工作。
  • 假设善意真的很痛苦吗?在逆向工程社区中,创建 CrackMe's/ReverseMe's 是很常见的地方,这些小程序旨在为对低级编程感兴趣的人提供通过绕过串行密钥或保护来练习其技能的机会。而且我几乎不会声称“逆向工程在大多数国家都是非法的”(lwn.net/Articles/134642)

标签: c# c++ decompiling disassembly


【解决方案1】:

根据您使用的平台,您可以使用 GDB(Gnu 调试器)或 IDA Pro。

【讨论】:

  • 如果编译的代码不是为了调试而是为了发布,我该如何使用调试器。
  • 调试器不需要调试符号(这是调试版本提供的)。如果没有调试符号,则意味着您必须在汇编级别调试二进制文件,因为您没有关于源构造的信息。
  • IDA Pro 曾经有一个免费版本,如果你足够努力的话,它可能仍然可用,尽管它至少现在已经过时了 5 或 6 年。无论如何,IDA Pro 可以做很多事情来找出 API 调用名称和合理的参数名称,即使使用发布代码也是如此。当然,它可以通过调试构建做得更好......
  • 澄清一下 - 免费 版本必须是过时的,因为他们只提供了很短的时间。 AFAIK,完整的 IDA Pro 仍在积极开发中。
【解决方案2】:

我在 Windows 上的逆向工程方面没有太多经验,但是在逆向基本二进制文件方面,Lena's tutorials 可能是最好的起点。它将向您介绍在程序集级别分析二进制文件和修补它们的基础知识。我相信它主要利用ollydbg

【讨论】:

    【解决方案3】:

    要么你在做不道德的事情,要么你没有。无论哪种方式,您都需要一种称为调试器的东西,并且将为您的平台提供一个。

    调试器是一种工具,旨在通过附加到正在运行的代码片段并让您在运行时检查其状态来帮助调试程序。本质上,您可以查看代码的状态(何时运行等)并说明数据是否存在。毕竟它只是一个程序计数器和一些内存,还有一些寄存器让生活更轻松。

    【讨论】:

    • +1,不应该是负数。
    【解决方案4】:

    拆卸非常容易。 您需要 HIEW 和 W32DASM 工具或 OllyDbg(例如)。 只需看一些在 youtube 中使用此工具的示例(破解)。

    www.wasm.ru www.cracklab.ru

    非常有用的网站!!!!

    【讨论】:

      【解决方案5】:

      老兄 .. 对于这样微不足道的事情,只需在记事本中打开它,您就会发现您的“TheCorrectSerialNumber”.. 可能就在“Hello World!!!”旁边。

      【讨论】:

      • 不胜感激的评论......一如既往。
      【解决方案6】:

      gray hat python http://nostarch.com/images/ghpython_cov.png

      假设您没有做违法的事情。 我可以推荐用于逆向工程的灰帽书,特别是如果您已经精通 Python。

      【讨论】:

      • 但是如果我的帽子是蓝色的呢???
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-11
      • 2010-09-19
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2016-09-30
      • 2010-09-21
      相关资源
      最近更新 更多