gpt4 book ai didi

c++ - 有没有可能不用暴力破解这个方程式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:07 34 4
gpt4 key购买 nike

是的,所以我正在尝试从 crackmes.de 注册这个程序 http://crackmes.de/users/lutio/keygenme1_by_lutio/

我不是要别人为我做这件事,我只是问是否可以不用暴力破解。

我通常不会遇到这样的事情,但出于某种原因,这个用户没有使用用户名中的任何变量,只使用了序列号。他还说不允许暴力破解他的注册机。我相信没有暴力破解是不可能解决的。

有人真的知道是否可以不用暴力破解来解决问题吗?这基本上是我的代码:

    unsigned int key = 0x1FE339E4; //compute == this for success

unsigned int serialvar = unknown; //gennerated according to serial
unsigned int magic1 = 0x1FE339E7;

for( int i = 0; i < 0x10; i++ ) {

serialvar = (((magic1 * i + serialvar) << 0x10) ^ serialvar) + 0x13371337;
serialvar = (((i * magic1 + serialvar) >> 0x10) ^ serialvar) + 0x73317331;

}



unsigned int computed = 0;

for( int i = 0; i < serialvar; i++ ) {
computed += 0x3C;
}

是的,所以在代码的末尾,为了成功并命中“goodboy”,我们计算的 unsigned int 必须等于 key。

正如我们所知,“serialvar”是我必须生成的未知变量。 (然后我将根据其生成一个序列)

以我的数学和 bool 代数水平,我相信这个方程是不可能求解的。

现在我不确定这个数学陈述是否正确...但是如果我用 key 除以 0x3C...我得不到整数!

这不是意味着无法解决吗?既然key/0x3C没有整数解?

最佳答案

如果我理解正确的话,你有 computed 的最终值并且你想知道 unknown 的值...

首先你必须解方程:

计算 = serialvar x 0x3C (mod 2^32)

您可能会得到 serialvar 的多个值。

之后你必须反转 16 次循环..

我没有看到任何简单的方法来解决 (((i * magic1 + serialvar) >> 0x10) ^ serialvar)serialvar 的其他表达式.serialvar 的前 16 位没有改变,因为 >>> 将使它与零进行异或运算。下半部分可以通过预先计算的数组来计算。可能会有多个解决方案(这是很有可能的)并且您的计算将会 split 。第二个表达式与 bottom half 相同。

这样总的计算开销将类似于暴力破解。

关于c++ - 有没有可能不用暴力破解这个方程式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866883/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com