Benchmark give some results but crash in particular hashes
#1
Hi guys!
I am running the best/worst pentesting distro (yup, kal) and i knew from the start it would be an issue installing the drivers for my ati RX 470.
But well, long story short, i manage to install rocm with some fight, and when i tried to use it to crack some WPA2 hashes, i saw that it failed.
I tried to run the --benchmark to see what happens and i get this:

Code:
root@The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali):~# sudo hashcat --benchmark
hashcat (v5.1.0) starting in benchmark mode...

Benchmarking uses hand-optimized kernel code by default.
You can use it in your cracking session by setting the -O option.
Note: Using optimized kernel code limits the maximum supported password length.
To disable the optimized kernel code in benchmark mode, use the -w option.

OpenCL Platform #1: The pocl project
====================================
* Device #1: pthread-AMD Ryzen 7 1700X Eight-Core Processor, skipped.

OpenCL Platform #2: Advanced Micro Devices, Inc.
================================================
* Device #2: gfx803, 6963/8192 MB allocatable, 36MCU

Benchmark relevant options:
===========================
* --optimized-kernel-enable

Hashmode: 0 - MD5

Speed.#2.........: 10957.5 MH/s (54.08ms) @ Accel:256 Loops:256 Thr:256 Vec:1

Hashmode: 100 - SHA1

Speed.#2.........:  3903.9 MH/s (76.10ms) @ Accel:256 Loops:128 Thr:256 Vec:1

Hashmode: 1400 - SHA2-256

clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m04)

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m04)

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m08)

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m08)

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m16)

: error: undefined hidden symbol: m01400m
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_m16)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s04)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s04)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s08)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s08)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s16)

: error: undefined hidden symbol: m01400s
>>> referenced by /usr/share/hashcat/OpenCL/t_1725_33-f0cdc1.o:(m01400_s16)
Error: Creating the executable from LLVM IRs failed.

* Device #2: Kernel /usr/share/hashcat/OpenCL/m01400_a3-optimized.cl build failed - proceeding without this device.

Started: Thu May  2 23:53:47 2019
Stopped: Thu May  2 23:54:16 2019

(Yes, i added the sudo just in case it was something driver not having permission even though i am root. Don't bully me, ok?)

I think it must be more of an OpenCL issue than a hashcat or Rocm, but do you have any idea of where i should look to fix the problem? It's driving me nuts, and i tried to install rocm on ubuntu (which i though it would be easier) but it's giving me almost the same fight as The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali), but as i think i am closer in this distro, i think it would be better.

Thanks and if you need any more information, please tell me!
Reply
#2
Hey,

I've upgraded my ROCm drivers for my AMD Vega 64 GPU this week and I'm getting the same errors. I've tracked it down to issue with work-load parameter.

Without the -w1 parameter it works but with it does not... I'm using Ubuntu 18.04 and tested both ROCm and AMDGPU-Pro driver/packages with the same results.


Code:
$ ./hashcat64.bin -m 100 --machine-readable --benchmark
# version: v5.1.0
# option: --optimized-kernel-enable
1:100:852:945:96.26:11109716045
Started: Wed May  8 08:41:21 2019
Stopped: Wed May  8 08:41:31 2019

Code:
$ ./hashcat64.bin -m 100 --machine-readable --benchmark -w1
# version: v5.1.0
# option: --workload-profile=1
clBuildProgram(): CL_BUILD_PROGRAM_FAILURE

: error: undefined hidden symbol: sha1_update_vector
>>> referenced by /home/vojta/Documents/tarzan/cracking/hashcat-5.1.0/OpenCL/t_10002_33-15f50b.o:(m00100_mxx)

: error: undefined hidden symbol: sha1_update_vector
>>> referenced by /home/vojta/Documents/tarzan/cracking/hashcat-5.1.0/OpenCL/t_10002_33-15f50b.o:(m00100_mxx)

: error: undefined hidden symbol: sha1_update_vector
>>> referenced by /home/vojta/Documents/tarzan/cracking/hashcat-5.1.0/OpenCL/t_10002_33-15f50b.o:(m00100_sxx)

: error: undefined hidden symbol: sha1_update_vector
>>> referenced by /home/vojta/Documents/tarzan/cracking/hashcat-5.1.0/OpenCL/t_10002_33-15f50b.o:(m00100_sxx)
Error: Creating the executable from LLVM IRs failed.

* Device #1: Kernel /home/vojta/Documents/tarzan/cracking/hashcat-5.1.0/OpenCL/m00100_a3-pure.cl build failed - proceeding without this device.

Started: Wed May  8 08:41:04 2019
Stopped: Wed May  8 08:41:08 2019


EDIT: I've now tried adding of --optimized-kernel-enable flag  which helps when using -m 100. However, the same ends with the errors when trying -m 1400.


Code:
$ ./hashcat64.bin -m 100 --optimized-kernel-enable --machine-readable --benchmark -w3
# version: v5.1.0
# option: --optimized-kernel-enable
# option: --workload-profile=3
1:100:852:945:96.06:11123132088
Started: Wed May  8 09:06:16 2019
Stopped: Wed May  8 09:06:23 2019
Reply