9e2ba92617f2057174c8c6b3c6c2acf1a2627498
[hashcat.git] / docs / changes.txt
1 * changes v2.01 -> v3.00:
2
3 This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat".
4 It combines all features of all hashcat projects in one project.
5
6 ** THE VERSION 3.00 IS CURRENTLY STILL IN BETA **
7
8 ##
9 ## Features
10 ##
11
12 - Support for Apple OpenCL runtime
13 - Support for NVidia OpenCL runtime (replaces CUDA)
14 - Support for Mesa (Gallium) OpenCL runtime
15 - Support for pocl OpenCL runtime
16 - Support for Khronos' OSS OpenCL reference implementation for building
17 - Support to utilize OpenCL devices-types other than GPU, ex: CPU and FPGA
18 - Support to utilize multiple different OpenCL platforms in parallel, ex: AMD + NV
19 - Support to utilize multiple different OpenCL device-types in parallel, ex: GPU + CPU
20 - Added option --opencl-platform to select a specific OpenCL platform
21 - Added option --opencl-device-types select specific OpenCL device types
22 - Added option --opencl-vector-width to override automatically selected vector-width size
23 - Added makefile native compilation target
24 - Added makefile install and uninstall targets
25 - Added autotuning engine and user-configurable tuning database
26 - Added current engine clock, current memory clock and pci-e lanes to the status display
27 - Added support for --gpu-temp-retain for nvidia devices on windows
28 - Added execution timer of the running kernel to the status display
29 - Added command prompt to quit at next restore checkpoint
30 - Added human-readable error message for the OpenCL error codes
31 - Added option --potfile-path to override potfile path
32 - Added option --veracrypt-keyfile to set Keyfiles used, can be multiple
33 - Added option --veracrypt-pim to set the VeraCrypt personal iterations multiplier
34 - Added option --machine-readable for easier parsing of output
35 - Added option --powertune-enable to work with NVidia devices as well, not just AMD
36
37 ##
38 ## Algorithms
39 ##
40
41 - Added new hash-mode   125 = ArubaOS
42 - Added new hash-mode 12900 = Android FDE (Samsung DEK)
43 - Added new hash-mode 13000 = RAR5
44 - Added new hash-mode 13100 = Kerberos 5 TGS-REP etype 23
45 - Added new hash-mode 13200 = AxCrypt
46 - Added new hash-mode 13300 = AxCrypt in memory SHA1
47 - Added new hash-mode 13400 = Keepass 1 (AES/Twofish) and Keepass 2 (AES)
48 - Added new hash-mode 13500 = PeopleSoft PS_TOKEN
49 - Added new hash-mode 13600 = WinZip
50 - Added new hash-mode 137** = VeraCrypt
51 - Added new hash-mode 13800 = Windows 8+ phone PIN/Password
52
53 ##
54 ## Performance
55 ##
56
57 - Full Table: https://docs.google.com/spreadsheets/d/1B1S_t1Z0KsqByH3pNkYUM-RCFMu860nlfSsYEqOoqco/edit#gid=0
58
59 ##
60 ## Improvements
61 ##
62
63 - Reordering of files to help integration into linux distributions ~/.hashcat etc
64 - Use a profile directory to write temporary files (session, potfile etc.)
65 - Workaround depencies on AMD APP-SDK AMD ADL, NV CUDA-SDK, NV ForceWare, NVML and NVAPI; they are no longer required
66 - Load external libraries dynamic at runtime instead of link them static at compile-time
67 - Benchmark accuracy improved; Is now on par to: singlehash -a 3 -w 3 ?b?b?b?b?b?b?b
68 - Benchmark no longer depends on a fixed time
69 - Removed option --benchmark-mode, therefore support --workload-profile in benchmark-mode
70 - Enabled support of --machine-readable in combination with --benchmark for automated benchmark processing
71 - Replaced --status-automat entirely with --machine-readable to make it more consistent among benchmark and non-benchmark mode
72 - Extended support from 14 to 255 functions calls per rule
73 - Extended password length up to 32 for 7zip
74 - Extended salt length up to 55 for raw hash types, eg: md5($pass.$salt)
75 - Extended version information
76 - Removed some duplicate rules in T0XlCv1, d3ad0ne and dive
77 - Redesigned changes.txt layout
78 - Redesigned --help menu layout
79
80 ##
81 ## Bugs
82 ##
83
84 - Fixed a bug in speed display: In some situation, especially with slow hashes or lots of salts, it showed a speed of 0H/s
85 - Fixed a bug in restore handling: user immediately aborting after restart broke the restore file
86 - Fixed a bug in line counter: conditional jump or move depends on an uninitialised value
87 - Fixed a bug in rule-engine for NVidia devices: code for left- and right-shift were switched
88 - Fixed a bug in dive.rule: rules were not updated after the function 'x' was renamed to 'O'
89 - Fixed a bug in memory allocation "OpenCL -4 error": used unitialized value in a special situation
90 - Fixed a bug in memory handling: heap buffer overflow
91 - Fixed a bug in memory handling: out of bounds access
92 - Fixed a bug in implementation of DCC2: forced default iteration count for hashes to 10240
93 - Fixed a bug in implementation of WPA/WPA2: MAC and nonce stay one their original position as in the hccap file
94 - Fixed a bug in implementation of GOST R 34.11-94: zero length passwords were not cracked
95
96 ##
97 ## Technical
98 ##
99
100 - Removed deprecated GCC version check requirement
101 - Removed NPROCS from Makefile, let make automatically detect the optimal number of parallel threads
102 - Dropped all C++ overloading functions to normal function which helps support more OpenCL platforms
103 - Renamed functions in common.h to emphasize their purpose
104 - Refactorized fast-hash kernels to enable SIMD on all OpenCL platforms
105 - Refactorized SIMD handling: SIMD the inner-loop not the outer-loop to save registers
106 - Workaround missing clEnqueueFillBuffer() support in certain OpenCL runtimes
107 - Added amd_bytealign() support in non-AMD OpenCL runtimes
108 - Added amd_bfe() support in non-AMD OpenCL runtimes
109 - Added several macros to allow writing optimized code for the different OpenCL platforms
110 - Replaced typedef for bool with stdbool.h
111 - Added special DEBUG environment variables to the makefile
112 - Hashcat now acquires an exclusive lock before writing to any file
113 - Changed buffers to not use same buffer for both input and output at the same time with snprintf()
114 - Check for allocatable device-memory depending on kernel_accel amplifier before trying to allocate
115 - Added additional check for max. ESSID length to prevent possible crashes
116 - Use a GCC equivalent for __stdcall where applicable
117 - Synchronize maximum output line size with input line size
118 - Increased maximum hash line size to 0x50000
119 - Run weak-hash checks only in straight-attack mode, this greatly reduces code complexity
120 - Restrict loopback option to straight attack-mode
121 - Moved rules_optimize to hashcat-utils
122 - Stick to older libOpenCL in binary package to avoid errors like this: version `OPENCL_2.0' not found
123 - Tightened hash parser for several algorithms
124 - Updated old RC4 code in Kerberos 5
125 - Limited the salt length of Juniper Netscreen/SSG (ScreenOS) hashes to 10
126 - Updated algorithm used to automatically select an ideal --scrypt-tmto value
127 - Renamed option --gpu-accel to --kernel-accel
128 - Renamed option --gpu-loops to --kernel-loops
129 - Renamed option --gpu-devices to --opencl-devices
130 - Added inline declaration to functions from simd.c, common.c, rp.c and types_ocl.c to increase performance
131 - Dropped static declaration from functions in all kernel to achieve OpenCL 1.1 compatibility
132 - Added -cl-std=CL1.1 to all kernel build options
133 - Created environment variable to inform NVidia OpenCL runtime to not create its own kernel cache
134 - Created environment variable to inform pocl OpenCL runtime to not create its own kernel cache
135 - Dropped special 64-bit rotate() handling for NV, it seems that they've added it to their OpenCL runtime
136 - Disabled retain support by default, you can reactive it using --gpu-temp-retain
137 - Completely get rid of HAVE_ADL, HAVE_NVML and HAVE_NVAPI in sources
138 - Replaced NVAPI with NVML on windows