You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Hashcat破解带盐哈希时如何修复OpenCL构建失败错误

修复Mac上Hashcat的OpenCL内核构建失败问题

我之前在2018款15英寸MacBook Pro上碰到过一模一样的问题,当时折腾了好几个小时才搞定,给你几个亲测有效的解决办法:

方法1:指定用CPU或Intel核显运行Hashcat

你的AMD显卡(设备3)出现了内核构建兼容问题,可以先绕开它,改用CPU或者Intel核显来运行:

  • 强制使用CPU:执行Hashcat命令时加上 -d 1 参数,比如:
    hashcat -d 1 -m 00010 your_hash:salt wordlist.txt
    
  • 改用Intel核显:加上 -d 2 参数,比如:
    hashcat -d 2 -m 00010 your_hash:salt wordlist.txt
    

方法2:升级Hashcat到最新版本

你当前用的是6.1.1版本,这个版本对MacOS(尤其是Big Sur及以后版本)的AMD显卡OpenCL支持有不少bug,升级到最新版大概率能解决:

  • 如果是用Homebrew安装的,直接在终端运行:
    brew update && brew upgrade hashcat
    
  • 升级完成后再尝试你的破解命令,新版本修复了很多Mac平台的兼容性问题

方法3:调整AMD显卡的内存分配上限

你的AMD显卡默认可分配内存是1024MB,可能不足以构建某些复杂内核,尝试放开内存限制:

  • 在终端先执行这条命令设置环境变量:
    export GPU_MAX_ALLOC_PERCENT=100
    
  • 然后再运行你的Hashcat破解命令,这会让Hashcat使用显卡的全部4GB可用内存

方法4:更新MacOS系统及显卡驱动

MacOS的自动更新有时候会漏掉显卡相关的补丁,手动检查更新能解决很多兼容问题:

  • 打开「系统设置」→「通用」→「软件更新」,检查是否有系统或显卡驱动的更新
  • 如果你的MacOS版本比较旧(比如Catalina),可以考虑升级到Monterey或Ventura(记得提前备份数据),新版本对AMD显卡的OpenCL支持更好

方法5:替换有问题的内核文件

如果以上方法都没用,可以手动替换那个失败的内核文件:

  • 找到Hashcat的内核目录:/usr/local/Cellar/hashcat/[你的版本号]/share/hashcat/OpenCL/
  • 从Hashcat的官方源码仓库下载最新的m00010_a0-pure.cl文件,替换掉本地的旧文件
  • 替换完成后重新运行Hashcat命令

内容的提问来源于stack exchange,提问作者Xuanwen Zhang

火山引擎 最新活动