我正在分析在指定时间段内破解的哈希值。我希望每10秒保存一次裂缝的当前状态。
'''
已恢复........:132659/296112(44.80%)消化液,0/1(0.00%)盐恢复/时间...:CUR:3636,N / A,N / A AVG:141703,8502198,204052756(Min,Hour,Day)进度.........:15287255040/768199139595(1.99%)
'''
我希望每10秒左右保存这3行状态。是否可以在hashcat中执行此操作,还是需要在python中制作一个单独的脚本?
除了Andrew Zick的答案,请注意,对于机器可读的status,hashcat对机器可读的输出具有本机支持-请参阅--machine-readable
选项。这样会产生制表符分隔的输出,如下所示:
STATUS 5 SPEED 111792 1000 EXEC_RUNTIME 0.007486 CURKU 1 PROGRESS 62 62 RECHASH 0 1 RECSALT 0 1 REJECTED 0 UTIL -1
STATUS 5 SPEED 14247323 1000 EXEC_RUNTIME 0.038953 CURKU 36 PROGRESS 2232 2232 RECHASH 0 1 RECSALT 0 1 REJECTED 0 UTIL -1
STATUS 5 SPEED 36929864 1000 EXEC_RUNTIME 1.661804 CURKU 1296 PROGRESS 80352 80352 RECHASH 0 1 RECSALT 0 1 REJECTED 0 UTIL -1
STATUS 5 SPEED 66538858 1000 EXEC_RUNTIME 3.237319 CURKU 46656 PROGRESS 28926722892672 RECHASH 0 1 RECSALT 0 1 REJECTED 0 UTIL -1
STATUS 5 SPEED 63562975 1000 EXEC_RUNTIME 3.480536 CURKU 1679616 PROGRESS 104136192 104136192 RECHASH 0 1 RECSALT 0 1 REJECTED 0 UTIL -1
...正是像Hashtopolis这样的工具用来为hashcat输出提供前端的工具。
对于机器可读的输出,--outfile
和--outfile-format
选项可用。有关Format
的选项,请参见hashcat --help
输出的--outfile-format
部分:
- [ Outfile Formats ] -
# | Format
===+========
1 | hash[:salt]
2 | plain
3 | hex_plain
4 | crack_pos
5 | timestamp absolute
6 | timestamp relative
您可以使用--status
启用状态打印,也可以使用--status-timer X
将状态设置为每X秒打印一次。您可以在hashcat options Wiki页面或hashcat --help
上看到这些命令行参数。
示例:hashcat -a 0 -m 0 example.hash example.dict --status --status-timer 10
我假设您只想保存运行时由hashcat打印的所有内容。一种简单的方法是将所有内容从stdout复制到文件中。这是一个受欢迎的S / O问题,因此我们只使用this answer。
为了安全起见,我们使用附加到文件的-a
,因此我们不会意外覆盖以前的运行。我们需要做的只是将| tee -a file.txt
放在我们的hashcat调用之后。
试一下,它应该将所有状态(以及所有其他东西,从标准输出)保存到output.txt
:
hashcat -a A -m M hashes.txt dictionary.txt --status --status-timer 10 | tee -a output.txt
只需将A,M,hashhes.txt和dictionary.txt替换为您使用的参数即可。
如果需要帮助,仅从此输出文件中获取“已恢复”行,或者这在您的计算机上不起作用(我在OSX上,请在注释中告诉我。