I really hate it if we are talking about 2+ very different problems that are very unrelated (except that you can use mask in both cases).
1. question about 2 adjacent identical characters
2. a simple mask with a hard-coded prefix "WIFI-"
they have kind of nothing in common, so why would you hijack this thread here ?
https://hashcat.net/forum/announcement-2.html
to answer the first question, you could just use maskprocessor with -q 2
Quote:mp64 -q 2 -1 ?u?d ?1?1?1?1?1?1?1?1
(btw: the other question can also be solved with -a 3 or maskprocessor, which is very very fast, but it's not good to start talking about 2 very different and unrelated problems in a single thread)
Any idea of a mask for a-z without adjacent chars ?
(09-04-2019, 03:39 PM)philsmd Wrote: [ -> ]just answered above:
Code:
mp64 -q 2 ?l?l?l?l?l?l?l?l
But that's just a-z 0-9.
It still has adjacent chars such as afdWWdui
The WW for example.
I'm trying to create a password list that's not every combo, ie brute force as it takes to long to create file, too large and too slow to crack.
So I'm looking for alternatives, any ideas?
no, read the help of maskprocessor (
https://github.com/hashcat/maskprocessor)
Code:
-q, --seq-max=NUM Maximum number of multiple sequential characters
Did you even test it ? Do you know what -q does ?
Code:
mp64 -q 2 ?a?a?a | grep -c WW
0
0 occurences of "WW"
Seriously, WW is just one set what about, AA,BB, CC, ...ZZ.
I'm just trying to reduce the password count, even if it turns out I don't have the password in the list. Reduce the time.
-q works for each and every "multiple sequential characters"
the pipe and grep after the maskprocessor command are just used as a proof that it works.
the only command you need is maskprocessor itself
and ?a of course repeated however long your password should be
So open codeblocks.
Create new console application, select C, then call it combos.
Make sure your saving the project in c:\cpp\. Click next. Click finish.
Expand the sources folder(+), to the left side and double click on main.c.
Delete the, printf("hello world\n"); line and type or copy and paste in this code.
Code:
#include <stdio.h>
#include <string.h>
int main(){
FILE *FP;
int i=0;
char buffer[20];
sprintf(buffer, "combos.text", i);
fp=fopen(buffer, "w");
for(i=0; i<100000000;i++){
strcat(buffer, "WIFI-");
fprintf(fp, buffer);
}
return 0;
}
Then select release from the drop down menu, it should say debug currently. Then go to build on the menu and select build and run.
Your built exe should be in c:\cpp\combos\bin\release
Combos.exe
And the combos.text file should be in c:\cpp\combos
Any errors let me know.
Actually after you double click the main.c file, delete all the code in the editor not just the hello world line.
(09-05-2019, 05:00 PM)Ar76 Wrote: [ -> ]Code:
#include <stdio.h>
#include <string.h>
int main(){
FILE *FP;
int i=0;
char buffer[20];
sprintf(buffer, "combos.text", i);
fp=fopen(buffer, "w");
for(i=0; i<100000000;i++){
strcat(buffer, "WIFI-");
fprintf(fp, buffer);
}
return 0;
}
Any errors let me know.
Does that code actually work?
I have never used Codeblocks, I would be surprised if it does not mind the difference in case between "FP" when declared and "fp" when used, or the lack of format like %09u in the second argument to sprintf() in order to process the 'i' variable, which I think you meant to do within the loop so that it changes at each turn, not only once at the beginning
More importantly: you should never use strcat(), use strncat() instead, or in fact in this case I do not understand the use of either when sprintf() - or even better, snprintf() if available - is what is already meant to be used to format the variable into the name...
You should never use strcat() because it has no idea when to stop, as exemplified in this case: the common mistake would have been to concatenate two strings together (once) and hope that they fit in the buffer, which works as long as neither is under the control of someone else otherwise they can attack you with a buffer overflow, but since your loop never resets the buffer your code attacks itself: buffer becomes... well it's undefined at the beginning, hopefully your compiler would have filled it with null bytes if it was to be used by strcat() directly, but let's say that the sprintf() line compiles somehow... buffer becomes "combos.txtWIFI-" in the first loop turn, "combos.txtWIFI-WIFI-" in the second loop turn which is already overflowing the 20 bytes you allocated for buffer on the stack (20 for the text + 1 for the null byte at the end), and from the third turn of the loop your program is already overwriting its own memory; hopefully the OS kills it long before it reaches the 100000000 turns target