首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从大量序列号和激活密钥生成激活密钥

从大量序列号和激活密钥生成激活密钥
EN

Stack Overflow用户
提问于 2012-08-16 04:12:49
回答 2查看 2.6K关注 0票数 2

我有一些旧软件的序列号和相应的激活密钥。自从最初安装它们以来,我已经丢失了一些激活密钥(但仍然有序列号)。我仍然有一个大约20个密钥的数据集,即使是看着它,我也能告诉你,在确定激活密钥时,有一种疯狂的方法。考虑到我的大数据集,有没有一种方法可以反向解算出我丢失的信息的激活密钥。

序列号: 14051激活密钥示例: E9E9F-9993432-45543

EN

回答 2

Stack Overflow用户

发布于 2012-08-16 04:34:36

您要做的是想出一个将序列号映射到激活键的函数。在不了解函数本质的情况下,这可能是非常简单的(一个只有几个项的多项式),也可能是非常困难的(一个涉及大量块XOR、替换表、复杂的键调度的多层函数,等等)。

如果您可以访问密钥验证器例程(例如,通过反汇编-这几乎总是违反商业软件的EULA),那么您就有了一个例程,该例程返回给定的激活密钥对于给定的序列号是否正确。如果这是通过计算序列号的激活密钥来完成的,那么您实际上就完成了。如果这是通过计算密钥上的反函数来完成的,那么您的任务就会稍微困难一些:您需要反转该函数来检索密钥派生算法,这可能不是那么容易。如果由于方案依赖于公钥加密,你最终不得不解决一些困难的数学问题(例如离散对数问题),那么你希望你处理的值足够小,以至于你可以在计算可行的时间内暴力破解或使用已知算法(例如Pollard的rho算法)。

在任何情况下,您都需要熟悉反汇编和调试,并希望没有反调试器措施。

否则,问题就难得多了--你需要做出一些有根据的猜测,并尝试它们(例如,通过尝试做多项式拟合),并希望得到最好的结果。由于可以适合任何一组输入和输出的不同可能函数种类繁多(在数学上无法计数,但在实践中受到源代码大小的限制),因此尝试对算法本身进行已知明文攻击通常是不可行的。

票数 1
EN

Stack Overflow用户

发布于 2012-08-16 04:25:21

这取决于这个计划最初有多愚蠢,但我猜这不太可能。没有固定的方法,但一般的领域与密码破解是相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11976541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档