File-based custom charsets
#1
Setting up custom charsets using -1 ABCDEF... works nice as long as you stick to the built-in charsets (http://hashcat.net/wiki/mask_attack), but if you want to go beyond that you'll have to put them on the command list after -1.

Attempting to attack CP437/CP850 charsets (see http://tbhost.eu/charset.txt, charsets used for Freerainbowtables), you're in for trouble because the command line (both Windows & Linux) will interpret certain characters as options or shell commands.

Expanding the list of built-in charsets could partially solve this, but since I'd like to test partial/full UTF-8/16 charsets, the command line with built-in charsets doesn't get flexible enough.

So my suggestion is to allow for putting custom charsets in textfiles.

(I'll openly admit that I rip of Bitweasils Multiforcer here, where he does exactly that with either single charset input (--charsetfile) or per-position charset file (--charsetfilemulti)
#2
Thanks for suggestion. Since I knew you would request this before I already added this to latest beta version. Please check it.

You can now use "-1 charsets/cp437-850.charset" instead of doing "-1 ?l?d?s?u". If the value after -1 exists as a file, it will load its content. Otherwise it will interpret it as a custom charset buffer like before.

The mask itself does not change, so you can still use ?1?1?1?1?1?1?1 which enables the per-position functionality.
#3
(02-10-2012, 11:41 PM)atom Wrote: Thanks for suggestion. Since I knew you would request this before I already added this to latest beta version. Please check it.

You can now use "-1 charsets/cp437-850.charset" instead of doing "-1 ?l?d?s?u". If the value after -1 exists as a file, it will load its content. Otherwise it will interpret it as a custom charset buffer like before.

The mask itself does not change, so you can still use ?1?1?1?1?1?1?1 which enables the per-position functionality.

Excellent, thx atom!

First test:

oclHashcat-plus64.exe -m 3000 -a 3 -o LM-found --outfile-format=6 LM-input -1 charsets\lm-cp437-850.charset ?1?1?1?1?1?1?1 -n 80 --gpu-loops 1024
** Valid keyfile for beta usage: XXXXXXXX (XXXXXXXXX)

oclHashcat-plus v0.08 by atom starting...

Hashes: 4004
Unique digests: 2003
Bitmaps: 15 bits, 32768 entries, 0x00007fff mask, 131072 bytes
GPU-Loops: 1024
GPU-Accel: 80
Password lengths range: 1 - 7
Platform: AMD compatible platform found
Watchdog: Temperature limit set to 90c
Device #1: Cayman, 2048MB, 0Mhz, 24MCU
Device #1: Allocating 288MB host-memory
Device #1: Kernel ./kernels/4098/m3000_a3.Cayman.64.kernel (863306 bytes)

[s]tatus [p]ause [r]esume [q]uit => s

Status.......: Running
Input.Mode...: Mask (?1?1?1?1?1?1?1)
Hash.Target..: File (LM-input)
Hash.Type....: LM
Time.Running.: 37 secs
Time.Left....: 5 days, 3 hours
Time.Util....: 37967.3ms/1.1ms Real/CPU, 0.0% idle
Speed........: 530.3M c/s Real, 530.4M c/s GPU
Recovered....: 0/2003 Digests, 0/1 Salts
Progress.....: 20132659200/235260548044817 (0.01%)
Rejected.....: 0/20132659200 (0.00%)
HW.Monitor.#1: 99% GPU, 61c Temp

5 days to complete on a single 6970.... I can do that. :-)
#4
done with 0.08