Thema: [v9.0acb] Passwort-Kodierung
-
27.05.2011, 23:20 #1
- Registriert seit
- 06.11.2011
- Beiträge
- 418
Thanked 686 Times in 246 Posts[v9.0acb] Passwort-Kodierung
Die Methoden zur Passwort-Kodierung in v9.0acb habe ich dem Client damals entnommen ("reversed"). Ich denke, dass da vielleicht noch jemand was mit anfangen könnte. Vielleicht interessiert sich jemand dafür und möchte sich damit weiterhin beschäftigen um eine aktuellere Passwort-Kodierung zu reversen. Solange ihr nicht das Ziel verfolgt Passwörter zu knacken ist es euch überlassen was ihr damit anstellt.
Code:private static String encrypt1(String str, String key) { int strLength = str.length(); int keyLength = key.length(); int k = keyLength ^ strLength << 3; int bufferLength = keyLength > strLength ? keyLength : strLength; StringBuilder buffer = new StringBuilder(bufferLength); int strChar = str.charAt(0); int keyChar = key.charAt(0); for (int i = 0; i < bufferLength; i++) { if (strChar >= keyLength) { strChar = 0; } if (keyChar >= strLength) { keyChar = 0; } buffer.append((char) (str.charAt(keyChar) ^ key.charAt(strChar) ^ k)); strChar++; keyChar++; } return buffer.toString(); } private static String encrypt2(String str, String key) { int strLength = str.length(); int keyLength = key.length(); int k = strLength ^ keyLength << 4; int bufferLength = keyLength > strLength ? keyLength : strLength; StringBuilder buffer = new StringBuilder(bufferLength); for (int i = 0; i < bufferLength; i++) { buffer.append((char) (str.charAt(i % strLength) ^ key.charAt(i % keyLength) ^ k)); } return buffer.toString(); } private static int hash(String str) { int i = 0; int j = 0; int strLength = str.length(); if (strLength < 19) { for (int n = strLength - 1; n >= 0; n--) { i = i * 3 + str.charAt(n); j = j * 5 + str.charAt(strLength - n - 1); } } else { int m = strLength / 19; int n = strLength - 1; while (n >= 0) { i = i * 5 + str.charAt(n); j = j * 3 + str.charAt(strLength - n - 1); n -= m; } } int k = i ^ j; return k & 0xFFFFFF ^ k >> 24; } private static int hashPassword(String password, String key) { key = encrypt1(key, "FnYDHdWwhBt"); int i = key.length() / 2; i = (i * i + i + 16) % key.length(); if (i == 0) { i = key.length() / 2; } key = encrypt1(key.substring(i), "HU") + key.substring(0, i); i = key.length() / 3; if (i == 0) { i = key.length() / 2; } key = encrypt1(key.substring(i), "ad") + key.substring(0, i); i = (key.length() * 3) / 4; if (i == 0) { i = key.length() / 2; } key = encrypt1(key.substring(i), "Hr") + key.substring(0, i); return hash(encrypt2(password, key)); }
-
29.05.2011, 02:14 #2
- Registriert seit
- 17.12.2011
- Beiträge
- 151
Thanked 24 Times in 23 Posts[v9.0acb] Passwort-Kodierung
@Bekackter Kloschüsselrand
Eine Angabe vom Autor wäre vielleicht nicht schlecht
denn du hast es eins zu eins Kopiert von Flav
Der in Übrigen der Autor Und Verfasser ist.Geändert von Darkfield (10.03.2014 um 15:15 Uhr)
-
29.05.2011, 02:16 #3
- Registriert seit
- 22.05.2012
- Beiträge
- 203
Thanked 21 Times in 9 Posts[v9.0acb] Passwort-Kodierung
@getsha
Das ist Flav.Geändert von Darkfield (10.03.2014 um 15:15 Uhr)
-
29.05.2011, 12:54 #4
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 Posts[v9.0acb] Passwort-Kodierung
Danke, werde ich morgen mal schauen, ob der mit dem iPhone kompatibel ist... Großes Danke!
Hier für C#!
Code:private static String encrypt2(String str, String key) { int strLength = str.Length; int keyLength = key.Length; int k = strLength ^ keyLength << 4; int bufferLength = keyLength > strLength ? keyLength : strLength; StringBuilder buffer = new StringBuilder(bufferLength); for (int i = 0; i < bufferLength; i++) { buffer.Append((char)(str[(i % strLength)] ^ key[(i % keyLength)] ^ k)); } return buffer.ToString(); } private static int hash(String str) { int i = 0; int j = 0; int strLength = str.Length; if (strLength < 19) { for (int n = strLength - 1; n >= 0; n--) { i = i * 3 + str[n]; j = j * 5 + str[(strLength - n - 1)]; } } else { int m = strLength / 19; int n = strLength - 1; while (n >= 0) { i = i * 5 + str[n]; j = j * 3 + str[(strLength - n - 1)]; n -= m; } } int k = i ^ j; return k & 0xFFFFFF ^ k >> 24; } private static int hashPassword(String password, String key) { key = encrypt1(key, "FnYDHdWwhBt"); int i = key.Length / 2; i = (i * i + i + 16) % key.Length; if (i == 0) { i = key.Length / 2; } key = encrypt1(key.Substring(i), "HU") + key.Substring(0, i); i = key.Length / 3; if (i == 0) { i = key.Length / 2; } key = encrypt1(key.Substring(i), "ad") + key.Substring(0, i); i = (key.Length * 3) / 4; if (i == 0) { i = key.Length / 2; } key = encrypt1(key.Substring(i), "Hr") + key.Substring(0, i); return hash(encrypt2(password, key)); } private static String encrypt1(String str, String key) { int strLength = str.Length; int keyLength = key.Length; int k = keyLength ^ strLength << 3; int bufferLength = keyLength > strLength ? keyLength : strLength; StringBuilder buffer = new StringBuilder(bufferLength); int strChar = str[0]; int keyChar = key[0]; for (int i = 0; i < bufferLength; i++) { if (strChar >= keyLength) { strChar = 0; } if (keyChar >= strLength) { keyChar = 0; } buffer.Append((char)(str[keyChar] ^ key[strChar] ^ k)); strChar++; keyChar++; } return buffer.ToString(); }
-
29.05.2011, 13:58 #5
- Registriert seit
- 06.11.2011
- Beiträge
- 418
Thanked 686 Times in 246 Posts[v9.0acb] Passwort-Kodierung
Das mag ich bezweifeln, da diese nur für v9.0acb ist. Für die iPhone App gibt es wahrscheinlich eine eigene Kodierung, die sich nicht ständig ändert.
-
29.05.2011, 14:15 #6
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 Posts[v9.0acb] Passwort-Kodierung
ALso ändern tut Sie sich schonmal nicht. Habe ja den ASM Code bereits... Habe aber erfahren, dass die iPhone APP wohl eine verschlüsselung einer älteren Javaapps nutzt.....
Muss schauen ob ich den ASM Code vernünftig in C umschreiben kann... Gäbe zwar ein guten Decompiler von Hex-Rays, kostet aber auch 3000. (ida pro 6.1)
-
29.05.2011, 14:49 #7
- Registriert seit
- 06.11.2011
- Beiträge
- 418
Thanked 686 Times in 246 Posts[v9.0acb] Passwort-Kodierung
Wenn du herausfinden kannst von welcher Version reverse ich dir die Passwort-Kodierung nochmal wenn ich die Zeit dazu finde. Ansonsten kann ich mich auch nochmal mit den ASM Code beschäftigen, hab da aber nur grundlegende Kentnisse.
-
29.05.2011, 14:52 #8
- Registriert seit
- 13.02.2011
- Beiträge
- 54
Thanked 79 Times in 49 Posts[v9.0acb] Passwort-Kodierung
Ich bin in ASM leider auch noch nicht so weit. Habe aber im Thread die InstructionList dazu gelegt.
Theoeretisch reicht es, wenn der ASM Code in lauffähigen ASM COde für Intel oder AMD Chipsatz gebracht wird, dann kann man per C#/C++ Compiler ne lauffähige Bibliothek rausbasteln.
-
29.05.2011, 23:30 #9
- Registriert seit
- 17.12.2011
- Beiträge
- 151
Thanked 24 Times in 23 Posts[v9.0acb] Passwort-Kodierung
@The Don of NYC
Entschuldigung :-( Wusste ich nicht (: *PEINLICH*Geändert von Darkfield (10.03.2014 um 15:15 Uhr)
Ähnliche Themen
-
Knuddels Passwort kodierung
Von MiBo im Forum Knuddels ProgrammierungAntworten: 0Letzter Beitrag: 05.02.2013, 15:47 -
Huffmann Kodierung / Komprimierung
Von Snees im Forum JavaAntworten: 2Letzter Beitrag: 25.01.2013, 17:56 -
[Java] Passwort-Kodierung v9.0alq
Von Flav im Forum SourcecodeAntworten: 0Letzter Beitrag: 09.04.2012, 00:57 -
Passwort von Karibikinsel
Von Rabbit im Forum Fragen & ProblemeAntworten: 13Letzter Beitrag: 20.02.2011, 01:44
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.