One of the features of oclHashcat-plus is the support of reading from stdin. This gives great flexibility since we can reuse every program that supports writing to stdout for password candidate generation.
To do this, all we need is to use a pipe in the commandline. A pipe is somewhat the most possible generic interface for data exchange between two processes. It is supported in both Linux and Windows. Even the syntax is the same. And it its very simple.
It's easy. For Example:
mp64 ?d?d?d?d?d?d?d?d | oclHashcat-plus64 -m 2500 bla.hccap
mp64 -1 ?dABCDEF ?1?1?1?1?1?1?1?1 | oclHashcat-plus64 -m 2500 bla.hccap
./mp64.bin -1 ?dabcdef ?1?1?1?1?1?1?1?1 | ./oclHashcat-plus64.bin -m 2500 bla.hccap
See Mask attack for detailed instructions how to use maskprocessor.
If we attack a so called “slow” algorithm, that is one of the following algorithm, we can skip this section:
To fully utilize the power of the GPU it's mandatory to keep the GPU busy with work. That means we have to constantly generate huge numbers of password candidates. In this article we talk about STDIN, that generates the following (massive) bottleneck:
In short: Password candidates via STDIN itself is slow. But there is a way to optimize the Brute-Force attack, even when reading from STDIN, even for the “fast” algorithms. The “fast” algorithms are all the others supported by oclHashcat-plus which are not in the list above. But it requires a bit of help from our side. It can't be done automatically.
The goal is to use the rule-engine in order to increase GPU utilization. All we need to know is that the kernels of the fast algorithms in oclHashcat-plus have an embedded rule-engine. So what we have to do is to “distribute” the workload. If we can generate like 200 rules its fully enough to maximize the GPU utilization.
./mp64.bin -o bf.rule -1 ?dabcdef '$?1 $?1'
./mp64.bin -1 ?dabcdef ?1?1?1?1?1?1 | ./oclHashcat-plus64.bin -m 2500 -r bf.rule bla.hccap
This will fully utilize the GPU.