【发布时间】: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”。所以步骤是:
- 反编译或反汇编我的代码的可执行文件
- 运行 exe 并键入不正确的序列号,而是键入“AAA”之类的内容
- 找到我的“AAA”和正在比较的字符串,最后找出“TheCorrectSerialNumber”。
还请向我提供说明您建议的工具如何执行上述步骤。
非常感谢!!!
注意:对于那些倾向于认为我想破解某人密码的人!首先看看我在这个问题之前和之后提出的问题。我是一名程序员,我需要关注我的代码安全性。因此,我决定破解我的代码并对其他代码进行一些练习(在教授破解的网站上有一堆旨在破解的软件)以了解如何提供安全代码。如果您知道人们如何破解,您可能会创建比不知道的人更安全的代码。如果您要研究如何破解,则必须尝试。这就是我的观点!
【问题讨论】:
-
-1 听起来你想免费获取某人的代码...
-
很少有串行密钥实现像您想象的那样天真。通常它们不是简单的字符串,而是经过算法的数字。可能没有“一个”正确的序列号;可能有数百万。因此,有效的密钥也不会存储在内存中。您的问题是在错误的前提下形成的。如果你使用暴力破解,你可能就在太阳熄灭时完成了。
-
@Patrick:“假设善意”发生了什么? @Gamecat:逆向工程在大多数国家并不违法,但在某些情况下,绕过版权保护在某些国家可能是非法的。
-
-1 不要要求软件开发人员帮助您免费获得他们的工作。
-
假设善意真的很痛苦吗?在逆向工程社区中,创建 CrackMe's/ReverseMe's 是很常见的地方,这些小程序旨在为对低级编程感兴趣的人提供通过绕过串行密钥或保护来练习其技能的机会。而且我几乎不会声称“逆向工程在大多数国家都是非法的”(lwn.net/Articles/134642)
标签: c# c++ decompiling disassembly