Kleiner Hack zum Wochenende ;)

Boar

New member
Mit HijackThis hab ichs weg bekommen. Danke.

Ich denk aber nicht das es böse Absicht von jami war. Ich könnte mir schon eher vorstellen, dass das Programm irgendeinen Fehler verursacht.

Gruß, Boar
 

jami

New member
Hui is mein erstes crackme gleich meine erster Virus? :D
nein also da leigt keine Absicht dahinter, und die datei sollte eigetnlcih auch nicht fehlerhaft sein da sie bei mir einwabdfrei funktionierte, zu löschen unbenennen und alles war...komisch

Ich hab sie in der Schule gemacht und komm leider erst wieder am nächsten Do dran zwecks Quellcode

Jetzt haben ja alle ANgst vor meinem Crackme, aber falls trotzdem jemand es schafft es zu cracken dann würds mich gern interessieren wie..ich habsn nicht geschafft :D
 

adrian90

New member
Achja, das mit dem andern Crackme. Ist das mit QBasic gemacht? Ich kann meine QBasic Programme auch nie löschen. Der Explorer hat immer die Datei geöffnet.
 

jami

New member
Also ich sitz jetzt grad zufälig vor einem schulcomputer und habs nochmal probiert:
Ich kann die Datei löschen unbenenne nach und bevor ich sie ausgeführt habe...mysterious
 

adrian90

New member
Vor dem ausführen kann ich das auch. Aber sobald ich die Datei ausgeführt habe. geht das nicht mehr, weil der Explorer die Datei irgendwie noch geöffnet hat. Auch nach dem Neustarten ist die Datei noch geöffnet/wird wieder geöffnet. Ich weiss auch nicht, wieso. Vielleicht ein Fehler. Auf jedenfall ist das bei mir bei jedem QBasic-Programm.
 

ivegotmail

Member of Honour
Original von jami
Also wen ich den Sinn dieses Spieles richtig verstanden habe dann muss man ein Programm schrieben in dem es zB darum geht das man eine Zahl richtig "erraten" muss - möglichst so das es keiner "erraten" kann...mit allen Hilfsmitteln(?)

Also weils mir schon fast peinlich ist zu behaupten ih hab ein "crackme" geschrieben wolt ich nicht gelch einen eigenen thread aufmachen und häng meins glech hier dran:

www.binside.de/CRACKME.EXE

gilt das bzw wie viele Sekuden habt ihr gebrauht um es zu cracken?

niocht lachen und schimpfen :D

hab mir das ding jetzt mal mit IDA Pro angeschaut. die geheimzahl ist immer eine zufallszahl (zwischen 0 und 15 ?). aber crackmes in denen man zufallszahlen rausbekommen soll, sind imo ziemlich hohl! X(
hab mal ne gepatchte version in den anhang gepackt, die falschangaben als korrekt annimmt und nach einem versuch beendet.

btw ist das ding auch noch ganz schön schlecht gecodet. wenn man (in der original CRACKME.exe) die richtige zahl eingibt und "Überhacker" erscheint, kommen danach trotzdem noch die restlichen versuche zum raten der selben geheimzahl.
 

jami

New member
ich hab mich ja schon zu meinem "crackme" geäußert...also so zufallszahl ist warmduscher auf deutsch?

Und wie hast du es gemacht?
 

ivegotmail

Member of Honour
Original von jami
also so zufallszahl ist warmduscher auf deutsch?
nein, das ist nicht "warmduscher" sonder im prinzip quatsch.

Original von jami
Also wen ich den Sinn dieses Spieles richtig verstanden habe dann muss man ein Programm schrieben in dem es zB darum geht das man eine Zahl richtig "erraten" muss - möglichst so das es keiner "erraten" kann...mit allen Hilfsmitteln(?)
du scheinst "das spiel" wirklich falsch verstanden zu haben. es geht nicht darum ein programm zu schreiben bei dem man (zufalls)zahlen errät, sondern darum irgend ein programm mit einer passwort abfrage (zahlen, buchstaben, wasauchimmer) zu schreiben, welche wir umgehen müssen bzw. versuchen das passwort rauszubekommen. oder zB zu einem bestimmten usernamen eine serial (zahlenkombination die sich aus dem usernamen errechnet) herauszufinden.

Original von jami
Und wie hast du es gemacht?
mit IDA Pro (Dissassembler) den assembler code durchgegangen und nachvollzogen was passiert.
 

+++ATH0

Member of Honour
Ich will ja nicht rumnörgeln, aber bisher waren hier nur 5-Zeiler mit einem festen Passwort vertreten.
Wie wärs zur Abwechslung mal mit nem KeygenMe mit ner richtigen Algo ?
Momentan treten wir so ziemlich auf kinderka**e rum. (sry)
 

+++ATH0

Member of Honour
Gut. Wollte ich eh schomal machen.
Ich werde das KeygenMe in NON-VCL Delphi schreiben.
Es wird nicht so schwer sein.
Dieses Wochenende bin ich auf ner LAN (Lanmasters2k5). Aber ich denke innerhalb der nächsten Woche werde ich es rausbringen.
 

+++ATH0

Member of Honour
So hier isses. Ein kleines Delphi - NonVCL Keygenme.

Rules and Hints:

- Der Name muss mindestens 3 und darf maximal 10 Zeichen haben. (Das KeygenME weist euch gegebenenfalls daraufhin)

- Der Key dazu (Zahl) hat immer exakt 8 Stellen.(Das KeygenME weist euch gegebenenfalls daraufhin)

- Wenn sich das Programm einfach verabschiedet nachdem ihr auf Check gedrückt habt, habt ihr was falsch gemacht :>.

- Wenn nichts passiert, ist der Key falsch.

- Habt ihr es geschafft kommt eine MessageBox "Glückwunsch ....".

- Ziel ist es einen Keygenerator zu schreiben. Egal welche Sprache. Wenn ihr Lust habt auch ein kleines Tut. Das ist dann gleich auch lehrreich für Einsteiger und Interessierte.

Viel Spass beim Reversen :)

//Edit: Wer die Delphi Source haben will, kann gerne ne PN an mich schicken. Ich werde diese aber auch erst rausgeben, wenn wenigstens ein paar Lösungen eingegangen sind.
 

ivegotmail

Member of Honour
solved :)

warum sich das prog immer beendet wenn man auf Check klickt, konnte ich nicht nachvollziehen. ich hab die entsprechende stelle (4080C4) einfach gepatched.
kannst ja mal erklären, warum sich das prog immer beendet.

hier der keygen quellcode:
Code:
#include <conio.h>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
	string name = "";
	string keystring = "";
	int key = 0;

	cout << "Name: ";
	cin >> name;

	// erster teil der keyberechnung
	for(int i=0; i < name.length()-1; i++) {
		key += (int)name[i]+i+1;
		if(key % 2)
			key += 0xD4;
	}

	// 2. teil der key berechunng
	// solange bis die zahl 8 stellen hat
	while(1) {
		ostringstream ostr;
		ostr << key;
		keystring = ostr.str();
		
		if( keystring.length() >= 8 )
			break;

		key *= name.length();
		key += (int)name[0] + 0x7B;

	}

	cout << "Key: " << keystring << endl;
	getch();
	return 0;
}
 

+++ATH0

Member of Honour
Schön gemacht.

Ich hab eine IfIsDebuggerPresent() Routine eingebaut :D. Gegebenenfalls beendet er sich weil er Ollydbg als Debugger erkennt. Aber halt erst, wenn der Button gedrückt wurde. Das macht die Sache mysteriöser.

Bei deinem gepatchten beendet er sich ja immer unabhängig davon ob der Debugger läuft.. Ich hab jetzt nicht reversed, aber der Jump führt wohl immer bedingungslos an die Codestelle wo das Programm beendet wird.
(WM_CLOSE).

Ich werd mir das morgen mal genauer ansehen.

Und wenn ihr wollt poste ich auch die Source.
 
Oben