Crackme now! solved by: ivegotmail & Leiche

CDW

0
Mitarbeiter
Macht was ihr wollt :D, aber findet das Passwort heraus.
1.kein Debuggerschutz
2.Man findet bereits viele Hinweise zum Passwort in dem Crackme (auch ohne Debugger).
3.Wenn man die Hinweise beachtet und eine Programmiersprache (PHP reicht schon) beherrscht, sollte es kein Problem darstellen.



Das Demo-Crackme gehört eigentlich nicht zur Aufgabe,aber da
wir hier ja eine kleine Diskussion über Programmschutz durch Hashes hatten und das Crackme vom gleichen Prinzip ist:
http://hackerboard.de/thread.php?threadid=18868&hilight=hash
habe ich ein kleines Demo-Crackme dazugefügt: (siehe Anhang).Nur ein sehr kleiner Teil des Codes ist damit "verschlüsselt" worden,es wurde gar ein 3 stelliges Passwort benutzt, man sieht aber trotzdem, was gemeint ist - kein Passwort - kein Code ;). Auch wenn man durch das andere Crackme das Verfahren und den Rest kennt.
 
muah, du bist mir 15 minuten zuvorgekommen! :evil: egal, ich poste trotzdem meinen bruter code.
Code:
#define VC_EXTRALEAN
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>

const unsigned char desiredhash[20]=
{ 0x5D,0xBC,0x71,0x6C,0x46,0x00,0x09,0x7B,0x85,0xB9,0xE5,0x1D,0x6A,0xEB,0x77,0xA4,0x36,0x3B,0x03,0xED };

char pass[8] = "aaaa\0";
char hash[20];

int next_comb()
{
	int d=3;

	while(d >= 0){
		pass[d]++;
		if(pass[d] > 'z'){
			pass[d] = 'a';
			d--;
		}
		else return(1);
	}
	return(0);
}

int main()
{
	HCRYPTPROV hProv;
	HCRYPTHASH hHash;
	int len;

	CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, 0);
	do{
		CryptCreateHash(hProv, CALG_SHA, 0, 0, &hHash);
		CryptHashData(hHash, pass, 4, 0);
		CryptGetHashParam(hHash, HP_HASHVAL, hash, &len, 0);
		CryptDestroyHash(hHash);
		if(!memcmp(hash, desiredhash, 20)) break;
	}while(next_comb());
	CryptReleaseContext(hProv, 0);
	puts(pass);
}
 
@ivegotmail: mist, hatte es eigentlich so vor, dass man sich seinen BF selber schreiben musste (war aber schon recht spät, so habe ich die letzte Operation - also nochmal XOR mit dem eingegebenen Passwort, vergessen). Nicht destotrotz: gut gemacht, ihr beiden.
 
ich hatte mir zuerst auch nen eigenen bruter geschrieben und dann ist mir eingefallen dass dies unnötig war und man auch cain nehmen kann. deswegen hab ich es so in die lösung geschrieben.
hier dann nochmal mein sha1bruter:
 
@ivegotmail: P4 3.0 GHz 7 Sekunden. Da rennt die C++ Lösung doch deutliche vor (k.A <1 Sekunde). Hängt wahrscheinlich damit zusammen, dass Du noch den Hash zum vergleichen in String umwandelst. Ist aber egal, ich habe eher mit Speed von 1000 Versuchen pro sekunde kalkuliert ;)
 
hi cdw, mit welcher programiersprache hast du das programiert?

wenn c++ kannst du mir bitte den quellcode geben?





danke

redips
 
wenn c++ kannst du mir bitte den quellcode geben?
fast, eine abgewandte (Ur)Version ohne Compiler ;)
Quellcode und make (die Endung TXT dann wieder "abschneiden")
Habe den Quellcode geringfügig modifiziert (inaktive Reste aus dem anderen Crackme entfernt).
 
Zurück
Oben