這個錯誤消息表明在初始化設備(如GPU)時,出現了內存不足的情況,導致OpenCL命令clEnqueueNDRangeKernel()發生了內存分配失敗 (CL_MEM_OBJECT_ALLOCATION_FAILURE)。這通常與GPU的可用內存不足有關,可能由于以下原因:
GPU顯存不足:你的GPU沒有足夠的顯存來處理Hashcat或其他工具要求的任務。例如,當你試圖破解一個非常大的哈希文件或使用了非常高的破解強度時,顯存需求會顯著增加。
其他進程占用了GPU內存:你的GPU上可能還有其他進程在運行,占用了大量的顯存,導致Hashcat無法分配足夠的內存。
GPU驅動問題:有時候,GPU驅動版本不兼容或存在Bug,可能導致內存管理的問題。更新驅動可能有助于解決這個問題。
內存分配限制:某些OpenCL實現可能有對單個內存分配的大小限制。如果你的任務需要的單個內存塊超過了這個限制,也會出現內存分配失敗。
降低攻擊參數:
減少批處理大小 (--workload-profile 或 -n 和 -u 參數) 以減少顯存占用。
使用較小的哈希列表或者拆分大文件成較小的部分運行。
關閉其他占用GPU的進程:
確認沒有其他進程在使用GPU。你可以使用任務管理器(Windows)或者nvidia-smi(Linux/Windows,針對NVIDIA GPU)來檢查當前顯存使用情況。
調整設備選擇:
通過使用-d參數來選擇不同的設備(如果有多個GPU)。
更新或重新安裝GPU驅動:
確保你的GPU驅動是最新版本的,尤其是在使用較新的GPU或者操作系統版本時。
使用較低的哈希算法模式:
使用較低的模式(如果適用)可能減少內存需求。
添加更多物理內存:
如果你有多張GPU,考慮增加物理內存或交換到內存更多的GPU上。
通過嘗試上述方法,你應該能夠找到一種適合的解決方案來處理內存不足的問題。