| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: mein erstes ;-) im Forum Hacks & Crackmes, in der Kategorie Software Home; Hallo an Euch alle ich hab mich auch mal an einem crackme versucht. da es in vb .net geschrieben wurde, ...
![]() |
| | #1 (permalink) |
| Registriert seit: 22.03.09 ![]() Likes: 0 | Hallo an Euch alle ich hab mich auch mal an einem crackme versucht. da es in vb.net geschrieben wurde, dürfte es für die meisten nicht sehr schwer sein dies zu knacken. vielleicht schafft es dann ja sogar der eine oder ander dafür einen keygen zu erstellen. |
| | |
| | #2 (permalink) | |
| Zitat:
Code: private void Button1_Click(object sender, EventArgs e)
{
int num;
long num2;
string s = "";
string str3 = "";
bool flag = true;
if (Strings.Len(this.TextBox1.Text) == 5)
{
int num3 = this.TextBox1.TextLength - 1;
for (num = 1; num <= num3; num++)
{
num2 = Conversions.ToLong(Conversions.ToString(num2) + Conversions.ToString(Strings.Asc(this.TextBox1.Text[num])));
}
}
if (Strings.Len(num2.ToString()) >= 10)
{
num2 = Conversions.ToLong(Strings.Mid(Conversions.ToString(num2), 2, 8));
}
string str = this.wert(num2);
int num4 = str.Length - 1;
for (num = 0; num <= num4; num += 5)
{
string zahl = Strings.Mid(str, num + 1, 5);
string str5 = Conversions.ToString(this.Quersumme(zahl));
s = s + str5;
}
str3 = this.TextBox4.Text + this.TextBox5.Text + this.TextBox6.Text + this.TextBox7.Text;
byte[] bytes = Encoding.ASCII.GetBytes(s);
byte[] buffer = Encoding.ASCII.GetBytes(str3);
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
byte[] buffer3 = provider.ComputeHash(bytes);
byte[] buffer4 = provider.ComputeHash(buffer);
int num5 = buffer3.Length - 1;
for (num = 0; num <= num5; num++)
{
if (buffer4[num] == buffer3[num])
{
flag = false;
}
else
{
flag = true;
break;
}
}
if (!flag)
{
this.TextBox3.Text = "PASS";
}
else
{
this.TextBox3.Text = "FAIL";
}
}
__________________ Be the source always with you. | ||
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 22.03.09 ![]() Likes: 0 | wow, das ging schnell....nur sehe ich gerade net, ob du den login namen und den key hast? und leider kann ich aus deinem quelltext (sieht aus wie c#, kann das sein) nicht erkennen ob du einen gültigen key erzeugen kannst....kannst du ihn vielleicht in vb posten...kann ich besser lesen ;-) c# will ich erst in naher zukunft lernen...zumindest mir mal anschauen |
| | |
| | #4 (permalink) |
| Hey, hier den Code nochmal auf VB: Code: Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim num As Integer
Dim num2 As Long
Dim s As String = ""
Dim str3 As String = ""
Dim flag As Boolean = True
If (Strings.Len(Me.TextBox1.Text) = 5) Then
Dim num3 As Integer = (Me.TextBox1.TextLength - 1)
num = 1
Do While (num <= num3)
num2 = Conversions.ToLong((Conversions.ToString(num2) & Conversions.ToString(Strings.Asc(Me.TextBox1.Text.Chars(num)))))
num += 1
Loop
End If
If (Strings.Len(num2.ToString) >= 10) Then
num2 = Conversions.ToLong(Strings.Mid(Conversions.ToString(num2), 2, 8))
End If
Dim str As String = Me.wert(num2)
Dim num4 As Integer = (str.Length - 1)
num = 0
Do While (num <= num4)
Dim zahl As String = Strings.Mid(str, (num + 1), 5)
Dim str5 As String = Conversions.ToString(Me.Quersumme(zahl))
s = (s & str5)
num = (num + 5)
Loop
str3 = (Me.TextBox4.Text & Me.TextBox5.Text & Me.TextBox6.Text & Me.TextBox7.Text)
Dim bytes As Byte() = Encoding.ASCII.GetBytes(s)
Dim buffer As Byte() = Encoding.ASCII.GetBytes(str3)
Dim provider As New MD5CryptoServiceProvider
Dim buffer3 As Byte() = provider.ComputeHash(bytes)
Dim buffer4 As Byte() = provider.ComputeHash(buffer)
Dim num5 As Integer = (buffer3.Length - 1)
num = 0
Do While (num <= num5)
If (buffer4(num) = buffer3(num)) Then
flag = False
Else
flag = True
Exit Do
End If
num += 1
Loop
If Not flag Then
Me.TextBox3.Text = "PASS"
Else
Me.TextBox3.Text = "FAIL"
End If
End Sub
__________________ Be the source always with you. | |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 22.03.09 ![]() Likes: 0 | hey... ja, das ist soweit richtig. ich denke mal du hast auch reflector verwendet. was ich nicht ganz verstehe - wahrscheinlich, weil ich es noch nicht benutzt hab - warum zeigt reflector nur diesen code an...im hintergrund passieren noch ein paar berechnungen in anderen functions...warum sieht man die nicht? |
| | |
| | #6 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 42 | Die sieht man auch, vermutlich hat er halt nur die entsprechenden anderen Berechnungen nicht gepostet. Lade dir doch einfach mal den Reflector und sieh dir deine eigene .exe an, dann wirst du vermutlich auch verstehen, warum ein Crackme in jeglicher .NET Sprache ohne weitere Mechanismen eher sinnlos sind |
| | |
| | #7 (permalink) |
| Jap, ich hab nur die Button1_Click - Funktion gepostet ;-) Rest ist ja nicht so wichtig :-D
__________________ Be the source always with you. | |
| | |
| | #8 (permalink) |
| Themenstarter Registriert seit: 22.03.09 ![]() Likes: 0 | Hi AlterHacker ist ja wohl wichtig ![]() Scherz beiseite, ich hab mir jetzt mal den reflector runtergeladen und es mir angeschaut man sieht ja wirklich alles....nur denke ich - schlagt mich nicht bzw. korrigiert mich wenn ich falsch liege - muß man es erst nachproggen um auf ein ergbnis zu kommen, oder sehe ich das jetzt falsch? |
| | |
| | #9 (permalink) |
| Moderator ![]() Registriert seit: 19.06.06 ![]() ![]() ![]() Likes: 42 | Copy-Paste von dem interessanten Teil reicht doch, ist immerhin viel leichter als dir das in Assembler selber herauszusuchen |
| | |
| | #10 (permalink) |
| Themenstarter Registriert seit: 22.03.09 ![]() Likes: 0 | ja, dann danke ich erstmal allen, die sich die mühe gemacht haben da mal drauf zu schauen. will ja nicht nerven, eine frage hätte ich aber noch...da niemand einen login mit dazu gehörigem key gepostet hat...ist es so, wenn der quelltext offen liegt ist die sache erledigt? ist wie gesagt nur 'ne frage...interessiert mich schon, da ich ja keine abfrage in dem sinne suche login name xyz mit key 123abc gemacht hab, sondern es erst bei der eingabe berechnen lasse und dann den hash vergleiche. und somit kann man ja die daten nicht direkt auslesen. |
| | |
| | #11 (permalink) | |
| Natürlich Zitat:
Letztendlich wird - je nach dem - StrCmp - aufgerufen und da kann man sehr schön sehen, welche 2 Passwörter verglichen werden. Am besten ist es, du lässt dir das Passwort berechnen -> du gehst verschieden - unter Anderem auch selbstausgedachte - Algorithmen durch und benützt einen Flag .. Jedoch ist ein Glied nur so stark wie sein schwächstes Mitglied -> die Abfrage, welche es in ALLEN "geschützten" Programmen am Schluss gibt -> die ist leicht zu patchen, weshalb auch nun das Patchen nicht mehr die Kunst der Sache ist, sondern den Algo brechen um eventuell einen Keygen zu schreiben.MfG | ||
| | |
| | #12 (permalink) | ||
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() Likes: 156 | Zitat:
Zitat:
Btw: hilfreicher Link zum Patchen: http://fandigunawan.googlepages.com/CIL-Opcode-fin.pdf (2c zu 2d an 0x199c).
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | ||
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| mein erstes | escor | Hacks & Crackmes | 1 | 02.11.09 13:14 |
| mein erstes crack me VB6 | pokelol | Hacks & Crackmes | 1 | 27.12.08 14:44 |
| Mein erstes KeyGenMe | SFD | Hacks & Crackmes | 16 | 16.11.08 10:56 |
| [KeygenMe] mein erstes | crystal | Hacks & Crackmes | 5 | 23.12.05 10:49 |
| Mein erstes Design | ba2 | Umfragen | 12 | 09.10.05 11:20 |