1. #1

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard [Java] Passwort-Kodierung v9.0alq

    Code:
    import java.io.Serializable;
    
    /**
     *
     * @author Flav
     */
    public class Password {
        private static final int c(Object obj)
        {
            String s1 = obj.toString();
            int i1 = 0;
            int j1 = 0;
            int k1 = 0;
            int l1 = 0;
            for(int i2 = s1.length(); l1 < i2; l1++)
            {
                j1 = j1 * ((k1 & 3) == 3 ? 3 : 5) + s1.charAt(i2 - l1 - 1);
                k1 = i1 ^ j1;
                i1 = i1 * ((k1 & 4) != 0 ? 7 : 3) + s1.charAt((l1 * 43973) % i2);
            }
    
            return k1 >>> 26 ^ (j1 ^ i1) & 0x3ffffff;
        }
    
        public static String a(String s1, String s2)
        {
            int i1 = s1.length();
            int j1 = s2.length();
            int k1 = i1 ^ j1 << 4;
            if(i1 < 1)
                return s1;
            if(j1 < 1)
                return s2;
            int l1 = i1;
            if(j1 > l1)
                l1 = j1;
            StringBuffer stringbuffer = new StringBuffer(l1);
            for(int i2 = 0; i2 < l1; i2++)
                stringbuffer.append((char)(s1.charAt(i2 % i1) ^ s2.charAt(i2 % j1) ^ k1));
    
            return stringbuffer.toString();
        }
    
        private static int ah(String s1)
        {
            int i1 = 0;
            int j1 = 0;
            int k1 = 0;
            int l1 = s1.length();
            if(l1 < 19)
            {
                for(int i2 = l1 - 1; i2 >= 0; i2--)
                {
                    i1 = i1 * 3 + s1.charAt(i2);
                    j1 = j1 * 5 + s1.charAt(l1 - i2 - 1);
                }
    
            } else
            {
                int j2 = l1 / 19;
                for(int l2 = l1 - 1; l2 >= 0; l2 -= j2)
                {
                    i1 = i1 * 5 + s1.charAt(l2);
                    j1 = j1 * 3 + s1.charAt(l1 - l2 - 1);
                }
    
            }
            k1 = i1 ^ j1;
            return k1 & 0xffffff ^ k1 >> 24;
        }
    
        public static String a(Object obj, Serializable serializable)
        {
            String s1 = obj.toString();
            int i1 = s1.length();
            String s2 = serializable.toString();
            int j1 = s2.length();
            int k1 = j1 ^ i1 << 3;
            int l1 = i1;
            if(j1 < 1)
                return s1;
            if(i1 < 1)
                return s2;
            if(j1 > l1)
                l1 = j1;
            StringBuffer stringbuffer = new StringBuffer(l1);
            int i2 = s2.charAt(0);
            int j2 = s1.charAt(0);
            for(int l2 = 0; l2 < l1;)
            {
                if(i2 >= i1)
                    i2 = 0;
                if(j2 >= j1)
                    j2 = 0;
                stringbuffer.append((char)(k1 ^ s1.charAt(i2) ^ s2.charAt(j2)));
                l2++;
                i2++;
                j2++;
            }
    
            return stringbuffer.toString();
        }
    
        public static void main(String[] args) {
            String password = "PASSWORT";
            password = password.trim();
    
            if (password.isEmpty()) {
                password = " ";
            }
    
            String s5 = "xyz"; // password key
            int i1 = 0;
            String s6 = "tXx";
            s5 = a(s5, ((Serializable) ("GBVTUrWhMGF")));
            i1 = (s5.length() * 3) / 4;
            i1 = (s5.charAt(i1) + 1) % s5.length();
            s5 = (new StringBuilder()).append("").append(a((new StringBuilder()).append("").append(c(s5.substring(0, i1)) * c(s5.substring(0, i1))).toString(), ((Serializable) (s5.substring(i1))))).append(a((new StringBuilder()).append("").append(c(s5.substring(i1)) * c(s5.substring(i1))).append(0x52a6ab61).toString(), ((Serializable) (s5.substring(0, i1))))).toString();
            i1 = Math.abs((c(s5) ^ s5.length()) % s5.length());
            i1 = (s5.charAt(i1) + 19) % s5.length();
            if(i1 == 0)
                i1 = s5.length() / 2;
            s5 = (new StringBuilder()).append(a(s5.substring(i1), ((Serializable) ("NJ")))).append(s5.substring(0, i1)).toString();
            if(i1 % 7 != 5)
                s6 = "jlK";
            s5 = (new StringBuilder()).append(s6).append(s5).toString();
    
            int hash = ah(a(password, s5));
            System.out.println(hash);
        }
    }
    1-zu-1 aus dem Client übernommen wie der Decompiler es ausgespuckt hat, wird also nur für v9.0alq funktionieren.
    Geändert von Flav (09.04.2012 um 03:14 Uhr)

  2. The Following User Says Thank You to Flav For This Useful Post:

    Sky.NET (09.04.2012)

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 02.12.2013, 23:41
  2. Wie Passwort entschlüsseln?
    Von 5onny6lack im Forum Security
    Antworten: 4
    Letzter Beitrag: 10.07.2013, 20:41
  3. Knuddels Passwort kodierung
    Von MiBo im Forum Knuddels Programmierung
    Antworten: 0
    Letzter Beitrag: 05.02.2013, 15:47
  4. Huffmann Kodierung / Komprimierung
    Von Snees im Forum Java
    Antworten: 2
    Letzter Beitrag: 25.01.2013, 17:56
  5. [v9.0acb] Passwort-Kodierung
    Von Flav im Forum Sourcecode
    Antworten: 8
    Letzter Beitrag: 29.05.2011, 23:30
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.