Seite 2 von 3 Erste 123 Letzte
  1. #11

    Registriert seit
    31.12.2012
    Beiträge
    117
    Thanked 237 Times in 71 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Und hier das ganze in C# getestet funktioniert.


    class Password
    {
    public static string Hash(String password, string key)
    {
    Debug.WriteLine("KeY: " + key);
    key = XOR(key, "vkUEOGHMFeh");

    int i = key.Length;
    int i2 = i / 2;

    i = (i2 * i2) + i2 + 12;
    i *= i % key.Length + 37;
    i2 = i % key.Length;

    i = i2 * i2;
    i = (i + i2 + 14) % key.Length;
    i = (key[i] + 2) % key.Length;

    key = string.Format("{0}{1}", key[i], XOR(key, "RB"));
    key = XOR(String.Format("{0}", (CalcInt(key) ^ 1640034174)), key);

    return "0~" + Escape(HashWithKey(password, key));
    }

    // Ab hier bleibt eigentlich immer alles gleich | Extrahiert aus 90bzy
    private static string Escape(string str)
    {
    var buffer = new StringBuilder();
    for (int i = 0; i < str.Length; ++i)
    {
    char c = str[i];
    if (c == 0)
    {
    buffer.Append("\u00010");
    }
    else if (c == 1)
    {
    buffer.Append("\u0001\u0001");
    }
    else
    {
    buffer.Append(c);
    }
    }
    return buffer.ToString();
    }
    private static string XOR(string str, string key)
    {
    int k = key.Length ^ str.Length << 3;
    int m = key.Length > str.Length ? key.Length : str.Length;
    var buffer = new StringBuilder(m);
    int n = str[0];
    int z = key[0];
    for (int i2 = 0; i2 < m; i2++)
    {
    if (n >= key.Length)
    {
    n = 0;
    }
    if (z >= str.Length)
    {
    z = 0;
    }
    buffer.Append((char)(str[z] ^ key[n] ^ k));
    n++;
    z++;
    }
    return buffer.ToString();
    }
    private static int Hash(string str)
    {
    int i = 0;
    int j = 0;
    int k = str.Length;
    int m;
    if (k < 19)
    {
    for (m = k - 1; m >= 0; m--)
    {
    i = i * 3 + str[m];
    j = j * 5 + str[k - m - 1];
    }
    }
    else
    {
    m = k / 19;
    int n = k - 1;
    while (n >= 0)
    {
    i = i * 5 + str[n];
    j = j * 3 + str[k - n - 1];
    n -= m;
    }
    }
    m = i ^ j;
    return m & 0xFFFFFF ^ m >> 24;
    }
    private static string HashWithKey(string str, string key)
    {
    var buffer = new StringBuilder();
    int i = Hash(key);
    for (int j = 0; j < str.Length; j++)
    {
    i = NextRandom(i);
    buffer.Append((char)(str[j] ^ i & 127));
    }
    return buffer.ToString();
    }
    private static int NextRandom(int n)
    {
    uint num = (uint)n;
    uint i = (num + 7) * 3;
    num = num >> 8 | (uint)num << 24;
    uint j = (uint)num >> 7 & 0x3FF;
    uint k = (uint)num >> 22 & 0x3FF;
    num ^= (uint)(j * k + 5 * (i + 3));
    return (int)num;
    }
    private static int CalcInt(string str)
    {
    int i = 0;
    int j = 0;
    int k = 0;
    for (int m = 0; m < str.Length; m++)
    {
    j = j * ((k & 0x3) != 3 ? 5 : 3) + str[str.Length - m - 1];
    k = i ^ j;
    i = i * ((k & 0x4) == 0 ? 3 : 7) + str[m * 43973 % str.Length];
    }
    return k >> 26 ^ (j ^ i) & 0x3FFFFFF;
    }
    }


    EDIT: Shifting scheiint aber noch buggy zu sein
    Geändert von SeBi (19.05.2020 um 21:33 Uhr)

  2. #12

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Hatte mir gedacht, dass es an irgendwelchen Dingen liegt.

    Entweder am Shifting, ggf. ein Problem mit dem char/int Datentyp (dszu hab ich auch mal casting probiert, liefert dann auch wieder andere Werte) oder eben am verstrunuten Obfuscaten.

    In den Methoden müsste man auf jeden Fall später einmal aufräumen. Hab testweise die switches zu Bedingungen geändert, weil das ohnehin nur ein Obfuscated-Replacement wohl war. Viele Variablen sind da wohl auch nur zum Schein drin, die werden nirgends verwendet.

    Kann gleich ab ca. 22 Uhr weiterschauen, wenn ich zuhause bin.

    - - - Aktualisiert - - -

    Okay, hab's provisorisch in meinem Clienten getestet (https://github.com/Bizarrus/Klass), funktioniert bisher. Das scheint wohl auch ohne Probleme zu gehen; bisher hatte ich jetzt noch keine Probleme mit dem Hashing.

    Ich habe aber trotzdem noch Probleme mit der Komprimierung (Siehe https://github.com/SeBiTM/Knuddels-Huffman/issues/1). Der wirft mir immer eine Exception, weil der angefragte Index größer ist, als Daten vorhanden sind.

  3. #13

    Registriert seit
    31.12.2012
    Beiträge
    117
    Thanked 237 Times in 71 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Ich schau es mir mal an hatte den Fehler bisher nur 1 mal

  4. #14

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Ich vermute, dass der Fehler halt am Encoding bzw. an extravagante Unicode-Chars liegt. Sobald dort Zeichen existieren, die außerhalb des normalen Gebrauches liegen, bekommt der da Probleme.

    Selbst im aktuellen Applet verwenden die immer noch iso-8859-15, viele der Byte-Reader, die dort implementiert sind können auch nicht mehr als 8-bit lesen. Deswegen gehen beispielsweise im Applet auch keine Emojis. Hierzu hätten die utf8mb4 nutzen müssen. Die lesen halt immer Stumpf feste Werte.

  5. #15

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Beachtet aber auch, dass ihr neben der Applet-Version auch unbedingt die Buildversion benötigt, da es ansonsten nicht funktioniert (wird im Handshake übermittelt).

    Die Methode sollte dann z.B. CABHashb200509 (oder so) heißen (wenn es denn aus b200509 extrahiert wurde).

  6. #16

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Sicher?

    Bei mir funktioniert es mit der normalen Versionsangabe, die zuvor auch im Handshake existierte.

    Was ich kurios finde, dass die aktuellen Versionen der StApp keinen Handshake senden, oder ich bin einfach nur blind.

  7. #17

    Registriert seit
    31.12.2012
    Beiträge
    117
    Thanked 237 Times in 71 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Also ich hab diesen Handshake
    Code:
    OUT: t\0V9.0cab \0https://www.knuddels.de/STAPP-200416\014\01.8.0_161 (64bit)\0-\015309\0Java HotSpot(TM) 64-Bit Server VM\0j×!5·òD<Ò-ÂոϻýÓ¿ýL#s]PÓ6èF6+fë#d5uöSï3¬ÇñHµoµ¸ÖH-¸Âµ=auÖz(ûø°ñ×<ÝhAìÝFYåÓ,-2rrtuqjgu9I-2rrtuqjgn5\04482\0Oracle Corporation\0Windows 10 (64bit)\0standalone b200416\0NICK\0PASSHASH?

  8. #18

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Es gab jetzt kürzlich ein Update. V9.0cab bleibt gleich, aber die Buildversion (aka STAPP-... und nach der Windows-Version standalone b...) ändert sich (siehe Handshake von SeBi).

    Die aktuelle Buildversion lautet b200509.

    @SeBi: Das Token nach Java HotSpot(TM) 64-Bit Server VM würde ich an deiner Stelle schnellstens zensieren (hat was mit der Hardware ID [Identifizierung] zu tun).
    Geändert von Brainy (20.05.2020 um 00:23 Uhr)

  9. #19

    Registriert seit
    31.12.2012
    Beiträge
    117
    Thanked 237 Times in 71 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Hab eben nur die Version im Handshake geändert das Hashing funktioniert aber trotzdem wie lange das funktioniert ist halt fraglich

  10. #20

    Registriert seit
    09.11.2011
    Beiträge
    121
    Thanked 129 Times in 46 Posts

    Standard AW: [Passwort] Login ab V9.0cab

    Zitat Zitat von SeBi Beitrag anzeigen
    Hab eben nur die Version im Handshake geändert das Hashing funktioniert aber trotzdem wie lange das funktioniert ist halt fraglich
    Oder so (auch an beiden Stellen im Handshake geändert?) - Glück gehabt, dass mit dem Update nichts geändert wurde. Vielleicht ja beim nächsten Update, wer weiß.

Seite 2 von 3 Erste 123 Letzte

Ähnliche Themen

  1. Wie Passwort entschlüsseln?
    Von 5onny6lack im Forum Security
    Antworten: 4
    Letzter Beitrag: 10.07.2013, 20:41
  2. Wie bei PSC passwort einsetzen?
    Von Bazs im Forum Internet und Technik
    Antworten: 4
    Letzter Beitrag: 18.04.2012, 23:11
  3. MSN Passwort ändern?
    Von Scarface im Forum Internet und Technik
    Antworten: 4
    Letzter Beitrag: 18.04.2012, 22:42
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.