在Kali 2020.1中尝试wordlist生成器crunch时,我发现了以下行为:
root@kali:/home/kali# crunch 10 10 \
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.-:! -o chars.txt
Crunch will now generate the following amount of data: 1604471776359824323 bytes
1530143524513 MB
1494280785 GB
1459258 TB
1425 PB
Crunch will now generate the following number of lines: 1822837804551761449
root@kali:/home/kali# crunch 10 10 \
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890,.-: -o chars.txt
Crunch will now generate the following amount of data: 17251705690018753536 bytes
16452508630770 MB
16066902959 GB
15690334 TB
15322 PB
Crunch will now generate the following number of lines: 1568336880910795776为什么去掉感叹号会将计算出来的单词列表大小放大到15322 if,而不是1425 if呢?
对我来说,这看起来很像代码中的一个bug。
发布于 2020-04-12 10:49:29
crunch将预期的字节数计算为64位整数.当您查看底部输出的字节数时,可以看到它是17251705690018753536,这是一个相当大的数字。
事实上,如果取log_2(17251705690018753536),我们得到63.9.,这意味着它非常接近64位溢出点,也就是18446744073709551615。通过向单词列表中添加更多的字符,数字变得太大,无法处理,它就会翻过来。任何后续的输出计数都将是无用和任意的。
但为什么这不成问题?简单地说,因为没有人会把单词列表写得这么大。能修好吗?是的,压缩可以使用128位整数,但它并不能真正解决任何现实问题。https://security.stackexchange.com/questions/229686
复制相似问题