-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNOTES
106 lines (74 loc) · 2.26 KB
/
NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
gui notes:
check hash distribution for all hashes
bl4ckJack 0.1-1
Inputs:
password file
password hash
done - Configuration:
Brute Charset
Add/Del/Modify Module
Modules:
MD5
SHA1
NTLM
etc
GPU
% of keyspace assigned to CPU
threads per grid (slider? 0 - 1024, default: 256)
gpu refresh rate (ms, default 200)
MAX_PASS_INIT_MEM 8000640, MAX_PASS_INIT 8000640
PASS_SIZE 16
MAX_PASS_SIZE PASS_SIZE+1
uint64 pwb_nb = 1000000000; // total number of matches to test
init_bruteforce_gpu((uint)MAX_PWD_INIT_MEM, gpu_device_id);
ascii_hash_to_md5hash(MD5_str,&hash_to_crack);
set_md5_gpu_parameters(charset, (uint *)&hash_to_crack);
start_gpu_bruteforce(MD5_str, start_pwd, charset);
exit_bruteforce();
50% - Output:
Progress bar
hashes a second
Save:
xml cfg file
compress list of hashes and cfg options
(automatic?) session saving
Modules Interface:
Init(void);
BOOL HashMatch(TCHAR *); HashMatchA/HashMatchW string to compare against internal regexes
BOOL Compare(TCHAR *); CompareA/CompareW string/salt to match against hash
subscriber -> worker
publisher -> gui
publisher manage brute matrix across loads
split keyspace:
foreach i in 16 total char spaces:
(charset ie: 26)^i / (available clients)
so 0 is 'aaaa' (for keyspace of 4 chars)
and 26^4/10 = 2*26^3 + 15*26^2 + 15*26 + 15 -> 'cppp'
base26
base x
void baseX(unsigned int base, float number, char *buf, size_t buf_len) {
number -= 1;
QString buf;
// repeatedly divide # by base and convert remainder into
// appropriate character
do {
int remainder = number % base;
buf.prepend((char)(charset[remainder]))
number = number / base - 1;
} while (number >= 0);
}
base10 for numbers -> 10 + 100 + 1000 + 10,000
if working on #7
todo:
implement status/callback during bruteforce
- progress call back (start, current, finish, pws cracked, avg_hash_a_sec)
- password call back (hash, password)
progressify it
implement IPC functions that DO the bruteforcing
bruteforce:
pass starting brute string and stopping brute string
ie: cppp, czzz
use these buffers to compute md5, compare against list/binarytree of hashes
binary tree start (sorted list middle node)
convert hash to double val and compare
http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/tree.html