CRC32暴力,逆转,

时间:2015-08-18 12:23:46

标签: reverse-engineering brute-force crc32 cracking

对于互联网挑战,我需要尝试获取密码。但是目前我被卡住了。

将bigString的值设为crc32(bigString) == 0xFFFFFFFF的最佳方法是什么? (0xFFFFFFFF不是真正的价值,我想自己计算,而不是破坏其他尝试挑战的人的乐趣)

你已经知道的事情是bigString是3个密码的组合:password1(32个十六进制字符)+ password2(32个十六进制字符)+ password3(40个十六进制字符)。所以你知道bigString是104个字符长,只有可能的值" 0123456789ABCDEF"。

逆转是不可能的,只是暴力似乎几乎不可能,因为它有104个字符。还有什么其他可能性?

1 个答案:

答案 0 :(得分:2)

我不了解你的挑战,但我可以回答:

  

获取bigString值的最佳方法是什么?   crc32(bigString)== 0xFFFFFFFF?

首先,你应该意识到除非" bigString"只有32位,这个方程有多个解决方案。根据bigString中超过32位的位数,解决方案的数量随位数呈指数增长。

我的spoof.c代码直接解决了这个等式。您可以为它提供所需CRC的字符串的CRC,消息的长度以及允许更改的消息中的位位置。对于CRC- n ,需要至少提供 n 这样的位位置。理想情况下,应该提供更多,以增加找到解决方案的可能性。然后,spoof.c将告诉您哪些位要反转以提供所需的CRC。