1. #1

    Registriert seit
    12.12.2011
    Beiträge
    39
    Thanked 24 Times in 16 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    Guten Tag,

    hier mal eine kleine Klasse, mit der ihr ganz leicht Nicks im MFC registrieren könnt.
    Geschrieben ist das Ganze in Java, ca. 150 Zeilen.

    Es wird ein Randomnick generiert, sowie eine Randommail und Randomage.

    Es ist nur sehr Basic, da es nur als kleines Testprojekt gedacht war. Wer es erweitern will findet unter [Server] Registration-Server - Banana-Coding Forum eine Dokumentation des Registrationsservers und seines Protokolls.

    Beispieloutput:
    MFC REGGER V1.0 BY KRT
    Generate Ank3rkr3uz (6dc3a1db725501f1@gmx.net) [AGE: 59]
    POPUP: Ank3rkr3uz registriert
    _Ank3rkr3uz registriert_##Du hast soeben den Nicknamen _Ank3rkr3uz_ angemeldet, eine gute Wahl. Dieser Nickname gehört nun Dir, nur Du kennst das dazugehörige Passwort.##Gib Mainfranken-Chat nun mindestens eine _halbe Stunde_. Diese Zeit brauchst Du, um die Community richtig kennenzulernen. ##Trage Dein gewähltes _Passwort_ im Loginfenster ein und klicke anschließend auf das Button _Eintreten_. Alternativ kannst Du auch einen _beliebigen Channel_ in der Liste durch einen _Doppelklick_ auswählen.##Anschließend öffnet sich das Channelfenster, in dem Du nach Herzenslust chatten kannst.#Nach fünf Minuten wird sich das automatische Chathilfesystem _Tutorial_ bei Dir melden.##PS: Du bist selbst verantwortlich für dein Passwort und solltest es _keinem_ geben. Weder einem Freund noch Feind. Fallt nicht auf Betrüger rein, die _Charles _imitieren, denn Charles braucht euer Passwort sicher nicht!
    |-------------------¦
    BUILD SUCCESSFUL (total time: 4 seconds)
    Code:
    package mfcregger;
    
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.InetSocketAddress;
    import java.net.Proxy;
    import java.net.Socket;
    import java.net.SocketAddress;
    import java.net.URL;
    import java.util.Random;
    import java.util.StringTokenizer;
    
    /**
     *
     * @author KrT
     */
    public class Regger {
    
        private Socket sock;
        private DataInputStream input;
        private DataOutputStream output;
        private Random rand;
        private Random rnd;
    
        public Regger(String host, int port, String pHost, int pPort, String password) {
            try {
                if(!pHost.isEmpty()) {
                    SocketAddress addr = new InetSocketAddress(pHost, pPort);
                    Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr);
                    sock = new Socket(proxy);
                    InetSocketAddress dest = new InetSocketAddress(host, port);
                    sock.connect(dest);
                } else {
                    sock = new Socket(host, port);
                }
                input = new DataInputStream(sock.getInputStream());
                output = new DataOutputStream(sock.getOutputStream());
                work(password);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    
        private void work(String pass) throws IOException {
            rnd = new Random(System.currentTimeMillis());
            String nick = generateNick(10, true);
            String mail = generateMail();
            String age = String.valueOf(10 + rnd.nextInt(50));
    
            System.out.println(String.format("Generate %s (%s) [AGE: %s]", nick, mail, age));
    
            long currentTimeMillis = System.currentTimeMillis();
            rand = new Random(currentTimeMillis + 25091978L);
    
            byte[] authPackage = new byte[9];
            authPackage[0] = 0x02;
            for (int i = 56; i >= 0; i -= 8) {
                authPackage[(64 - i >> 3)] = (byte) (int) (currentTimeMillis >> i & 0xFF);
            }
    
            output.write(authPackage);
    
            send("z\0V1.1g\0http://www.mainfranken-chat.de/unterseiten/register.html\0" + "0");
    
            StringBuilder token = new StringBuilder();
            token.append("g").append("\0")
                 .append("s0").append("\0")
                 .append(nick).append("\0")
                 .append(pass).append("\0")
                 .append(pass).append("\0")
                 .append(mail).append("\0")
                 .append(age).append("\0")
                 .append(" ").append("\0")
                 .append(" ").append("\0")
                 .append("0").append("\0")
                 .append("1").append("\0");
            send(token.toString());
    
            StringTokenizer next = read();
    
            if(!next.nextToken().equals("s")) {
                System.out.println("POPUP: " + next.nextToken() + "\n" + next.nextToken() + "\n|-------------------¦");
                return;
            }
    
            token = new StringBuilder();
            token.append("g").append("\0").append("s1").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ").append("\0").append(" ");
    
            send(token.toString());
    
            next = read();
            next.nextToken();
            System.out.println("POPUP: " + next.nextToken() + "\n" + next.nextToken() + "\n|-------------------¦");
        }
    
        private StringTokenizer read() throws IOException {
            return new StringTokenizer(input.readUTF(), "\0");
        }
    
        private void send(String s) throws IOException {
            StringBuilder builder = new StringBuilder(s.length());
            for (int i = 0; i < s.length(); i++) {
                builder.append((char) (s.charAt(i) ^ rand.nextInt() >> 3 & 0x7F));
            }
            output.writeUTF(builder.toString());
        }
    
        private String generateMail() {
            return Long.toHexString(rnd.nextLong()) + "@" + (rnd.nextBoolean() ? "gmx.net" : "hotmail.de");
        }
    
        private String generateNick(int minLen, boolean subst) {
            StringBuilder content = new StringBuilder();
            try {
                URL url = new URL("http://de.wikipedia.org/w/index.php?title=Spezial:Zuf%C3%A4llige_Seite&printable=yes");
                BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
    
                String s = null;
                while ((s = reader.readLine()) != null) {
                    content.append(s).append("\n");
                }
            } catch (IOException ioe) {
            }
    
            String clearContent = content.toString();
            clearContent = clearContent.substring(0, clearContent.indexOf("Von „<a href=")).substring(clearContent.indexOf("<!-- bodytext -->")).replaceAll("<[^<]+>", "").trim();
    
            String[] words = clearContent.split("\\s");
    
            for (String word : words) {
                if (word.length() >= minLen
                        && !word.equals("[Bearbeiten]")
                        && word.matches("[a-zA-Z0-9-]+")
                        && (subst ? Character.isUpperCase(word.charAt(0)) : true)) {
                    StringBuilder finalNick = new StringBuilder();
                    for (int i = 0; i < word.length(); i++) {
                        switch (word.charAt(i)) {
                            case 'e':
                                finalNick.append(rnd.nextBoolean() ? "3" : "e");
                                break;
                            case 'i':
                                finalNick.append(rnd.nextBoolean() ? "1" : "i");
                                break;
                            case 'o':
                                finalNick.append(rnd.nextBoolean() ? "0" : "o");
                                break;
                            case 'g':
                                finalNick.append(rnd.nextBoolean() ? "q" : "g");
                                break;
                            case 's':
                                finalNick.append(rnd.nextBoolean() ? "5" : "s");
                                break;
                            default:
                                finalNick.append(word.charAt(i));
                                break;
                        }
                    }
                    return finalNick.toString();
                }
            }
    
            return generateNick(minLen, subst);
        }
    }
    Aufruf:
    Code:
    new Regger("knuddels.net", 4242, "69.120.128.180", 27977, "k-script.cc");
    Wobei die ersten beiden Parameter den Chatserver repräsentieren, die nächsten beiden den Proxy und der letzte das zu verwendene Password.

    MfG

  2. #2

    Registriert seit
    31.01.2011
    Beiträge
    54
    Thanked 106 Times in 41 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    schreiben/kissn die nicks auch unsichtbar wenn man sie so registriert?
    bzw woran liegt es das die nicks unsichtbar schreiben, oder eben nicht?

  3. #3
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    @aspire

    An der Zeit, wie lang man für die komplette Registration braucht. Führt man sie unmittelbar aus, also so schnell wie es manuell nicht möglich ist, erkennt der Server den Nick als Spambot und Nachrichten werden nicht sichtbar.
    Logischerweise muss man dann Wartezeiten einbauen zwischen den verschiedenen "Registrationsstationen" um die Sichtbarkeit der Nachrichten gewährleisten zu können.
    Geändert von Darkfield (14.03.2014 um 10:54 Uhr)

  4. #4

    Registriert seit
    31.01.2011
    Beiträge
    54
    Thanked 106 Times in 41 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    @Diebspiel

    Danke erstmal.

    Aber ist das nicht sinnlos?
    Warum blocken sie dann die registration nicht einfach :o
    Das ist perfekt für botter - man kann kissen ohne das es die leute sehen..
    Geändert von Darkfield (14.03.2014 um 10:54 Uhr)

  5. #5
    Avatar von Diebspiel
    Registriert seit
    18.11.2011
    Beiträge
    311
    Thanked 191 Times in 102 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    Die Frage haben wir uns früher auch immer gestellt, vor allem dann, weil es ja sehr lange im Hauptsystem DE möglich war.

    Wir sind damals zum Entschluss gekommen, dass das nur wegen Geldverdienens so war. Denn, jede Werbeeinblendung bringt Knuddels Geld. Und es ist ja egal, ob der Bot sie darstellt oder nicht. Knuddels sendet sie an den Clienten und das bringt Geld.

    Man kann auch nur vermuten, es gab auch wohl richtige Werbebots (unabhängig von der K-Szene). Da man aber die Nachrichten ja nicht sieht wussten diese auch nicht, das sie nicht ankommmen. Das mit dem zusätzlichen Intervall hat auf jeden Fall funktioniert.

  6. #6

    Registriert seit
    31.01.2011
    Beiträge
    54
    Thanked 106 Times in 41 Posts

    Standard MFC-Proxy-Regger OPENSOURCE

    @Diebspiel

    Okai. Danke.
    Ja habs ausprobiert, es funktioniert.

    Auf was für Ideen die kommen.^^
    Geändert von Darkfield (14.03.2014 um 10:54 Uhr)

Ähnliche Themen

  1. News-System [OpenSource]
    Von Snees im Forum PHP
    Antworten: 0
    Letzter Beitrag: 11.03.2012, 21:08
  2. SVZ Keylogger Opensource .NET
    Von APay im Forum Showroom
    Antworten: 1
    Letzter Beitrag: 11.07.2011, 20:12
  3. K-Script Client OPENSOURCE
    Von The Don of NYC im Forum Sourcecode
    Antworten: 52
    Letzter Beitrag: 01.07.2011, 21:47
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.