./c0de/c/bruteforce.txt

0.
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.
 
 
// Simple brute Force code (C) by rattle
// .aware security research
// http://www.awarenetwork.org/
 
 
#include <windows.h>
 
typedef BOOL (CALLBACK *BRUTE_CALLBACK) (LPSTR pCurrent);
 
 
BOOL CALLBACK BruteCallback(LPSTR pCurrent) {
 
	printf("%s\n",pCurrent);
	return FALSE;
 
}
 
BOOL BruteForce2(UINT iPassLen, LPCSTR szChars, BRUTE_CALLBACK pCall) 
{
	static BYTE bf[0xFF] = {0};
	static BYTE out[0xFF]= {0};
	static UINT i,j;
 
	UINT iMax = strlen(szChars)-1;
 
	if (!szChars || !pCall)
		return;
 
 
    for (i=0;i<=iPassLen;++i)
		bf[i]=0;
 
	(*bf)--;
 
    while (!bf[iPassLen]) 
    {
        ++bf[0];
 
        for (j=0;j<=iPassLen;++j) {
			if (bf[j]>iMax) {
				bf[j]=0;
                ++bf[j+1];
		}}
 
		for (j=0;j<iPassLen;++j)
			out[j]=szChars[bf[iPassLen-j-1]];
 
		out[iPassLen]='\0';
 
		if ((*pCall)(out)) return TRUE;
 
    }
 
	return FALSE;
}
 
 
VOID BruteForce(UINT iFrom, UINT iTo, LPCSTR szChars, BRUTE_CALLBACK pCall) {
 
	UINT i = 0;
 
	for (i=iFrom;i<=iTo;i++) {
		if (BruteForce2(i,szChars,pCall))
			return TRUE;
	}
 
	return FALSE;
}
 
 
int main(int argc, char *argv[]) 
{
	BruteForce(6,8,"0123456789",(BRUTE_CALLBACK) &BruteCallback);
}
 

Back