Skip to content
Permalink
Browse files

WPA/WPA2 cracking: In the potfile, replace password with PMK in order…

… to detect already cracked networks across all WPA modes
  • Loading branch information...
jsteube committed Apr 2, 2019
1 parent c0a31b3 commit b8d609ba1604f4fed62198ae5000e205dcc87f70
Showing with 1,145 additions and 345 deletions.
  1. +9 −1 OpenCL/m02500-pure.cl
  2. +2 −1 OpenCL/m02501-pure.cl
  3. +22 −2 OpenCL/m16800-pure.cl
  4. +18 −2 OpenCL/m16801-pure.cl
  5. +2 −0 docs/changes.txt
  6. +3 −0 include/convert.h
  7. +0 −57 include/emu_m02501_pure.h
  8. +0 −45 include/emu_m16801_pure.h
  9. +3 −1 include/modules.h
  10. +4 −1 include/types.h
  11. +0 −1 src/Makefile
  12. +20 −0 src/convert.c
  13. +2 −2 src/emu_general.c
  14. +0 −25 src/emu_m02501_pure.c
  15. +0 −25 src/emu_m16801_pure.c
  16. +1 −0 src/interface.c
  17. +1 −0 src/modules/module_00000.c
  18. +1 −0 src/modules/module_00010.c
  19. +1 −0 src/modules/module_00011.c
  20. +1 −0 src/modules/module_00012.c
  21. +1 −0 src/modules/module_00020.c
  22. +1 −0 src/modules/module_00021.c
  23. +1 −0 src/modules/module_00022.c
  24. +1 −0 src/modules/module_00023.c
  25. +1 −0 src/modules/module_00030.c
  26. +1 −0 src/modules/module_00040.c
  27. +1 −0 src/modules/module_00050.c
  28. +1 −0 src/modules/module_00060.c
  29. +1 −0 src/modules/module_00100.c
  30. +1 −0 src/modules/module_00101.c
  31. +1 −0 src/modules/module_00110.c
  32. +1 −0 src/modules/module_00111.c
  33. +1 −0 src/modules/module_00112.c
  34. +1 −0 src/modules/module_00120.c
  35. +1 −0 src/modules/module_00121.c
  36. +1 −0 src/modules/module_00122.c
  37. +1 −0 src/modules/module_00124.c
  38. +1 −0 src/modules/module_00125.c
  39. +1 −0 src/modules/module_00130.c
  40. +1 −0 src/modules/module_00131.c
  41. +1 −0 src/modules/module_00132.c
  42. +1 −0 src/modules/module_00133.c
  43. +1 −0 src/modules/module_00140.c
  44. +1 −0 src/modules/module_00141.c
  45. +1 −0 src/modules/module_00150.c
  46. +1 −0 src/modules/module_00160.c
  47. +1 −0 src/modules/module_00200.c
  48. +1 −0 src/modules/module_00300.c
  49. +1 −0 src/modules/module_00400.c
  50. +1 −0 src/modules/module_00500.c
  51. +1 −0 src/modules/module_00501.c
  52. +1 −0 src/modules/module_00600.c
  53. +1 −0 src/modules/module_00900.c
  54. +1 −0 src/modules/module_01000.c
  55. +1 −0 src/modules/module_01100.c
  56. +1 −0 src/modules/module_01300.c
  57. +1 −0 src/modules/module_01400.c
  58. +1 −0 src/modules/module_01410.c
  59. +1 −0 src/modules/module_01411.c
  60. +1 −0 src/modules/module_01420.c
  61. +1 −0 src/modules/module_01421.c
  62. +1 −0 src/modules/module_01430.c
  63. +1 −0 src/modules/module_01440.c
  64. +1 −0 src/modules/module_01441.c
  65. +1 −0 src/modules/module_01450.c
  66. +1 −0 src/modules/module_01460.c
  67. +1 −0 src/modules/module_01500.c
  68. +1 −0 src/modules/module_01600.c
  69. +1 −0 src/modules/module_01700.c
  70. +1 −0 src/modules/module_01710.c
  71. +1 −0 src/modules/module_01711.c
  72. +1 −0 src/modules/module_01720.c
  73. +1 −0 src/modules/module_01722.c
  74. +1 −0 src/modules/module_01730.c
  75. +1 −0 src/modules/module_01731.c
  76. +1 −0 src/modules/module_01740.c
  77. +1 −0 src/modules/module_01750.c
  78. +1 −0 src/modules/module_01760.c
  79. +1 −0 src/modules/module_01800.c
  80. +1 −0 src/modules/module_02000.c
  81. +1 −0 src/modules/module_02100.c
  82. +1 −0 src/modules/module_02400.c
  83. +1 −0 src/modules/module_02410.c
  84. +164 −47 src/modules/module_02500.c
  85. +189 −75 src/modules/module_02501.c
  86. +1 −0 src/modules/module_02600.c
  87. +1 −0 src/modules/module_02611.c
  88. +1 −0 src/modules/module_02612.c
  89. +1 −0 src/modules/module_02711.c
  90. +1 −0 src/modules/module_02811.c
  91. +1 −0 src/modules/module_03000.c
  92. +1 −0 src/modules/module_03100.c
  93. +1 −0 src/modules/module_03200.c
  94. +1 −0 src/modules/module_03710.c
  95. +1 −0 src/modules/module_03711.c
  96. +1 −0 src/modules/module_03800.c
  97. +1 −0 src/modules/module_03910.c
  98. +1 −0 src/modules/module_04010.c
  99. +1 −0 src/modules/module_04110.c
  100. +1 −0 src/modules/module_04300.c
  101. +1 −0 src/modules/module_04400.c
  102. +1 −0 src/modules/module_04500.c
  103. +1 −0 src/modules/module_04520.c
  104. +1 −0 src/modules/module_04521.c
  105. +1 −0 src/modules/module_04522.c
  106. +1 −0 src/modules/module_04700.c
  107. +1 −0 src/modules/module_04800.c
  108. +1 −0 src/modules/module_04900.c
  109. +1 −0 src/modules/module_05100.c
  110. +1 −0 src/modules/module_05200.c
  111. +1 −0 src/modules/module_05300.c
  112. +1 −0 src/modules/module_05400.c
  113. +1 −0 src/modules/module_05500.c
  114. +1 −0 src/modules/module_05600.c
  115. +1 −0 src/modules/module_05700.c
  116. +1 −0 src/modules/module_05800.c
  117. +1 −0 src/modules/module_06000.c
  118. +1 −0 src/modules/module_06100.c
  119. +1 −0 src/modules/module_06211.c
  120. +1 −0 src/modules/module_06212.c
  121. +1 −0 src/modules/module_06213.c
  122. +1 −0 src/modules/module_06221.c
  123. +1 −0 src/modules/module_06222.c
  124. +1 −0 src/modules/module_06223.c
  125. +1 −0 src/modules/module_06231.c
  126. +1 −0 src/modules/module_06232.c
  127. +1 −0 src/modules/module_06233.c
  128. +1 −0 src/modules/module_06241.c
  129. +1 −0 src/modules/module_06242.c
  130. +1 −0 src/modules/module_06243.c
  131. +1 −0 src/modules/module_06300.c
  132. +1 −0 src/modules/module_06400.c
  133. +1 −0 src/modules/module_06500.c
  134. +1 −0 src/modules/module_06600.c
  135. +1 −0 src/modules/module_06700.c
  136. +1 −0 src/modules/module_06800.c
  137. +1 −0 src/modules/module_06900.c
  138. +1 −0 src/modules/module_07000.c
  139. +1 −0 src/modules/module_07100.c
  140. +1 −0 src/modules/module_07200.c
  141. +1 −0 src/modules/module_07300.c
  142. +1 −0 src/modules/module_07400.c
  143. +1 −0 src/modules/module_07500.c
  144. +1 −0 src/modules/module_07700.c
  145. +1 −0 src/modules/module_07701.c
  146. +1 −0 src/modules/module_07800.c
  147. +1 −0 src/modules/module_07801.c
  148. +1 −0 src/modules/module_07900.c
  149. +1 −0 src/modules/module_08000.c
  150. +1 −0 src/modules/module_08100.c
  151. +1 −0 src/modules/module_08200.c
  152. +1 −0 src/modules/module_08300.c
  153. +1 −0 src/modules/module_08400.c
  154. +1 −0 src/modules/module_08500.c
  155. +1 −0 src/modules/module_08600.c
  156. +1 −0 src/modules/module_08700.c
  157. +1 −0 src/modules/module_08800.c
  158. +1 −0 src/modules/module_08900.c
  159. +1 −0 src/modules/module_09000.c
  160. +1 −0 src/modules/module_09100.c
  161. +1 −0 src/modules/module_09200.c
  162. +1 −0 src/modules/module_09300.c
  163. +1 −0 src/modules/module_09400.c
  164. +1 −0 src/modules/module_09500.c
  165. +1 −0 src/modules/module_09600.c
  166. +1 −0 src/modules/module_09700.c
  167. +1 −0 src/modules/module_09710.c
  168. +1 −0 src/modules/module_09720.c
  169. +1 −0 src/modules/module_09800.c
  170. +1 −0 src/modules/module_09810.c
  171. +1 −0 src/modules/module_09820.c
  172. +1 −0 src/modules/module_09900.c
  173. +1 −0 src/modules/module_10000.c
  174. +1 −0 src/modules/module_10100.c
  175. +1 −0 src/modules/module_10200.c
  176. +1 −0 src/modules/module_10300.c
  177. +1 −0 src/modules/module_10400.c
  178. +1 −0 src/modules/module_10410.c
  179. +1 −0 src/modules/module_10420.c
  180. +1 −0 src/modules/module_10500.c
  181. +1 −0 src/modules/module_10600.c
  182. +1 −0 src/modules/module_10700.c
  183. +1 −0 src/modules/module_10800.c
  184. +1 −0 src/modules/module_10900.c
  185. +1 −0 src/modules/module_11000.c
  186. +1 −0 src/modules/module_11100.c
  187. +1 −0 src/modules/module_11200.c
  188. +1 −0 src/modules/module_11300.c
  189. +1 −0 src/modules/module_11400.c
  190. +1 −0 src/modules/module_11500.c
  191. +1 −0 src/modules/module_11600.c
  192. +1 −0 src/modules/module_11700.c
  193. +1 −0 src/modules/module_11750.c
  194. +1 −0 src/modules/module_11760.c
  195. +1 −0 src/modules/module_11800.c
  196. +1 −0 src/modules/module_11850.c
  197. +1 −0 src/modules/module_11860.c
  198. +1 −0 src/modules/module_11900.c
  199. +1 −0 src/modules/module_12000.c
  200. +1 −0 src/modules/module_12001.c
  201. +1 −0 src/modules/module_12100.c
  202. +1 −0 src/modules/module_12200.c
  203. +1 −0 src/modules/module_12300.c
  204. +1 −0 src/modules/module_12400.c
  205. +1 −0 src/modules/module_12500.c
  206. +1 −0 src/modules/module_12600.c
  207. +1 −0 src/modules/module_12700.c
  208. +1 −0 src/modules/module_12800.c
  209. +1 −0 src/modules/module_12900.c
  210. +1 −0 src/modules/module_13000.c
  211. +1 −0 src/modules/module_13100.c
  212. +1 −0 src/modules/module_13200.c
  213. +1 −0 src/modules/module_13300.c
  214. +1 −0 src/modules/module_13400.c
  215. +1 −0 src/modules/module_13500.c
  216. +1 −0 src/modules/module_13600.c
  217. +1 −0 src/modules/module_13711.c
  218. +1 −0 src/modules/module_13712.c
  219. +1 −0 src/modules/module_13713.c
  220. +1 −0 src/modules/module_13721.c
  221. +1 −0 src/modules/module_13722.c
  222. +1 −0 src/modules/module_13723.c
  223. +1 −0 src/modules/module_13731.c
  224. +1 −0 src/modules/module_13732.c
  225. +1 −0 src/modules/module_13733.c
  226. +1 −0 src/modules/module_13741.c
  227. +1 −0 src/modules/module_13742.c
  228. +1 −0 src/modules/module_13743.c
  229. +1 −0 src/modules/module_13751.c
  230. +1 −0 src/modules/module_13752.c
  231. +1 −0 src/modules/module_13753.c
  232. +1 −0 src/modules/module_13761.c
  233. +1 −0 src/modules/module_13762.c
  234. +1 −0 src/modules/module_13763.c
  235. +1 −0 src/modules/module_13771.c
  236. +1 −0 src/modules/module_13772.c
  237. +1 −0 src/modules/module_13773.c
  238. +1 −0 src/modules/module_13800.c
  239. +1 −0 src/modules/module_13900.c
  240. +1 −0 src/modules/module_14000.c
  241. +1 −0 src/modules/module_14100.c
  242. +1 −0 src/modules/module_14400.c
  243. +1 −0 src/modules/module_14600.c
  244. +1 −0 src/modules/module_14700.c
  245. +1 −0 src/modules/module_14800.c
  246. +1 −0 src/modules/module_14900.c
  247. +1 −0 src/modules/module_15000.c
  248. +1 −0 src/modules/module_15100.c
  249. +1 −0 src/modules/module_15200.c
  250. +1 −0 src/modules/module_15300.c
  251. +1 −0 src/modules/module_15400.c
  252. +1 −0 src/modules/module_15500.c
  253. +1 −0 src/modules/module_15600.c
  254. +1 −0 src/modules/module_15700.c
  255. +1 −0 src/modules/module_15900.c
  256. +1 −0 src/modules/module_16000.c
  257. +1 −0 src/modules/module_16100.c
  258. +1 −0 src/modules/module_16200.c
  259. +1 −0 src/modules/module_16300.c
  260. +1 −0 src/modules/module_16400.c
  261. +1 −0 src/modules/module_16500.c
  262. +1 −0 src/modules/module_16600.c
  263. +1 −0 src/modules/module_16700.c
  264. +213 −32 src/modules/module_16800.c
  265. +178 −21 src/modules/module_16801.c
  266. +1 −0 src/modules/module_16900.c
  267. +1 −0 src/modules/module_17300.c
  268. +1 −0 src/modules/module_17400.c
  269. +1 −0 src/modules/module_17500.c
  270. +1 −0 src/modules/module_17600.c
  271. +1 −0 src/modules/module_17700.c
  272. +1 −0 src/modules/module_17800.c
  273. +1 −0 src/modules/module_17900.c
  274. +1 −0 src/modules/module_18000.c
  275. +1 −0 src/modules/module_18100.c
  276. +1 −0 src/modules/module_18200.c
  277. +1 −0 src/modules/module_18300.c
  278. +1 −0 src/modules/module_18400.c
  279. +1 −0 src/modules/module_18500.c
  280. +1 −0 src/modules/module_18600.c
  281. +1 −0 src/modules/module_18700.c
  282. +1 −0 src/modules/module_18800.c
  283. +1 −0 src/modules/module_18900.c
  284. +1 −0 src/modules/module_19000.c
  285. +1 −0 src/modules/module_19100.c
  286. +1 −0 src/modules/module_19200.c
  287. +1 −0 src/modules/module_19300.c
  288. +1 −0 src/modules/module_19500.c
  289. +1 −0 src/modules/module_19600.c
  290. +1 −0 src/modules/module_19700.c
  291. +1 −0 src/modules/module_99999.c
  292. +5 −1 src/outfile_check.c
  293. +39 −6 src/potfile.c
@@ -14,6 +14,15 @@
#include "inc_hash_sha1.cl"
#include "inc_hash_sha256.cl"
#include "inc_cipher_aes.cl"
#else
#include "inc_vendor.h"
#include "inc_types.h"
#include "inc_common.h"
#include "inc_simd.h"
#include "inc_hash_md5.h"
#include "inc_hash_sha1.h"
#include "inc_hash_sha256.h"
#include "inc_cipher_aes.h"
#endif

#define COMPARE_S "inc_comp_single.cl"
@@ -34,7 +43,6 @@ typedef struct wpa_eapol
u8 essid_len;
u8 essid[32];
u32 keymic[4];
u32 hash[4];
int nonce_compare;
int nonce_error_corrections;
int detected_le;
@@ -46,14 +46,14 @@ typedef struct wpa_eapol
u8 essid_len;
u8 essid[32];
u32 keymic[4];
u32 hash[4];
int nonce_compare;
int nonce_error_corrections;
int detected_le;
int detected_be;

} wpa_eapol_t;

#ifdef KERNEL_STATIC
DECLSPEC static u8 hex_convert (const u8 c)
{
return (c & 15) + (c >> 6) * 9;
@@ -68,6 +68,7 @@ DECLSPEC static u8 hex_to_u8 (const u8 *hex)

return (v);
}
#endif

DECLSPEC static void make_kn (u32 *k)
{
@@ -11,6 +11,12 @@
#include "inc_common.cl"
#include "inc_simd.cl"
#include "inc_hash_sha1.cl"
#else
#include "inc_vendor.h"
#include "inc_types.h"
#include "inc_common.h"
#include "inc_simd.h"
#include "inc_hash_sha1.h"
#endif

#define COMPARE_S "inc_comp_single.cl"
@@ -280,9 +286,23 @@ KERNEL_FQ void m16800_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pbkdf2_tmp_t, wpa_pmkid_t)
const u32 r2 = sha1_hmac_ctx.opad.h[2];
const u32 r3 = sha1_hmac_ctx.opad.h[3];

#define il_pos 0

#ifdef KERNEL_STATIC

#define il_pos 0
#include COMPARE_M

#else

if ((hc_swap32_S (r0) == wpa_pmkid->pmkid[0])
&& (hc_swap32_S (r1) == wpa_pmkid->pmkid[1])
&& (hc_swap32_S (r2) == wpa_pmkid->pmkid[2])
&& (hc_swap32_S (r3) == wpa_pmkid->pmkid[3]))
{
if (atomic_inc (&hashes_shown[digest_cur]) == 0)
{
mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, digest_pos, digest_cur, gid, 0, 0, 0);
}
}

#endif
}
@@ -39,6 +39,7 @@ typedef struct wpa_pmkid

} wpa_pmkid_t;

#ifdef KERNEL_STATIC
DECLSPEC static u8 hex_convert (const u8 c)
{
return (c & 15) + (c >> 6) * 9;
@@ -53,6 +54,7 @@ DECLSPEC static u8 hex_to_u8 (const u8 *hex)

return (v);
}
#endif

KERNEL_FQ void m16801_init (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t))
{
@@ -157,9 +159,23 @@ KERNEL_FQ void m16801_aux1 (KERN_ATTR_TMPS_ESALT (wpa_pmk_tmp_t, wpa_pmkid_t))
const u32 r2 = sha1_hmac_ctx.opad.h[2];
const u32 r3 = sha1_hmac_ctx.opad.h[3];

#define il_pos 0

#ifdef KERNEL_STATIC

#define il_pos 0
#include COMPARE_M

#else

if ((hc_swap32_S (r0) == wpa_pmkid->pmkid[0])
&& (hc_swap32_S (r1) == wpa_pmkid->pmkid[1])
&& (hc_swap32_S (r2) == wpa_pmkid->pmkid[2])
&& (hc_swap32_S (r3) == wpa_pmkid->pmkid[3]))
{
if (atomic_inc (&hashes_shown[digest_cur]) == 0)
{
mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, digest_pos, digest_cur, gid, 0, 0, 0);
}
}

#endif
}
@@ -55,13 +55,15 @@
- OpenCL Runtime: Update unstable mode warnings for Apple and AMDGPU drivers
- OpenCL Runtime: Workaround JiT compiler error on AMDGPU driver compiling WPA-EAPOL-PBKDF2 OpenCL kernel
- Tuning Database: Updated hashcat.hctune with new models and refreshed vector width values
- WPA/WPA2 cracking: In the potfile, replace password with PMK in order to detect already cracked networks across all WPA modes

##
## Technical
##

- Binary Distribution: Removed 32 bit binary executables
- Keep Guessing: No longer automatically activate --keep-guessing for modes 9720, 9820, 14900 and 18100
- Mode 16800/16801 hash format: Changed separator character from '*' to ':'

* changes v5.0.0 -> v5.1.0

@@ -66,4 +66,7 @@ u32 v32a_from_v64 (const u64 v64);
u32 v32b_from_v64 (const u64 v64);
u64 v64_from_v32ab (const u32 v32a, const u32 v32b);

int hex_decode (const u8 *in_buf, const int in_len, u8 *out_buf);
int hex_encode (const u8 *in_buf, const int in_len, u8 *out_buf);

#endif // _CONVERT_H

This file was deleted.

This file was deleted.

@@ -54,7 +54,7 @@ int module_hash_binary_count (MAYBE_UNUSED const hashes_t *hashes
int module_hash_binary_parse (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, hashes_t *hashes);
int module_hash_binary_save (MAYBE_UNUSED const hashes_t *hashes, MAYBE_UNUSED const u32 salt_pos, MAYBE_UNUSED const u32 digest_pos, char **buf);

int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len);
int module_hash_decode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len, MAYBE_UNUSED void *tmps);
int module_hash_decode_zero_hash (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info);
int module_hash_decode (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED void *digest_buf, MAYBE_UNUSED salt_t *salt, MAYBE_UNUSED void *esalt_buf, MAYBE_UNUSED void *hook_salt_buf, MAYBE_UNUSED hashinfo_t *hash_info, const char *line_buf, MAYBE_UNUSED const int line_len);
int module_hash_encode_potfile (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const void *digest_buf, MAYBE_UNUSED const salt_t *salt, MAYBE_UNUSED const void *esalt_buf, MAYBE_UNUSED const void *hook_salt_buf, MAYBE_UNUSED const hashinfo_t *hash_info, char *line_buf, MAYBE_UNUSED const int line_size, MAYBE_UNUSED const void *tmps);
@@ -76,4 +76,6 @@ int module_build_plain_postprocess (MAYBE_UNUSED const hashconfig_t *ha

bool module_unstable_warning (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const user_options_t *user_options, MAYBE_UNUSED const user_options_extra_t *user_options_extra, MAYBE_UNUSED const hc_device_param_t *device_param);

bool module_potfile_custom_check (MAYBE_UNUSED const hashconfig_t *hashconfig, MAYBE_UNUSED const hash_t *db, MAYBE_UNUSED const hash_t *entry_hash, MAYBE_UNUSED const void *entry_tmps);

#endif // _MODULES_H
@@ -415,6 +415,7 @@ typedef enum opts_type
OPTS_TYPE_DEEP_COMP_KERNEL = (1ULL << 42), // if we have to iterate through each hash inside the comp kernel, for example if each hash has to be decrypted separately
OPTS_TYPE_SUGGEST_KG = (1ULL << 43), // suggest keep guessing for modules the user maybe wants to use --keep-guessing
OPTS_TYPE_COPY_TMPS = (1ULL << 44), // if we want to use data from tmps buffer (for example get the PMK in WPA)
OPTS_TYPE_POTFILE_NOPASS = (1ULL << 45), // sometimes the password should not be printed to potfile

} opts_type_t;

@@ -2244,7 +2245,7 @@ typedef struct module_ctx
int (*module_hash_binary_parse) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *, hashes_t *);
int (*module_hash_binary_save) (const hashes_t *, const u32, const u32, char **);

int (*module_hash_decode_potfile) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int);
int (*module_hash_decode_potfile) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int, void *);
int (*module_hash_decode_zero_hash) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *);
int (*module_hash_decode) (const hashconfig_t *, void *, salt_t *, void *, void *, hashinfo_t *, const char *, const int);
int (*module_hash_encode_potfile) (const hashconfig_t *, const void *, const salt_t *, const void *, const void *, const hashinfo_t *, char *, int, const void *);
@@ -2266,6 +2267,8 @@ typedef struct module_ctx

bool (*module_unstable_warning) (const hashconfig_t *, const user_options_t *, const user_options_extra_t *, const hc_device_param_t *);

bool (*module_potfile_custom_check) (const hashconfig_t *, const hash_t *, const hash_t *, const void *);

} module_ctx_t;

typedef struct hashcat_ctx
@@ -282,7 +282,6 @@ EMU_OBJS_ALL += emu_inc_rp emu_inc_rp_optimized
EMU_OBJS_ALL += emu_inc_truecrypt_crc32 emu_inc_truecrypt_keyfile emu_inc_truecrypt_xts emu_inc_veracrypt_xts
EMU_OBJS_ALL += emu_inc_hash_md4 emu_inc_hash_md5 emu_inc_hash_ripemd160 emu_inc_hash_sha1 emu_inc_hash_sha256 emu_inc_hash_sha384 emu_inc_hash_sha512 emu_inc_hash_streebog256 emu_inc_hash_streebog512
EMU_OBJS_ALL += emu_inc_cipher_aes emu_inc_cipher_camellia emu_inc_cipher_des emu_inc_cipher_kuznyechik emu_inc_cipher_serpent emu_inc_cipher_twofish
EMU_OBJS_ALL += emu_m02501_pure emu_m16801_pure

OBJS_ALL := affinity autotune benchmark bitmap bitops combinator common convert cpt cpu_crc32 debugfile dictstat dispatch dynloader event ext_ADL ext_nvapi ext_nvml ext_OpenCL ext_sysfs ext_lzma filehandling folder hashcat hashes hlfmt hwmon induct interface keyboard_layout locking logfile loopback memory monitor mpsp opencl outfile_check outfile pidfile potfile restore rp rp_cpu selftest slow_candidates shared status stdout straight terminal thread timer tuningdb usage user_options wordlist $(EMU_OBJS_ALL)

@@ -894,3 +894,23 @@ u64 v64_from_v32ab (const u32 v32a, const u32 v32b)

return v.v64;
}

int hex_decode (const u8 *in_buf, const int in_len, u8 *out_buf)
{
for (int i = 0, j = 0; i < in_len; i += 2, j += 1)
{
out_buf[j] = hex_to_u8 (&in_buf[i]);
}

return in_len / 2;
}

int hex_encode (const u8 *in_buf, const int in_len, u8 *out_buf)
{
for (int i = 0, j = 0; i < in_len; i += 1, j += 2)
{
u8_to_hex (in_buf[i], &out_buf[j]);
}

return in_len * 2;
}
@@ -9,12 +9,12 @@

u32 atomic_dec (u32 *p)
{
return *p--;
return p[0]--;
}

u32 atomic_inc (u32 *p)
{
return *p++;
return p[0]++;
}

size_t get_global_id (u32 dimindx __attribute__((unused)))

This file was deleted.

This file was deleted.

0 comments on commit b8d609b

Please sign in to comment.
You can’t perform that action at this time.