├── 10hex-amd64
├── 10hex.cpp
├── 10hex.exe
├── 10hex.html
└── README.md
/10hex-amd64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wpatoolkit/10-Hex-Generator/f60fd4dbb840f75037c9261fbf98297d65613f4b/10hex-amd64
--------------------------------------------------------------------------------
/10hex.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wpatoolkit/10-Hex-Generator/f60fd4dbb840f75037c9261fbf98297d65613f4b/10hex.exe
--------------------------------------------------------------------------------
/10hex.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 10 Hex Key Analyzer
8 |
13 |
936 |
937 |
938 |
1179 |
1180 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 10 Hex Keyspace Reducer
2 | What's new
3 | Version 1.5 now includes a 10 hex key analyzer (10hex.html) than can perform in-depth statistical analysis of known valids, faster piping speed and more keyspace reducing rules.
4 |
5 | What is it?
6 | This is a small program written in C++ that will output all possible combinations of 10 hex digits while skipping over certain combinations it believes to be invalid.
7 |
8 | Only combinations which meet these criteria will be printed:
9 | • must contain 6-9 unique characters (can be expanded to 5-9 with the `-5minuniques` option)
10 | • must contain 4-8 numbers
11 | • must contain 2-6 letters
12 | • no 3 consecutive chars are sequential or reverse sequential (<10% occurrence rate)
13 | • no 3 consecutive chars are identical (<3% occurrence rate)
14 | • each character cannot appear more than 3 times (<5% occurrence rate)
15 | • the total difference between all chars cannot be less than 19 or greater than 79
16 |
17 | Character 2 Traits
18 | • c2 is not equal to c1 (eliminates 68,719,476,736 combinations) (<1% occurrence rate)
19 | • c2 is not -15 to c1 (eliminates 4,294,967,296 combinations)
20 | • c2 is not -14 to c1 (eliminates 8,589,934,592 combinations)
21 |
22 | Character 3 Traits
23 | • c2 and c3 and c10 are not identical
24 | • c3 is not -15 to c2 (eliminates 4,294,967,296 combinations)
25 | • c3 is not -13 to c2 (eliminates 12,884,901,888 combinations)
26 | • c3 is not +15 to c2 (eliminates 4,294,967,296 combinations)
27 | • c3 is not -15 to c1 (eliminates 4,294,967,296 combinations)
28 | • c3 is not -14 to c1 (eliminates 8,589,934,592 combinations)
29 | • c3 is not -13 to c1 (eliminates 12,884,901,888 combinations)
30 | • c3 is not +13 to c1 (eliminates 12,884,901,888 combinations)
31 |
32 | Character 4 Traits
33 | • when c1 equals c3, c4 is not equal to c2 (eliminates 4,294,967,296 combinations)
34 | • when c1 equals c3, c4 is not +1 to c2 (eliminates 4,026,531,840 combinations)
35 | • when c1 equals c3, c4 is not equal to c3 (eliminates 4,294,967,296 combinations)
36 | • c4 is not -15 to c3 (eliminates 4,294,967,296 combinations)
37 | • c4 is not -14 to c3 (eliminates 8,589,934,592 combinations)
38 | • c4 is not +14 to c3 (eliminates 8,589,934,592 combinations)
39 | • c4 is not +15 to c3 (eliminates 4,294,967,296 combinations)
40 | • c4 is not +13 to c2 (eliminates 12,884,901,888 combinations)
41 | • c4 is not +14 to c2 (eliminates 8,589,934,592 combinations)
42 | • c4 is not +15 to c2 (eliminates 4,294,967,296 combinations)
43 | • c4 is not -15 to c1 (eliminates 4,294,967,296 combinations)
44 | • c4 is not -14 to c1 (eliminates 8,589,934,592 combinations)
45 | • c4 is not -13 to c1 (eliminates 12,884,901,888 combinations)
46 | • c4 is not +14 to c1 (eliminates 8,589,934,592 combinations)
47 | • c4 is not +15 to c1 (eliminates 4,294,967,296 combinations)
48 |
49 | Character 5 Traits
50 | • c5 is not +15 to c4
51 | • c5 is not -15 to c3
52 | • c5 is not +14 to c3
53 | • c5 is not +15 to c3
54 | • c5 is not -15 to c2
55 | • c5 is not +13 to c2
56 | • c5 is not +14 to c2
57 | • c5 is not +15 to c2
58 | • c5 is not -13 to c1
59 | • c5 is not +13 to c1
60 | • c5 is not +14 to c1
61 |
62 | Character 6 Traits
63 | • when c3 equals c5, c4 does not equal c6
64 | • c6 is not -15 to c5
65 | • c6 is not -14 to c5
66 | • c6 is not -13 to c5
67 | • c6 is not +14 to c5
68 | • c6 is not +15 to c5
69 | • c6 is not -15 to c4
70 | • c6 is not -14 to c4
71 | • c6 is not -13 to c4
72 | • c6 is not +14 to c4
73 | • c6 is not -15 to c3
74 | • c6 is not -14 to c3
75 | • c6 is not -13 to c3
76 | • c6 is not +15 to c3
77 | • c6 is not -14 to c2
78 | • c6 is not +13 to c2
79 | • c6 is not +14 to c2
80 | • c6 is not -15 to c1
81 | • c6 is not -14 to c1
82 |
83 | Without keyspace reducing rules there are 1,099,511,627,776 (16^10) combinations in the keyspace (~13,194 GB in wordlist form).
84 |
85 | Applying these rules brings it down to 564,561,702,612 combinations or 51.3% of the original keyspace (~6,775 GB in wordlist form).
86 |
87 | Using the `-risky` parameter will bring it down even further to 367,647,332,933 or 33.4% of the keyspace (~4,412 GB in wordlist form) but with a slightly decreased chance of success.
88 |
89 | If `-no01` is used...
90 | -without any rules there would be 289,254,654,976 (14^10) combinations (~3,471.06 GB)
91 | -using the default rules reduces it to 183,780,015,460 combinations (or 63.5% of the keyspace) (~2,205.36 GB)
92 | -using the `-risky` parameter reduces it to 134,081,483,174 combinations (or 46.3% of the keyspace) (~1,608.98 GB)
93 |
94 | To compile on Windows (requires the Windows 7 SDK):
95 | `cl /EHsc 10hex.cpp`
96 |
97 | To compile on Linux:
98 | `g++ 10hex.cpp -o10hex`
99 |
100 | ##Example usage:
101 | `10hex | oclHashcat64 -m 2500 CAP.hccap`
102 | pipes its output into oclHashcat (AMD)
103 |
104 | `10hex | cudaHashcat64 -m 2500 CAP.hccap`
105 | pipes its output into cudaHashcat (NVIDIA)
106 |
107 | `10hex | aircrack-ng -w - CAP.cap -e SSID`
108 | pipes its output into aircrack-ng
109 |
110 | `./10hex | pyrit -r CAP.cap -i- attack_passthrough`
111 | pipes its output into pyrit
112 |
113 | ## Parameters
114 | You can optionally specify any of these parameters to further refine your output.
115 |
116 | `-risky`
117 | Offers significant time savings but with a higher risk of failure by using tighter differentials (the total distance between characters).
118 |
119 | `-evenonly`
120 | Will only output even numbers.
121 |
122 | `-oddonly`
123 | Will only output odd numbers.
124 |
125 | `-random`
126 | Will randomize its output while still maintaining rules.
127 |
128 | `-lower`
129 | Forces all output to be lowercase (this is the default).
130 |
131 | `-upper`
132 | Forces all output to be uppercase.
133 |
134 | `-len8`
135 | Only outputs 8-length hex digits.
136 |
137 | `-len9`
138 | Only outputs 9-length hex digits.
139 |
140 | `-no0`
141 | Ignores all combinations which have a 0 in them.
142 |
143 | `-no1`
144 | Ignores all combinations which have a 1 in them.
145 |
146 | `-no01`
147 | Ignores all combinations which have a 0 or a 1 in them.
148 |
149 | `-Xuniques`
150 | Only outputs combinations which have X unique characters in them (typically 6, 7, 8 or 9).
151 |
152 | `-Xminuniques`
153 | Only outputs combinations which have a minimum of X unique characters in them.
154 |
155 | `-startswithX`
156 | Only outputs combinations which start with X (can be 0-F).
157 |
158 | `-start X`
159 | Start on combination X (i.e. -start 100 will start on combo 100).
160 |
161 | `-stop X`
162 | Stop on combination X (i.e. -stop 200 will stop on combo 200).
163 |
--------------------------------------------------------------------------------