07-05-2016, 01:23 AM
As with most of the problems I run into, I'm sure there's a better way.
As soon as I saw the release announcement for hashcat 3, I tried it in my nearest VM, a 32-bit The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) machine. Lacking OpenCL drivers, I got a segmentation fault. I found that Intel doesn't offer 32-bit linux OpenCL drivers, and since my VM lacked a video card, that was about it. I asked on IRC and got pretty much the same answer; use a 64-bit VM, or a physical machine with a card.
I started looking at what was offered in the repository, and POCL (Portable Computing Language library) seemed to -almost- work. It was distributed with 64-bit libraries though. After a few days on and off of fooling with dependencies, I seem to have it working. I present to you "How to run hashcat 3 on a 32-bit VM... mostly..."
https://www.nullsec.us/hashcat-3-0-on-a-32-bit-linux-vm/
Remove clang and llvm versions versions 3.6 and 3.7. I'm not sure why, but in my experimenting, pocl seemed very picky about the versions of these libraries.
Add the correct versions and path clang (which is in llvm's bin folder)
Install a few more dependencies
These dependencies that should already be there, make sure though
Git pocl, make, install
Now, you'll have to use --force, or you get warnings that you are not using a native Intel OpenCL runtime
but if you do, everything should work... mostly...
As soon as I saw the release announcement for hashcat 3, I tried it in my nearest VM, a 32-bit The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali) machine. Lacking OpenCL drivers, I got a segmentation fault. I found that Intel doesn't offer 32-bit linux OpenCL drivers, and since my VM lacked a video card, that was about it. I asked on IRC and got pretty much the same answer; use a 64-bit VM, or a physical machine with a card.
I started looking at what was offered in the repository, and POCL (Portable Computing Language library) seemed to -almost- work. It was distributed with 64-bit libraries though. After a few days on and off of fooling with dependencies, I seem to have it working. I present to you "How to run hashcat 3 on a 32-bit VM... mostly..."
https://www.nullsec.us/hashcat-3-0-on-a-32-bit-linux-vm/
Remove clang and llvm versions versions 3.6 and 3.7. I'm not sure why, but in my experimenting, pocl seemed very picky about the versions of these libraries.
Code:
apt remove clang*
apt remove llvm*
apt-get autoremove -y
Add the correct versions and path clang (which is in llvm's bin folder)
Code:
apt install clang-3.8
apt install libclang-3.8-dev
vim .bashrc -> Add clang to path "PATH=$PATH:/usr/lib/llvm-3.8/bin"
Open a new terminal and test with "clang --version", should return 3.8
Install a few more dependencies
Code:
apt install libhwloc-dev
apt install ocl-icd-dev
apt install ocl-icd-opencl-dev
These dependencies that should already be there, make sure though
Code:
apt install pkg-config
apt install autotools-dev
apt install cmake
apt install make
apt install libltdl3-dev
Git pocl, make, install
Code:
git clone https://github.com/pocl/pocl
cd pocl
./autogen.sh
./configure
make
make install
Now, you'll have to use --force, or you get warnings that you are not using a native Intel OpenCL runtime
Code:
root@The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali):~/Desktop/hashcat-3.00# ./hashcat32.bin -b hashcat (v3.00-1-g67a8d97) starting in benchmark-mode...
OpenCL Platform #1: The pocl project
Device #1: WARNING: Not a native Intel OpenCL runtime, expect massive speed loss You can use --force to override this but do not post error reports if you do so
Device #1: pthread-Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz, skipped
ERROR: No devices found/left
but if you do, everything should work... mostly...
Code:
root@The-Distribution-Which-Does-Not-Handle-OpenCL-Well (Kali):~/Desktop/hashcat-3.00# ./hashcat32.bin --force -b hashcat (v3.00-1-g67a8d97) starting in benchmark-mode...
OpenCL Platform #1: The pocl project
Device #1: pthread-Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz, 1513/1513 MB allocatable, 1MCU
Hashtype: MD4
Speed.Dev.#1.: 15532.5 kH/s (109.65ms)
[... SNIP ...]
Hashtype: Juniper IVE
Speed.Dev.#1.: 6841 H/s (98.83ms)
error: Explicit gep type does not match pointee type of pointer operand (Producer: 'LLVM3.8.0' Reader: 'LLVM 3.8.0')