Fix some typos

pull/3810/head
justpretending 9 months ago
parent 3173f9374d
commit b2f14f2f5d

@ -1187,7 +1187,7 @@ DECLSPEC void mul_mod128 (PRIVATE_AS u32 *x, PRIVATE_AS const u32 *y, PRIVATE_AS
t[62] += t[61] < p[125];
t[63] += t[62] < p[126];
// VERY IMPORTANT: if we have an overflow at the highest u32, we need to do the substraction
// VERY IMPORTANT: if we have an overflow at the highest u32, we need to do the subtraction
const u32 c = t[63] < p[127]; // carry / overflow

@ -11,7 +11,7 @@
*
* There are four variables where major differences occur:
*
* - P2: Adress space of kernel_rules_t struct.
* - P2: Address space of kernel_rules_t struct.
* If the kernel uses rules_buf, it will be stored in CONSTANT_AS.
* If it does not, cheaper GLOBAL_AS space is used.
*

@ -2024,7 +2024,7 @@ DECLSPEC void point_mul (PRIVATE_AS u32 *r, PRIVATE_AS const u32 *k, SECP256K1_T
* @param r out: x and y coordinates.
* @param x in: x coordinate which should be converted, a pointer to an u32 array with a size of 8.
* @param first_byte in: The parity of the y coordinate, a u32.
* @return Returns 0 if successfull, returns 1 if x is greater than the basepoint.
* @return Returns 0 if successful, returns 1 if x is greater than the basepoint.
*/
DECLSPEC u32 transform_public (PRIVATE_AS secp256k1_t *r, PRIVATE_AS const u32 *x, const u32 first_byte)
{
@ -2084,7 +2084,7 @@ DECLSPEC u32 transform_public (PRIVATE_AS secp256k1_t *r, PRIVATE_AS const u32 *
* Parse a x coordinate with leading parity to secp256k1_t.
* @param r out: x and y coordinates.
* @param k in: x coordinate which should be converted with leading parity, a pointer to an u32 array with a size of 9.
* @return Returns 0 if successfull, returns 1 if x is greater than the basepoint or the parity has an unexpected value.
* @return Returns 0 if successful, returns 1 if x is greater than the basepoint or the parity has an unexpected value.
*/
DECLSPEC u32 parse_public (PRIVATE_AS secp256k1_t *r, PRIVATE_AS const u32 *k)
{

@ -339,7 +339,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val)
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key)

@ -436,7 +436,7 @@ KERNEL_FQ void m08800_comp (KERN_ATTR_TMPS_ESALT (androidfde_tmp_t, androidfde_t
u32 r[16];
// not needed because of cbc mode -- implementation flaw !!. first 16 byte are not interessting
// not needed because of cbc mode -- implementation flaw !!. first 16 bytes are not interesting
r[0] = 0;
r[1] = 0;

@ -340,7 +340,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val)
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key)

@ -323,7 +323,7 @@ DECLSPEC u32 do_round (LOCAL_AS u32 *sc, PRIVATE_AS const u32 *pw, const u32 pw_
make_sc (sc, pw, pw_len, ctx->dgst32, ctx->dgst_len);
// make sure pwbl_len is calculcated before it gets changed
// make sure pwbl_len is calculated before it gets changed
const u32 pwbl_len = pw_len + ctx->dgst_len;

@ -39,7 +39,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -41,7 +41,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -40,7 +40,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -48,7 +48,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -350,7 +350,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val)
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key)

@ -371,7 +371,7 @@ KERNEL_FQ void m25500_comp (KERN_ATTR_TMPS_ESALT (pbkdf2_sha256_tmp_t, pbkdf2_sh
*/
/*
// decrypt buffer is not usefull here, skip
// decrypt buffer is not useful here, skip
u32 dec[14] = { 0 };
AES_GCM_GCTR (key, J0, enc, enc_len, dec, s_te0, s_te1, s_te2, s_te3, s_te4);

@ -352,7 +352,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val)
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key)

@ -348,7 +348,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val, const u6
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key, MAYBE_UNUSED const u64 lid)

@ -381,7 +381,7 @@ KERNEL_FQ void m26610_comp (KERN_ATTR_TMPS_ESALT (pbkdf2_sha256_tmp_t, pbkdf2_sh
/*
const int pt_len = 28; // not using 32 byte but 28 because our UTF8 allows up to 4 byte per character and since we decrypt 32 byte
// only we can't garantee it is not in the middle of a UTF8 byte stream at that point
// only we can't guarantee it is not in the middle of a UTF8 byte stream at that point
if (hc_enc_scan (pt, pt_len))
{

@ -348,7 +348,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val, const u6
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key, MAYBE_UNUSED const u64 lid)

@ -349,7 +349,7 @@ DECLSPEC void SET_KEY32 (LOCAL_AS u32 *S, const u64 key, const u32 val, const u6
#else
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from compuation
// access pattern: linear access with S offset already set to right offset based on thread ID saving it from computation
// makes sense if there are not thread ID's (for instance on CPU)
DECLSPEC inline u32 GET_KEY32 (LOCAL_AS u32 *S, const u64 key, MAYBE_UNUSED const u64 lid)

@ -429,7 +429,7 @@ KERNEL_FQ void m31800_comp (KERN_ATTR_TMPS_ESALT (pbkdf2_sha256_tmp_t, onepasswo
/*
const int pt_len = 28; // not using 32 byte but 28 because our UTF8 allows up to 4 byte per character and since we decrypt 32 byte
// only we can't garantee it is not in the middle of a UTF8 byte stream at that point
// only we can't guarantee it is not in the middle of a UTF8 byte stream at that point
if (hc_enc_scan (pt, pt_len))
{

@ -228,7 +228,7 @@
- Hardware Monitor: Add support for GPU device utilization readings using iokit on Apple Silicon (OpenCL and Metal)
- Hash Info: show more information (Updated Hash-Format. Added Autodetect, Self-Test, Potfile and Plaintext encoding)
- HIP Backend: moved functions to ext_hip.c/ext_hiprtc.c and includes to ext_hip.h/ext_hiprtc.h
- HIP Backend: removed unused functions from hiprtc to workaroung missing function symbols on windows dll
- HIP Backend: removed unused functions from hiprtc to workaround missing function symbols on windows dll
- Kernels: Refactored standard kernel declaration to use a structure holding u32/u64 attributes to reduce the number of attributes
- Kernels: Refactored standard kernel includes, KERN_ATTR macros and RC4 cipher functions, in order to support Apple Metal runtime
- Kernels: Set the default Address Space Qualifier for any pointer, in order to support Apple Metal runtime
@ -254,7 +254,7 @@
- Rules: Add support to include source wordlist in debugging format
- Rules: Update hand-written rulesets to covers years up to 2029
- Status code: updated negative status code (added kernel create failure and resync)
- Status code: updated negative status code, usefull in Unit tests engine (test.sh)
- Status code: updated negative status code, useful in Unit tests engine (test.sh)
- Terminal: Increased size of hash name column in `--help` and `--identify` options
- Terminal: Limit output length of example hash in --example-hash mode to 200. Use --mach to see full example hash
- Terminal: show empty OpenCL platforms only in backend information mode
@ -666,7 +666,7 @@
- Building: Fixed build warnings on macOS for unrar sources
- Building: Fixed test for DARWIN_VERSION in Makefile
- Commandline Options: Removed option --example-hashes, now an alias of --hash-info
- Compute API: Skipping devices instead of stop if error occured in initialization
- Compute API: Skipping devices instead of stop if error occurred in initialization
- Documentation: Added 3rd party licenses to docs/license_libs
- Hash-Mode 8900 (Scrypt): Changed default benchmark scrypt parameters from 1k:1:1 to 16k:8:1 (default)
- Hash-Mode 11600 (7-Zip): Improved memory handling (alloc and free) for the hook function
@ -732,7 +732,7 @@
- Hcchr Files: Renamed some .charset files into .hcchr files
- Hash-Mode 21200 (md5(sha1($salt).md5($pass))): Improved speed by using pre-computed SHA1
- OpenCL Devices: Utilize PCI domain to improve alias device detection
- OpenCL Kernels: Added datatypes to literals of enum costants
- OpenCL Kernels: Added datatypes to literals of enum constants
- OpenCL Kernels: Added pure kernels for hash-mode 600 (BLAKE2b-512)
- OpenCL Runtime: Add some unstable warnings for some SHA512 based algorithms on AMD GPU on macOS
- OpenCL Runtime: Reinterpret return code CL_DEVICE_NOT_FOUND from clGetDeviceIDs() as non-fatal
@ -865,7 +865,7 @@
- Bitcoin Wallet: Be more user friendly by allowing a larger data range for ckey and public_key
- Brain: Added new parameter --brain-server-timer to specify seconds between scheduled backups
- Building: Fix for library compilation failure due to multiple defenition of sbob_xx64()
- Building: Fix for library compilation failure due to multiple definition of sbob_xx64()
- Cracking bcrypt and Password Safe v2: Use feedback from the compute API backend to dynamically calculate optimal thread count
- Dictstat: On Windows, the st_ino attribute in the stat struct is not set, which can lead to invalid cache hits. Added the filename to the database entry.
- Documents: Added README on how to build hashcat on Cygwin, MSYS2 and WSL
@ -903,7 +903,7 @@
## Technical
##
- Backend Interface: Added new options --backend-ignore-cuda and --backend-ingore-opencl to prevent CUDA and/or OpenCL API from being used
- Backend Interface: Added new options --backend-ignore-cuda and --backend-ignore-opencl to prevent CUDA and/or OpenCL API from being used
- Binary Distribution: Removed 32-bit binary executables
- Building: On macOS, switch from ar to /usr/bin/ar to improve building compatibility
- Building: Skipping Travis/Appveyor build for non-code changes
@ -1261,7 +1261,7 @@
- Added option --optimized-kernel-enable to use faster kernels but limit the maximum supported password- and salt-length
- Added self-test functionality to detect broken OpenCL runtimes on startup
- Added option --self-test-disable to disable self-test functionality on startup
- Added option --wordlist-autohex-disable to disable the automatical conversion of $HEX[] words from the word list
- Added option --wordlist-autohex-disable to disable the automatic conversion of $HEX[] words from the word list
- Added option --example-hashes to show an example hash for each hash-mode
- Removed option --weak-hash-check (zero-length password check) to increase startup time, it also causes many Trap 6 error on macOS
@ -1278,7 +1278,7 @@
- Fixed a buffer overflow in mangle_dupechar_last function
- Fixed a calculation error in get_power() leading to errors of type "BUG pw_add()!!"
- Fixed a memory problem that occured when the OpenCL folder was not found and e.g. the shared and session folder were the same
- Fixed a memory problem that occurred when the OpenCL folder was not found and e.g. the shared and session folder were the same
- Fixed a missing barrier() call in the RACF OpenCL kernel
- Fixed a missing salt length value in benchmark mode for SIP
- Fixed an integer overflow in hash buffer size calculation
@ -1463,7 +1463,7 @@
- Added support for filtering hccapx message pairs using --hccapx-message-pair
- Added support for parsing 7-Zip hashes with LZMA/LZMA2 compression indicator set to a non-zero value
- Added support for decompressing LZMA1/LZMA2 data for -m 11600 = 7-Zip to validate the CRC
- Added support for automatic merge of LM halfes in case --show and --left is used
- Added support for automatic merge of LM halves in case --show and --left is used
- Added support for showing all user names with --show and --left if --username was specified
- Added support for GPU temperature management on cygwin build
@ -1538,7 +1538,7 @@
- Hardware Management: Bring back kernel exec timeout detection for NVidia on user request
- Hardware Monitor: Fixed several memory leaks in case hash-file writing (caused by --remove) failed
- Hardware Monitor: Fixed several memory leaks in case no hardware monitor sensor is found
- Hardware Monitor: In case NVML initialization failed, do not try to initialiaze NVAPI or XNVCTRL because they both depend on NVML
- Hardware Monitor: In case NVML initialization failed, do not try to initialize NVAPI or XNVCTRL because they both depend on NVML
- Hash Parsing: Added additional bound checks for the SIP digest authentication (MD5) parser (-m 11400)
- Hash Parsing: Make sure that all files are correctly closed whenever a hash file parsing error occurs
- Helper: Added functions to check existence, type, read- and write-permissions and rewrite sources to use them instead of stat()
@ -1575,7 +1575,7 @@
## Features
##
- Files: Use $HEX[...] in case the password includes the separater character, increases potfile reading performance
- Files: Use $HEX[...] in case the password includes the separator character, increases potfile reading performance
- Files: If the user specifies a folder to scan for wordlists instead of directly a wordlist, then ignore the hidden files
- Loopback: Include passwords for removed hashes present in the potfile to next loopback iteration
- New option --progress-only: Quickly provides ideal progress step size and time to process on the user hashes and selected options, then quit
@ -1682,9 +1682,9 @@ The CLI (hashcat.bin or hashcat.exe) works as before but from a technical perspe
## Bugs
##
- Custom charset from file parsing code did not return an error if an error occured
- Custom charset from file parsing code did not return an error if an error occurred
- Fix some clSetKernelArg() size error that caused slow modes to not work anymore in -a 1 mode
- Hash-mode 11600 = (7-Zip): Depending on input hash a clEnqueueReadBuffer(): CL_INVALID_VALUE error occured
- Hash-mode 11600 = (7-Zip): Depending on input hash a clEnqueueReadBuffer(): CL_INVALID_VALUE error occurred
- Hash-mode 22 = Juniper Netscreen/SSG (ScreenOS): Fix salt length for -m 22 in benchmark mode
- Hash-Mode 5500 = NetNTLMv1 + ESS: Fix loading of NetNTLMv1 + SSP hash
- Hash-mode 6000 = RipeMD160: Fix typo in array index number
@ -1757,12 +1757,12 @@ The CLI (hashcat.bin or hashcat.exe) works as before but from a technical perspe
- Error handling (startup): Added some missing returncode checks to get_exec_path()
- Fanspeed: Check both fanpolicy and fanspeed returncode and disable retain support if any of them fail
- Fanspeed: Minimum fanspeed for retain support increased to 33%, same as NV uses as default on windows
- Fanspeed: Reset PID controler settings to what they were initially
- Fanspeed: Reset PID controller settings to what they were initially
- Fanspeed: Set fan speed to default on quit
- File handling: Do a single write test (for files to be written later) directly on startup
- File locking: Use same locking mechanism in potfile as in outfile
- Hardware management: Fixed calling conventions for ADL, NvAPI and NVML on windows
- Hardware management: Improved checking for successfull load of the NVML API
- Hardware management: Improved checking for successful load of the NVML API
- Hardware management: In case fanspeed can not be set, disable --gpu-temp-retain automatically
- Hardware management: In case of initialization error show it only once to the user on startup
- Hardware management: Refactored all code to return returncode (0 or -1) instead of data for more easy error handling
@ -1866,7 +1866,7 @@ The CLI (hashcat.bin or hashcat.exe) works as before but from a technical perspe
* changes v2.01 -> v3.00:
This release markes the fusion of "hashcat" and "oclHashcat" into "hashcat".
This release marks the fusion of "hashcat" and "oclHashcat" into "hashcat".
It combines all features of all hashcat projects in one project.
##
@ -1951,7 +1951,7 @@ It combines all features of all hashcat projects in one project.
- Fixed a bug in line counter: conditional jump or move depends on an uninitialised value
- Fixed a bug in rule-engine for NVidia devices: code for left- and right-shift were switched
- Fixed a bug in dive.rule: rules were not updated after the function 'x' was renamed to 'O'
- Fixed a bug in memory allocation "OpenCL -4 error": used unitialized value in a special situation
- Fixed a bug in memory allocation "OpenCL -4 error": used uninitialized value in a special situation
- Fixed a bug in memory handling: heap buffer overflow
- Fixed a bug in memory handling: out of bounds access
- Fixed a bug in implementation of DCC2: forced default iteration count for hashes to 10240

@ -203,7 +203,7 @@ Each password candidate creates a hash of 8 bytes that has to be transferred, lo
So let's assume a candidate list size of 8,000,000,000. That doesn't sound like too much - especially if you want to work with rules and masks. It should be clear that using the hashcat brain against a raw MD5 is not very efficient. But now things become interesting, because of some unexpected effects that kick in.
Imagine you have a salted MD5 list, let's say VBULL which is a fast hash (not a slow hash) - and you have many of them. In thise case, each of the salts starts to work for us.
Imagine you have a salted MD5 list, let's say VBULL which is a fast hash (not a slow hash) - and you have many of them. In this case, each of the salts starts to work for us.
Yes, you read that right - the more salts, the better!!

@ -76,7 +76,7 @@
#endif
/* The C++ standard denies redefinition of keywords,
but this is nededed for VS compiler which doesn't have inline keyword but has __inline
but this is needed for VS compiler which doesn't have inline keyword but has __inline
*/
#ifndef __cplusplus
#if defined (_MSC_VER)

@ -212,11 +212,11 @@ typedef struct ADLThermalControllerInfo
{
/// Must be set to the size of the structure
int iSize;
/// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
/// Possible values: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
int iThermalDomain;
/// GPU 0, 1, etc.
int iDomainIndex;
/// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
/// Possible values: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
int iFlags;
} ADLThermalControllerInfo;
@ -269,7 +269,7 @@ typedef struct ADLFanSpeedValue
{
/// Must be set to the size of the structure
int iSize;
/// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
/// Possible values: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
int iSpeedType;
/// Fan speed value
int iFanSpeed;

@ -675,10 +675,10 @@ typedef enum CUjit_option_enum
CU_JIT_FAST_COMPILE,
/**
* Array of device symbol names that will be relocated to the corresponing
* Array of device symbol names that will be relocated to the corresponding
* host addresses stored in ::CU_JIT_GLOBAL_SYMBOL_ADDRESSES.\n
* Must contain ::CU_JIT_GLOBAL_SYMBOL_COUNT entries.\n
* When loding a device module, driver will relocate all encountered
* When loading a device module, driver will relocate all encountered
* unresolved symbols to the host addresses.\n
* It is only allowed to register symbols that correspond to unresolved
* global variables.\n

@ -152,7 +152,7 @@ typedef enum __HIP_NODISCARD hipError_t {
///< hipStreamEndCapture in a different thread.
hipErrorGraphExecUpdateFailure = 910, ///< This error indicates that the graph update
///< not performed because it included changes which
///< violated constraintsspecific to instantiated graph
///< violated constraints specific to instantiated graph
///< update.
hipErrorUnknown = 999, //< Unknown error.
// HSA Runtime Error Codes start here.
@ -216,7 +216,7 @@ typedef enum hipDeviceAttribute_t {
///< Use cudaDeviceGetTexture1DLinearMaxWidth() instead on Cuda.
hipDeviceAttributeMaxTexture1DMipmap, ///< Cuda only. Maximum size of 1D mipmapped texture.
hipDeviceAttributeMaxTexture2DWidth, ///< Maximum dimension width of 2D texture.
hipDeviceAttributeMaxTexture2DHeight, ///< Maximum dimension hight of 2D texture.
hipDeviceAttributeMaxTexture2DHeight, ///< Maximum dimension height of 2D texture.
hipDeviceAttributeMaxTexture2DGather, ///< Cuda only. Maximum dimensions of 2D texture if gather operations performed.
hipDeviceAttributeMaxTexture2DLayered, ///< Cuda only. Maximum dimensions of 2D layered texture.
hipDeviceAttributeMaxTexture2DLinear, ///< Cuda only. Maximum dimensions (width, height, pitch) of 2D textures bound to pitched memory.
@ -258,7 +258,7 @@ typedef enum hipDeviceAttribute_t {
hipDeviceAttributeTextureAlignment, ///< Alignment requirement for textures
hipDeviceAttributeTexturePitchAlignment, ///< Pitch alignment requirement for 2D texture references bound to pitched memory;
hipDeviceAttributeTotalConstantMemory, ///< Constant memory size in bytes.
hipDeviceAttributeTotalGlobalMem, ///< Global memory available on devicice.
hipDeviceAttributeTotalGlobalMem, ///< Global memory available on device.
hipDeviceAttributeUnifiedAddressing, ///< Cuda only. An unified address space shared with the host.
hipDeviceAttributeUuid, ///< Cuda only. Unique ID in 16 byte.
hipDeviceAttributeWarpSize, ///< Warp size in threads.
@ -315,7 +315,7 @@ typedef enum hipDeviceAttribute_t {
/** Disable event's capability to record timing information. May improve performance.*/
#define hipEventDisableTiming 0x2
/** Event can support IPC. Warnig: It is not supported in HIP.*/
/** Event can support IPC. Warning: It is not supported in HIP.*/
#define hipEventInterprocess 0x4
/** Use a device-scope release when recording this event. This flag is useful to obtain more

@ -20,7 +20,7 @@ void sort_r(void *base, size_t nel, size_t width,
int (*compar)(const void *_a, const void *_b, void *_arg),
void *arg);
Slightly modified to work with hashcat to no falsly detect _SORT_R_LINUX with mingw
Slightly modified to work with hashcat to no falsely detect _SORT_R_LINUX with mingw
*/

@ -139,7 +139,7 @@ static int autotune (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param
// for the threads we take as initial value what we receive from the runtime
// but is only to start with something, we will fine tune this value as soon as we have our workload specified
// this thread limiting is also performed insinde run_kernel() so we need to redo it here, too
// this thread limiting is also performed inside run_kernel() so we need to redo it here, too
u32 kernel_wgs = 0;
u32 kernel_wgs_multiple = 0;
@ -191,7 +191,7 @@ static int autotune (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param
#if defined (DEBUG)
// don't do any autotune in debug mode in this case
// we're propably during kernel development
// we're probably during kernel development
#else
@ -432,7 +432,7 @@ static int autotune (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param
// v6.2.4 new section: find thread count
// This is not as effective as it could be because of inaccurate kernel return timers
// But is better than fixed values
// Timers in this section are critical, so we rerun meassurements 3 times
// Timers in this section are critical, so we rerun measurements 3 times
if (kernel_threads_max > kernel_threads_min)
{

@ -1055,8 +1055,8 @@ int choose_kernel (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param,
// - hooks can have a large influence depending on the OS.
// spawning threads and memory allocations take a lot of time on windows (compared to linux).
// - the kernel execution can take shortcuts based on intermediate values
// while these intermediate valus depend on input values.
// - if we meassure runtimes of different kernels to find out about their weightning
// while these intermediate values depend on input values.
// - if we measure runtimes of different kernels to find out about their weightning
// we need to call them with real input values otherwise we miss the shortcuts inside the kernel.
// - the problem is that these real input values could crack the hash which makes the chaos perfect.
//
@ -1589,7 +1589,7 @@ static void rebuild_pws_compressed_append (hc_device_param_t *device_param, cons
const u32 dst_pw_len4_cnt = dst_pw_len4 / 4;
pw_idx_dst->cnt = dst_pw_len4_cnt;
pw_idx_dst->len = src_len; // this is intenionally! src_len can not be dst_len, we dont want the kernel to think 0x80 is part of the password
pw_idx_dst->len = src_len; // this is intentionally! src_len can not be dst_len, we dont want the kernel to think 0x80 is part of the password
u8 *dst = (u8 *) (tmp_pws_comp + pw_idx_dst->off);
@ -3512,7 +3512,7 @@ int run_cracker (hashcat_ctx_t *hashcat_ctx, hc_device_param_t *device_param, co
if (iconv_ctx == (iconv_t) -1) return -1;
}
// find higest password length, this is for optimization stuff
// find highest password length, this is for optimization stuff
u32 highest_pw_len = 0;

@ -2311,7 +2311,7 @@ void *brain_server_handle_client (void *p)
hc_thread_mutex_unlock (brain_server_dbs->mux_dbs);
// higest position of that attack
// highest position of that attack
u64 highest = brain_server_highest_attack (brain_server_db_attack);

@ -2545,7 +2545,7 @@ int hashes_init_zerohash (hashcat_ctx_t *hashcat_ctx)
hash_t *hashes_buf = hashes->hashes_buf;
u32 hashes_cnt = hashes->hashes_cnt;
// no solution for these special hash types (for instane because they use hashfile in output etc)
// no solution for these special hash types (for instance because they use hashfile in output etc)
hash_t hash_buf;

@ -137,7 +137,7 @@ int hashconfig_init (hashcat_ctx_t *hashcat_ctx)
return -1;
}
// check for missing pointer assignements
// check for missing pointer assignments
#define CHECK_DEFINED(func) \
if ((func) == NULL) \
@ -818,7 +818,7 @@ u32 default_pw_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED co
u32 default_salt_min (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
{
// salt_min : this limit is only interessting for generic hash types that support a salt
// salt_min : this limit is only interesting for generic hash types that support a salt
u32 salt_min = SALT_MIN;
@ -837,7 +837,7 @@ u32 default_salt_max (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED
{
const bool optimized_kernel = (hashconfig->opti_type & OPTI_TYPE_OPTIMIZED_KERNEL);
// salt_max : this limit is only interessting for generic hash types that support a salt
// salt_max : this limit is only interesting for generic hash types that support a salt
u32 salt_max = SALT_MAX;

@ -70,7 +70,7 @@ void hcfree (void *ptr)
void *hcmalloc_aligned (const size_t sz, const int align)
{
// store the original allocated address so we can later use it to free the memory
// this is convinient to use because we don't need to store two memory addresses
// this is convenient to use because we don't need to store two memory addresses
const int align1 = align - 1;

@ -196,7 +196,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
digest[3] = hex_to_u32 (hash_pos + 24);
/**
* reuse challange data as salt_buf, its the buffer that is most likely unique
* reuse challenge data as salt_buf, its the buffer that is most likely unique
*/
salt->salt_buf[0] = 0;

@ -52,7 +52,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -55,7 +55,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -53,7 +53,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -56,7 +56,7 @@ typedef struct dpapimk
u32 SID_offset;
/* here only for possible
forward compatibiliy
forward compatibility
*/
// u8 cipher_algo[16];
// u8 hash_algo[16];

@ -115,7 +115,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
iter = hc_strtoul ((const char *) token.buf[1] + 2, NULL, 10);
}
// iter++; the additinal round is added in the init kernel
// iter++; the additional round is added in the init kernel
salt->salt_iter = iter;

@ -107,7 +107,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
iter = hc_strtoul ((const char *) token.buf[1] + 2, NULL, 10);
}
// iter++; the additinal round is added in the init kernel
// iter++; the additional round is added in the init kernel
salt->salt_iter = iter;

@ -110,7 +110,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
iter = hc_strtoul ((const char *) token.buf[1] + 2, NULL, 10);
}
// iter++; the additinal round is added in the init kernel
// iter++; the additional round is added in the init kernel
salt->salt_iter = iter;

@ -117,14 +117,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_DIGIT;
// salt in alternate base64 repretentation
// salt in alternate base64 representation
token.sep[3] = '$';
token.len_min[3] = SALT_MIN;
token.len_max[3] = SALT_MAX;
token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64B;
// payload in alternate base64 representanion
// payload in alternate base64 representation
token.sep[4] = '$';
token.len[4] = HASH_LEN_B64;
token.attr[4] = TOKEN_ATTR_FIXED_LENGTH

@ -116,14 +116,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_DIGIT;
// salt in alternate base64 repretentation
// salt in alternate base64 representation
token.sep[3] = '$';
token.len_min[3] = SALT_MIN;
token.len_max[3] = SALT_MAX;
token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64B;
// payload in alternate base64 representanion
// payload in alternate base64 representation
token.sep[4] = '$';
token.len[4] = HASH_LEN_B64;
token.attr[4] = TOKEN_ATTR_FIXED_LENGTH

@ -116,14 +116,14 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
token.attr[2] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_DIGIT;
// salt in alternate base64 repretentation
// salt in alternate base64 representation
token.sep[3] = '$';
token.len_min[3] = SALT_MIN;
token.len_max[3] = SALT_MAX;
token.attr[3] = TOKEN_ATTR_VERIFY_LENGTH
| TOKEN_ATTR_VERIFY_BASE64B;
// payload in alternate base64 representanion
// payload in alternate base64 representation
token.sep[4] = '$';
token.len[4] = HASH_LEN_B64;
token.attr[4] = TOKEN_ATTR_FIXED_LENGTH

@ -212,7 +212,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
digest[3] = hex_to_u32 (hash_pos + 24);
/**
* reuse challange data as salt_buf, its the buffer that is most likely unique
* reuse challenge data as salt_buf, its the buffer that is most likely unique
*/
salt->salt_buf[0] = 0;

@ -277,7 +277,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
winhello->mk_buf_pc[6] = 0;
winhello->mk_buf_pc[7] = 0;
// yes we can precompute the first block of both sha512 here, because length is 128 + hmac lenght + magic length, but
// yes we can precompute the first block of both sha512 here, because length is 128 + hmac length + magic length, but
// speed improvement is negligible, but readability would drop a lot
return (PARSER_OK);

@ -55,7 +55,7 @@ typedef struct scrtv2
} scrtv2_t;
static const char *CONFIGPASSPHRASEV2_SIGNATURE = "S:\"Config Passphrase\"=02:"; //The whole line is part of the format to prevent confusion with other similiar tokens also prefixed with 02: in the config files
static const char *CONFIGPASSPHRASEV2_SIGNATURE = "S:\"Config Passphrase\"=02:"; //The whole line is part of the format to prevent confusion with other similar tokens also prefixed with 02: in the config files
u64 module_esalt_size (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra)
{

@ -101,7 +101,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_SIGNATURE;
/**
* Haschat
* Hashcat
* format 1: $krb5asrep$18$user$realm$checksum$edata2
*
* JtR

@ -101,7 +101,7 @@ int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSE
| TOKEN_ATTR_VERIFY_SIGNATURE;
/**
* Haschat
* Hashcat
* format 1: $krb5asrep$18$user$realm$checksum$edata2
*
* JtR

@ -397,7 +397,7 @@ int potfile_remove_parse (hashcat_ctx_t *hashcat_ctx)
hash_t *hashes_buf = hashes->hashes_buf;
u32 hashes_cnt = hashes->hashes_cnt;
// no solution for these special hash types (for instane because they use hashfile in output etc)
// no solution for these special hash types (for instance because they use hashfile in output etc)
hash_t hash_buf;

@ -98,7 +98,7 @@ static const char *const USAGE_BIG_PRE_HASHMODES[] =
" --backend-ignore-hip | | Do not try to open HIP interface on startup |",
" --backend-ignore-metal | | Do not try to open Metal interface on startup |",
" --backend-ignore-opencl | | Do not try to open OpenCL interface on startup |",
" -I, --backend-info | | Show system/evironment/backend API info | -I or -II",
" -I, --backend-info | | Show system/environment/backend API info | -I or -II",
" -d, --backend-devices | Str | Backend devices to use, separated with commas | -d 1",
" -Y, --backend-devices-virtual | Num | Spawn X virtual instances for each real device | -Y 8",
" -D, --opencl-device-types | Str | OpenCL device-types to use, separated with commas | -D 1",

@ -72,7 +72,7 @@ if ($version ne "\x02")
}
read_bytes ($file_handle, 1); # reservered/skip (normally should be just \x00)
read_bytes ($file_handle, 1); # reserved/skip (normally should be just \x00)
# Loop over the extensions until we got extension size 0

@ -379,7 +379,7 @@ chdir ($hashcat_path);
for my $hash_type (@hash_types)
{
# banchmark always in optimized mode with single hash and mask!
# benchmark always in optimized mode with single hash and mask!
my $mask = $default_mask;
@ -521,7 +521,7 @@ sub get_module
{
if (($hash_type == 22000) || ($hash_type == 22001))
{
## problem while in -m 2500 backward compatiblity mode
## problem while in -m 2500 backward compatibility mode
}
else
{

@ -218,7 +218,7 @@ function init()
echo "They will be fetched from ${luks_tests_url}"
echo "Note: this needs to be done only once and could take a little bit to download/extract."
echo "These luks test files are not shipped directly with hashcat because the file sizes are"
echo "particularily large and therefore a bandwidth burner for users who do not run these tests."
echo "particularly large and therefore a bandwidth burner for users who do not run these tests."
echo ""
# download:

@ -13,12 +13,12 @@ During `verify` tests the `module_verify_hash` function must parse the hash:pass
**Important**: You have to call `pack_if_HEX_notation` as soon as you have parsed the password, or your tests will fail on passwords in the `$HEX[...]` format.
If the algorithm has ambiguous hashes (e.g. partial case-insensetivity), the test module can provide an optional function `module_preprocess_hashlist`. It recieves a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of `module_verify_hash`.
If the algorithm has ambiguous hashes (e.g. partial case-insensitivity), the test module can provide an optional function `module_preprocess_hashlist`. It receives a reference to the hashlist array and can unify the hashes in a way that guarantees the match with the output of `module_verify_hash`.
#### Examples ####
* For the most basic test modules, see [m00000.pm](m00000.pm) and [m00100.pm](m00100.pm)
* For the basic salted hash tests, see [m00110.pm](m00110.pm) and [m00120.pm](m00120.pm)
* For some sligthly more complex modules with PBKDF2 and encryption, see [m18400.pm](m18400.pm) and [m18600.pm](m18600.pm)
* For some slightly more complex modules with PBKDF2 and encryption, see [m18400.pm](m18400.pm) and [m18600.pm](m18600.pm)
* For a test module with hashlist preprocessing and a custom salt generation algorithm, see [m05600.pm](m05600.pm)

@ -11,7 +11,7 @@ use warnings;
use Net::DNS::RR::NSEC3;
use Net::DNS::SEC;
# we need to restict the pure password length for the test module to 63 bytes,
# we need to restrict the pure password length for the test module to 63 bytes,
# because we can't have any string (including the pass) of over 63 bytes without "."
# sub module_constraints { [[1, 256], [-1, -1], [1, 55], [-1, -1], [-1, -1]] }

@ -29,7 +29,7 @@ sub module_generate_hash
my $word_buf_base64 = encode_base64 ($word, "");
my $salt_buf_base64 = encode_base64 ($salt, "");
# sanitize lenghs
# sanitize lengths
$out_len = int ($out_len);

@ -59,7 +59,7 @@ sub module_generate_hash
my $dec_bin = $aes->decrypt ($data_bin);
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -56,7 +56,7 @@ sub module_generate_hash
my $dec_bin = $aes->decrypt ($data_bin);
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -56,7 +56,7 @@ sub module_generate_hash
my $dec_bin = $aes->decrypt ($data_bin);
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -58,7 +58,7 @@ sub module_generate_hash
my $dec_bin = $aes->decrypt ($data_bin);
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -58,7 +58,7 @@ sub module_generate_hash
my $dec_bin = $aes->decrypt ($data_bin);
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -80,7 +80,7 @@ sub module_generate_hash
$dec_bin = $aes->decrypt ($data_bin);
}
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -80,7 +80,7 @@ sub module_generate_hash
$dec_bin = $aes->decrypt ($data_bin);
}
## This is a ridiculous check of successfull decryption
## This is a ridiculous check of successful decryption
## There are no useable asn1 parsers for perl available
## We have to rely on a combination of padding check and pattern matching
## The (minimum) 16 bit should be good enough for a unit test

@ -99,7 +99,7 @@ sub pdf_compute_encryption_key_owner
my $o_key;
if ($R == 2)
{
$o_key = substr ($o_digest, 0, 8); # rc4 key is always 5 for revision 2, but for 3 or greather is dependent on the value of the encryption dictionaries length entry
$o_key = substr ($o_digest, 0, 8); # rc4 key is always 5 for revision 2, but for 3 or greater is dependent on the value of the encryption dictionaries length entry
}
else
{

@ -115,7 +115,7 @@ sub module_generate_hash
my $salt_bin = pack ("H*", $salt);
my $seed = unpack ("N", $salt_bin); # or maybe "L" ? not enought example data to clarify
my $seed = unpack ("N", $salt_bin); # or maybe "L" ? not enough example data to clarify
my $digest = MurmurHash ($word, $seed);

@ -58,7 +58,7 @@ sub module_generate_hash
## convert_userpin_to_secretpin()
## this looks strange. what if the user password is outside 0x20 - 0x7f?
## from some testing, it seems MS prevents the user to use any non-ascii charcters
## from some testing, it seems MS prevents the user to use any non-ascii characters
my $stage1_hexpin = uc (encode ("UTF-16LE", unpack ("H*", $word)));

@ -26,7 +26,7 @@ sub module_constraints { [[52, 52], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

@ -26,7 +26,7 @@ sub module_constraints { [[51, 51], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

@ -26,7 +26,7 @@ sub module_constraints { [[52, 52], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

@ -26,7 +26,7 @@ sub module_constraints { [[51, 51], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

@ -26,7 +26,7 @@ sub module_constraints { [[52, 52], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

@ -26,7 +26,7 @@ sub module_constraints { [[51, 51], [-1, -1], [-1, -1], [-1, -1], [-1, -1]] }
sub module_generate_hash
{
my $word = shift; # expecting valid WIF formated private key
my $word = shift; # expecting valid WIF formatted private key
my @is_valid_base58 = eval
{

Loading…
Cancel
Save