├── QuickCorruptCSS.txt ├── jsRTC_for_Webpages.txt └── jsRTC_for_js-dosbox.txt /QuickCorruptCSS.txt: -------------------------------------------------------------------------------- 1 | This is the bookmarklet for the first version of the CSS Corruptor. 2 | Once activated, it will just auto-corrupt the whole page until nothing remains. 3 | 4 | Create a bookmark with this as the URL Contents: 5 | 6 | javascript:(function(){var elems=document.body.getElementsByTagName("*"),getOne=function(){return elems[Math.floor(Math.random()*elems.length)]},corruptMe=function(){var e=getOne().classList[0],s=getOne();s.classList[0];s.classList.add(e);var t=getOne().classList[1],a=getOne();s.classList[1];a.classList.add(t)};setInterval(function(){corruptMe()},1);})(); -------------------------------------------------------------------------------- /jsRTC_for_Webpages.txt: -------------------------------------------------------------------------------- 1 | jsRTC for Webpages (CSS Corruptor) 2 | =========================================== 3 | Author: Ircluzar 4 | 5 | jsRTC is a miniature Real-Time Corruptor written in javascript. 6 | The program is compiled into a javascript blob that is meant to be injected into webpages via a bookmark button (in the bookmark bar). 7 | 8 | Usage: 9 | To use this program, create a bookmark in your browser and put the text below as the URL. 10 | Navigate to the website you want to corrupt and click on the bookmark to execute jsRTC. 11 | 12 | jsRTC looks like and works similarly to the standard RTC but it is very minimalistic. 13 | The program will appear in the top-left corner of the website. 14 | 15 | If the program looks distorted and the title bar of it says "(Safe mode)", it is because 16 | the website blocks XSS (which jsRTC uses to block CSS inheritance) and had to fallback to injecting itself into the DOM directly. 17 | 18 | 19 | 20 | 21 | javascript:void%20function(){function%20b(){var%20a=Math.floor;try{for(var%20b,c=parent.document.body.getElementsByTagName(%22*%22),d=!1;!d;)b=c[a(Math.random()*c.length)],%22jsRTC%22!=b.id%26%26(d=!0)}catch(a){alert(%22[This%20website%20is%20incompatible%20with%20jsRTC]%20%22+a.message)}return%20b}function%20c(){var%20c=b().classList[0],d=b();d.classList[0],d.classList.add(c);var%20e=b().classList[1],f=b();d.classList[1],f.classList.add(e)}function%20d(){for(i=0;i%3Ck;i++)c()}function%20e(){j=setInterval(function(){d()},l*(1e3/60))}function%20f(){clearTimeout(j)}function%20g(){var%20a=document.getElementById(%22jsRTC%22);a.parentNode.removeChild(a);var%20b=document.createElement(%22div%22);b.style.backgroundColor=%22%232C3C4C%22,b.style.width=%22190px%22,b.style.height=%22180px%22,b.style.color=%22white%22,b.style.padding=%2210px%2010px%2010px%2010px%22,b.style.position=%22fixed%22,b.style.borderWidth=%221px%22,b.style.borderStyle=%22solid%22,b.style.borderColor=%22black%22,b.style.left=%220px%22,b.style.top=%220px%22,b.style.fontFamily=%22Arial,%20Helvetica,%20sans-serif%22,b.style.zIndex=%2299999%22;var%20c=document.createElement(%22div%22);c.style.backgroundColor=%22%231B2530%22,c.style.width=%22210px%22,c.style.height=%2218px%22,c.style.color=%22white%22,c.style.position=%22fixed%22,c.style.left=%220px%22,c.style.top=%220px%22,c.style.paddingLeft=%2210px%22;var%20g=document.createElement(%22span%22);g.style.fontSize=%2210px%22,g.appendChild(document.createTextNode(%22jsRTC%20for%20Web%20pages%20(Safe%20mode)%22)),c.appendChild(g),b.appendChild(c),b.appendChild(document.createElement(%22br%22)),b.appendChild(document.createTextNode(%22Intensity:%20%22));var%20h=document.createElement(%22input%22);h.style.width=%22105px%22,h.style.marginLeft=%2210px%22,h.style.backgroundColor=%22%231B2530%22,h.style.color=%22white%22,h.style.borderSize=%221px%22,h.setAttribute(%22type%22,%22number%22),h.setAttribute(%22id%22,%22nmIntensity%22),h.setAttribute(%22min%22,%221%22),h.setAttribute(%22value%22,%221%22),h.onchange=function(){k=h.value},b.appendChild(h),b.appendChild(document.createElement(%22br%22)),b.appendChild(document.createElement(%22br%22)),b.appendChild(document.createTextNode(%22Error%20Delay:%20%22));var%20j=document.createElement(%22input%22);j.style.width=%2285px%22,j.style.marginLeft=%2210px%22,j.style.backgroundColor=%22%231B2530%22,j.style.color=%22white%22,j.setAttribute(%22type%22,%22number%22),j.setAttribute(%22id%22,%22nmErrorDelay%22),j.setAttribute(%22min%22,%221%22),j.setAttribute(%22value%22,%221%22),j.onchange=function(){l=j.value},b.appendChild(j),b.appendChild(document.createElement(%22br%22)),b.appendChild(document.createElement(%22br%22));var%20m=document.createElement(%22button%22);m.style.width=%22190px%22,m.innerHTML=%22Start%20Auto-Corrupt%22,m.style.backgroundColor=%22%231B2530%22,m.style.color=%22%23FF4500%22,m.style.border=%22none%22,m.style.padding=%2211px%2032px%22,m.onclick=function(){%22Start%20Auto-Corrupt%22==m.innerHTML%3F(m.innerHTML=%22Stop%20Auto-Corrupt%22,e()):(m.innerHTML=%22Start%20Auto-Corrupt%22,f())},b.appendChild(m),b.appendChild(document.createElement(%22br%22));var%20n=document.createElement(%22button%22);n.style.marginTop=%225px%22,n.style.width=%22190px%22,n.innerHTML=%22Manual%20Blast%22,n.style.backgroundColor=%22%231B2530%22,n.style.color=%22%23FF4500%22,n.style.border=%22none%22,n.style.padding=%2211px%2032px%22,n.onclick=function(){d()},b.appendChild(n),document.body.appendChild(b)}var%20h,j,a=!1,k=1,l=1;(function(){var%20b=new%20Blob([%22%3Chtml%3E%3Chead%3E%3Cscript%3Efunction%20getOne(){var%20e=parent.document.body.getElementsByTagName(\%22*\%22);if(!e)return%20void(parent.fallbackTrigger=!0);for(var%20t,n=!1;!n;)t=e[Math.floor(Math.random()*e.length)],\%22jsRTC\%22!=t.id%26%26(n=!0);return%20t%3Ft:void(parent.fallbackTrigger=!0)}function%20corruptOneCss(){var%20e=getOne().classList[0],t=getOne();t.classList[0],t.classList.add(e);var%20n=getOne().classList[1],r=getOne();t.classList[1],r.classList.add(n)}function%20Blast(){for(i=0;i%3Cintensity;i++)corruptOneCss()}function%20startAutoCorrupt(){t=setInterval(function(){Blast()},errordelay*(1e3/60))}function%20stopAutoCorrupt(){clearTimeout(t)}function%20displayPanel(){var%20e=(parent.document.body.getElementsByTagName(\%22*\%22),document.createElement(\%22div\%22));e.id=\%22jsRtcPanel\%22,e.name=\%22jsRtcPanel\%22,e.style.backgroundColor=\%22%232C3C4C\%22,e.style.width=\%22190px\%22,e.style.height=\%22180px\%22,e.style.color=\%22white\%22,e.style.padding=\%2210px%2010px%2010px%2010px\%22,e.style.position=\%22fixed\%22,e.style.borderWidth=\%221px\%22,e.style.borderStyle=\%22solid\%22,e.style.borderColor=\%22black\%22,e.style.left=\%220px\%22,e.style.top=\%220px\%22,e.style.fontFamily=\%22Arial,%20Helvetica,%20sans-serif\%22,e.style.zIndex=\%2299999\%22;var%20t=document.createElement(\%22div\%22);t.style.backgroundColor=\%22%231B2530\%22,t.style.width=\%22210px\%22,t.style.height=\%2218px\%22,t.style.color=\%22white\%22,t.style.position=\%22fixed\%22,t.style.left=\%220px\%22,t.style.top=\%220px\%22,t.style.paddingLeft=\%2210px\%22;var%20n=document.createElement(\%22span\%22);n.style.fontSize=\%2210px\%22,n.appendChild(document.createTextNode(\%22jsRTC%20for%20Web%20pages\%22)),t.appendChild(n),e.appendChild(t),e.appendChild(document.createElement(\%22br\%22)),e.appendChild(document.createTextNode(\%22Intensity:%20\%22));var%20r=document.createElement(\%22input\%22);r.style.width=\%22105px\%22,r.style.marginLeft=\%2210px\%22,r.style.backgroundColor=\%22%231B2530\%22,r.style.color=\%22white\%22,r.style.borderSize=\%221px\%22,r.setAttribute(\%22type\%22,\%22number\%22),r.setAttribute(\%22id\%22,\%22nmIntensity\%22),r.setAttribute(\%22min\%22,\%221\%22),r.setAttribute(\%22value\%22,\%221\%22),r.onchange=function(){intensity=r.value},e.appendChild(r),e.appendChild(document.createElement(\%22br\%22)),e.appendChild(document.createElement(\%22br\%22)),e.appendChild(document.createTextNode(\%22Error%20Delay:%20\%22));var%20l=document.createElement(\%22input\%22);l.style.width=\%2285px\%22,l.style.marginLeft=\%2210px\%22,l.style.backgroundColor=\%22%231B2530\%22,l.style.color=\%22white\%22,l.setAttribute(\%22type\%22,\%22number\%22),l.setAttribute(\%22id\%22,\%22nmErrorDelay\%22),l.setAttribute(\%22min\%22,\%221\%22),l.setAttribute(\%22value\%22,\%221\%22),l.onchange=function(){errordelay=l.value},e.appendChild(l),e.appendChild(document.createElement(\%22br\%22)),e.appendChild(document.createElement(\%22br\%22));var%20o=document.createElement(\%22button\%22);o.style.width=\%22190px\%22,o.innerHTML=\%22Start%20Auto-Corrupt\%22,o.style.backgroundColor=\%22%231B2530\%22,o.style.color=\%22%23FF4500\%22,o.style.border=\%22none\%22,o.style.padding=\%2211px%2032px\%22,o.onclick=function(){\%22Start%20Auto-Corrupt\%22==o.innerHTML%3F(o.innerHTML=\%22Stop%20Auto-Corrupt\%22,startAutoCorrupt()):(o.innerHTML=\%22Start%20Auto-Corrupt\%22,stopAutoCorrupt())},e.appendChild(o),e.appendChild(document.createElement(\%22br\%22));var%20a=document.createElement(\%22button\%22);a.style.marginTop=\%225px\%22,a.style.width=\%22190px\%22,a.innerHTML=\%22Manual%20Blast\%22,a.style.backgroundColor=\%22%231B2530\%22,a.style.color=\%22%23FF4500\%22,a.style.border=\%22none\%22,a.style.padding=\%2211px%2032px\%22,a.onclick=function(){Blast()},e.appendChild(a),document.body.appendChild(e),loaded=!0}var%20t,intensity=1,errordelay=1,loaded=!1%3C/script%3E%3C/head%3E%3Cbody%20onload=displayPanel()%3E%3C/body%3E%3C/html%3E%22],{type:%22text/html%22}),c=window.URL.createObjectURL(b),d=document.createElement(%22iframe%22);d.id=%22jsRTC%22,d.name=%22jsRTC%22,d.style.width=%22210px%22,d.style.height=%22200px%22,d.style.padding=%220px%200px%200px%200px%22,d.style.position=%22fixed%22,d.style.borderWidth=%221px%22,d.style.borderStyle=%22solid%22,d.style.borderColor=%22black%22,d.style.left=%220px%22,d.style.top=%220px%22,d.style.zIndex=%2299999%22,d.src=c,document.body.appendChild(d),h=setInterval(function(){a%26%26(clearTimeout(h),g()),a=!0;window.frames.jsRTC.document.getElementById(%22jsRtcPanel%22);a=!1},1e3)})()}(); 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | /|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\ 35 | *** *** THE PART BELOW IS ONLY FOR DEVELOPMENT. *** *** 36 | \|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/ 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Source and building documentation below 45 | 46 | 47 | This is only for development 48 | 49 | Bookmarklet generated with: 50 | https://chriszarate.github.io/bookmarkleter/ 51 | 52 | Minified html blob generated with: 53 | https://html-minifier.com/ 54 | 55 | 56 | How to build: 57 | Due to the hazardous nature of injecting code into a webpage that uses css Globals, 58 | the corruptor has to be isolated into an iFrame. There are two codebases for this 59 | version, one is for the corruptor in the iFrame and the other is for the corruptor 60 | if it falls back to injecting itself into the DOM. I could probably refactor it to 61 | use a class but i doubt i'll ever have to maintain this code in the future. 62 | 63 | You have to use html-minifier to turn the iframe jsRTC into a one-line blob. 64 | Then, paste that blob in the place of the current blob in the DOM inject content displayFrame() method. 65 | Once that is all done, you can test the code by pasting it in the console of your browser. 66 | 67 | To turn the final code into a bookmarklet, use the tool linked above. 68 | 69 | 70 | Corruptor source: 71 | 72 | 73 | ====================================================================== 74 | DOM inject content (jsRTC that fallbacks into the DOM) 75 | ====================================================================== 76 | 77 | var fallbackCheck; 78 | var fallbackTrigger = false; 79 | 80 | var t; 81 | var intensity = 1; 82 | var errordelay = 1; 83 | 84 | function getOne() 85 | { 86 | try { 87 | 88 | var elems = parent.document.body.getElementsByTagName("*"); 89 | 90 | var found = false; 91 | var elem; 92 | while(!found) 93 | { 94 | elem = elems[Math.floor(Math.random() * elems.length)]; 95 | 96 | if(elem.id != "jsRTC") 97 | { 98 | found = true; 99 | } 100 | } 101 | } 102 | catch(err) { 103 | alert("[This website is incompatible with jsRTC] " + err.message); 104 | } 105 | 106 | return elem; 107 | } 108 | 109 | function corruptOneCss() 110 | { 111 | var e = getOne().classList[0], 112 | s = getOne(); 113 | s.classList[0]; 114 | s.classList.add(e); 115 | var t = getOne().classList[1], 116 | a = getOne(); 117 | s.classList[1]; 118 | a.classList.add(t) 119 | } 120 | 121 | 122 | function Blast() 123 | { 124 | for(i = 0;i'], {type : 'text/html'}); 269 | var newurl = window.URL.createObjectURL(blob); 270 | 271 | 272 | var para = document.createElement("iframe"); 273 | para.id = "jsRTC"; 274 | para.name = "jsRTC"; 275 | para.style.width = "210px"; 276 | para.style.height = "200px"; 277 | para.style.padding = "0px 0px 0px 0px"; 278 | para.style.position = "fixed"; 279 | para.style.borderWidth = "1px"; 280 | para.style.borderStyle = "solid"; 281 | para.style.borderColor = "black"; 282 | para.style.left = "0px"; 283 | para.style.top = "0px"; 284 | para.style.zIndex = "99999"; 285 | para.src = newurl; 286 | 287 | document.body.appendChild(para); 288 | 289 | 290 | fallbackCheck = setInterval(function(){ 291 | 292 | if(fallbackTrigger) 293 | { 294 | clearTimeout(fallbackCheck); 295 | fallback(); 296 | } 297 | 298 | fallbackTrigger = true; 299 | var panel = window.frames["jsRTC"].document.getElementById("jsRtcPanel"); 300 | fallbackTrigger = false; 301 | 302 | },(1000)); 303 | 304 | 305 | } 306 | 307 | displayFrame(); 308 | 309 | 310 | ====================================================================== 311 | iframe content (jrRTC that runs inside the iFrame) 312 | ====================================================================== 313 | 314 | -------------------------------------------------------------------------------- /jsRTC_for_js-dosbox.txt: -------------------------------------------------------------------------------- 1 | jsRTC for js-dosbox (dosgamesarchives.com edition) 2 | =========================================== 3 | Author: Ircluzar 4 | 5 | jsRTC is a miniature Real-Time Corruptor written in javascript. 6 | The program is compiled into a javascript blob that is meant to be injected into webpages via a bookmark button (in the bookmark bar). 7 | 8 | This version of jsRTC is costomized for dosgamesarchive.com (link below) 9 | https://www.dosgamesarchive.com/play-online/ 10 | 11 | Usage: 12 | To use this program, create a bookmark in your browser and put the text below as the URL. 13 | Navigate to the website you want to corrupt and click on the bookmark to execute jsRTC. 14 | 15 | jsRTC looks like and works similarly to the standard RTC but it is very minimalistic. 16 | The program will appear in the top-left corner of the website. 17 | 18 | 19 | 20 | 21 | 22 | javascript:void%20function(){function%20a(a,b){var%20c=Math.floor,d=Math.ceil;return%20a=d(a),b=c(b),c(Math.random()*(b-a+1))+a}function%20b(){if(%22RANDOM%22==h)for(i=0;i%3Cf;i++){var%20b=dosbox.module.HEAPU8.length-1,c=a(0,b),d=a(0,255);dosbox.module.HEAPU8[c]=d}else%20if(%22TILT%22==h)for(i=0;i%3Cf;i++){var%20b=dosbox.module.HEAPU8.length-1,c=a(0,b),d=a(0,255),e=dosbox.module.HEAPU8[c];if(0==e)dosbox.module.HEAPU8[c]=255;else%20if(255==e)dosbox.module.HEAPU8[c]=0;else{var%20g=1;128%3Cd%26%26(g=-1),dosbox.module.HEAPU8[c]=e+g}}}function%20c(){e=setInterval(function(){b()},g*(1e3/60))}function%20d(){clearTimeout(e)}var%20e,f=1,g=1,h=%22RANDOM%22;(function(){var%20a=document.createElement(%22div%22);a.style.backgroundColor=%22%232C3C4C%22,a.style.width=%22190px%22,a.style.height=%22200px%22,a.style.color=%22white%22,a.style.padding=%2210px%2010px%2010px%2010px%22,a.style.position=%22fixed%22,a.style.borderWidth=%221px%22,a.style.borderStyle=%22solid%22,a.style.borderColor=%22black%22,a.style.left=%220px%22,a.style.top=%220px%22,a.style.fontFamily=%22Arial,%20Helvetica,%20sans-serif%22;var%20e=document.createElement(%22div%22);e.style.backgroundColor=%22%231B2530%22,e.style.width=%22210px%22,e.style.height=%2218px%22,e.style.color=%22white%22,e.style.position=%22fixed%22,e.style.left=%220px%22,e.style.top=%220px%22;var%20j=document.createElement(%22span%22);j.style.fontSize=%2210px%22,j.appendChild(document.createTextNode(%22jsRTC%20for%20dosgamesarchive.com%22)),e.appendChild(j),a.appendChild(e),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createTextNode(%22Intensity:%20%22));var%20k=document.createElement(%22input%22);k.style.width=%22105px%22,k.style.marginLeft=%2210px%22,k.style.backgroundColor=%22%231B2530%22,k.style.color=%22white%22,k.style.borderSize=%221px%22,k.setAttribute(%22type%22,%22number%22),k.setAttribute(%22id%22,%22nmIntensity%22),k.setAttribute(%22min%22,%221%22),k.setAttribute(%22value%22,%221%22),k.onchange=function(){f=k.value},a.appendChild(k),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createTextNode(%22Error%20Delay:%20%22));var%20l=document.createElement(%22input%22);l.style.width=%2285px%22,l.style.marginLeft=%2210px%22,l.style.backgroundColor=%22%231B2530%22,l.style.color=%22white%22,l.setAttribute(%22type%22,%22number%22),l.setAttribute(%22id%22,%22nmErrorDelay%22),l.setAttribute(%22min%22,%221%22),l.setAttribute(%22value%22,%221%22),l.onchange=function(){g=l.value},a.appendChild(l),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createTextNode(%22Error%20Type:%20%22));var%20m=document.createElement(%22select%22);m.style.width=%2294px%22,m.style.marginLeft=%2210px%22,m.style.backgroundColor=%22%231B2530%22,m.style.color=%22white%22,m.setAttribute(%22type%22,%22number%22),m.setAttribute(%22id%22,%22nmErrorDelay%22);var%20n=document.createElement(%22option%22);n.setAttribute(%22value%22,%22RANDOM%22),n.innerHTML=%22RANDOM%22,m.appendChild(n);var%20o=document.createElement(%22option%22);o.setAttribute(%22value%22,%22TILT%22),o.innerHTML=%22TILT%22,m.appendChild(o),m.setAttribute(%22value%22,%22RANDOM%22),m.onchange=function(){h=m.value},a.appendChild(m),a.appendChild(document.createElement(%22br%22)),a.appendChild(document.createElement(%22br%22));var%20p=document.createElement(%22button%22);p.style.width=%22190px%22,p.innerHTML=%22Start%20Auto-Corrupt%22,p.style.backgroundColor=%22%231B2530%22,p.style.color=%22%23FF4500%22,p.style.border=%22none%22,p.style.padding=%2211px%2032px%22,p.onclick=function(){%22Start%20Auto-Corrupt%22==p.innerHTML%3F(p.innerHTML=%22Stop%20Auto-Corrupt%22,c()):(p.innerHTML=%22Start%20Auto-Corrupt%22,d())},a.appendChild(p),a.appendChild(document.createElement(%22br%22));var%20q=document.createElement(%22button%22);q.style.marginTop=%225px%22,q.style.width=%22190px%22,q.innerHTML=%22Manual%20Blast%22,q.style.backgroundColor=%22%231B2530%22,q.style.color=%22%23FF4500%22,q.style.border=%22none%22,q.style.padding=%2211px%2032px%22,q.onclick=function(){b()},a.appendChild(q);var%20r=document.getElementById(%22network_container%22);r.appendChild(a)})()}(); 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | /|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\ 33 | *** *** THE PART BELOW IS ONLY FOR DEVELOPMENT. *** *** 34 | \|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/|\|/ 35 | 36 | Source and building documentation below 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | Bookmarklet generated with: 47 | https://chriszarate.github.io/bookmarkleter/ 48 | 49 | 50 | 51 | How to build: 52 | You can test the code by pasting it into your browser's console. 53 | Use the tool linked above to convert the code into a Bookmarklet 54 | 55 | 56 | Corruptor source: 57 | 58 | ====================================================================== 59 | DOM inject content 60 | ====================================================================== 61 | 62 | 63 | var t; 64 | var intensity = 1; 65 | var errordelay = 1; 66 | var corrupttype = "RANDOM"; 67 | 68 | function getRandomInt(min, max) { 69 | min = Math.ceil(min); 70 | max = Math.floor(max); 71 | return Math.floor(Math.random() * (max - min + 1)) + min; 72 | } 73 | 74 | function Blast() { 75 | if(corrupttype == "RANDOM") 76 | { 77 | for(i = 0;i 128) 102 | tilt = -1; 103 | 104 | dosbox.module.HEAPU8[randomAddress] = curVal + tilt; 105 | } 106 | 107 | } 108 | } 109 | } 110 | 111 | function startAutoCorrupt() 112 | { 113 | t = setInterval(function(){ 114 | Blast(); 115 | },errordelay*(1000/60)); 116 | } 117 | 118 | function stopAutoCorrupt() 119 | { 120 | clearTimeout(t); 121 | } 122 | 123 | function displayPanel() 124 | { 125 | 126 | 127 | var para = document.createElement("div"); 128 | para.style.backgroundColor = "#2C3C4C"; 129 | para.style.width = "190px"; 130 | para.style.height = "200px"; 131 | para.style.color = "white"; 132 | para.style.padding = "10px 10px 10px 10px"; 133 | para.style.position = "fixed"; 134 | para.style.borderWidth = "1px"; 135 | para.style.borderStyle = "solid"; 136 | para.style.borderColor = "black"; 137 | para.style.left = "0px"; 138 | para.style.top = "0px"; 139 | para.style.fontFamily = "Arial, Helvetica, sans-serif"; 140 | 141 | var topBar = document.createElement("div"); 142 | topBar.style.backgroundColor = "#1B2530"; 143 | topBar.style.width = "210px"; 144 | topBar.style.height = "18px"; 145 | topBar.style.color = "white"; 146 | topBar.style.position = "fixed"; 147 | topBar.style.left = "0px"; 148 | topBar.style.top = "0px"; 149 | var jsRTC = document.createElement("span"); 150 | jsRTC.style.fontSize = "10px"; 151 | jsRTC.appendChild(document.createTextNode("jsRTC for dosgamesarchive.com")); 152 | topBar.appendChild(jsRTC); 153 | para.appendChild(topBar); 154 | 155 | para.appendChild(document.createElement("br")); 156 | 157 | para.appendChild(document.createTextNode("Intensity: ")); 158 | 159 | var nmIntensity = document.createElement("input"); 160 | nmIntensity.style.width = "105px"; 161 | nmIntensity.style.marginLeft = "10px"; 162 | nmIntensity.style.backgroundColor = "#1B2530"; 163 | nmIntensity.style.color = "white"; 164 | nmIntensity.style.borderSize = "1px"; 165 | nmIntensity.setAttribute("type","number"); 166 | nmIntensity.setAttribute("id","nmIntensity"); 167 | nmIntensity.setAttribute("min","1"); 168 | nmIntensity.setAttribute("value","1"); 169 | nmIntensity.onchange = function(){ 170 | intensity = nmIntensity.value; 171 | }; 172 | 173 | para.appendChild(nmIntensity); 174 | 175 | para.appendChild(document.createElement("br")); 176 | para.appendChild(document.createElement("br")); 177 | 178 | para.appendChild(document.createTextNode("Error Delay: ")); 179 | var nmErrorDelay = document.createElement("input"); 180 | nmErrorDelay.style.width = "85px"; 181 | nmErrorDelay.style.marginLeft = "10px"; 182 | nmErrorDelay.style.backgroundColor = "#1B2530"; 183 | nmErrorDelay.style.color = "white"; 184 | nmErrorDelay.setAttribute("type","number"); 185 | nmErrorDelay.setAttribute("id","nmErrorDelay"); 186 | nmErrorDelay.setAttribute("min","1"); 187 | nmErrorDelay.setAttribute("value","1"); 188 | nmErrorDelay.onchange = function(){ 189 | errordelay = nmErrorDelay.value; 190 | }; 191 | para.appendChild(nmErrorDelay); 192 | 193 | para.appendChild(document.createElement("br")); 194 | para.appendChild(document.createElement("br")); 195 | 196 | para.appendChild(document.createTextNode("Error Type: ")); 197 | var cbErrorType = document.createElement("select"); 198 | cbErrorType.style.width = "94px"; 199 | cbErrorType.style.marginLeft = "10px"; 200 | cbErrorType.style.backgroundColor = "#1B2530"; 201 | cbErrorType.style.color = "white"; 202 | cbErrorType.setAttribute("type","number"); 203 | cbErrorType.setAttribute("id","nmErrorDelay"); 204 | 205 | var optRandom = document.createElement("option"); 206 | optRandom.setAttribute("value","RANDOM"); 207 | optRandom.innerHTML = "RANDOM"; 208 | cbErrorType.appendChild(optRandom); 209 | 210 | var optTilt = document.createElement("option"); 211 | optTilt.setAttribute("value","TILT"); 212 | optTilt.innerHTML = "TILT"; 213 | cbErrorType.appendChild(optTilt); 214 | 215 | cbErrorType.setAttribute("value","RANDOM"); 216 | cbErrorType.onchange = function(){ 217 | corrupttype = cbErrorType.value; 218 | }; 219 | para.appendChild(cbErrorType); 220 | 221 | para.appendChild(document.createElement("br")); 222 | para.appendChild(document.createElement("br")); 223 | 224 | var btnStartAutoCorrupt = document.createElement("button"); 225 | btnStartAutoCorrupt.style.width = "190px"; 226 | btnStartAutoCorrupt.innerHTML = "Start Auto-Corrupt" 227 | btnStartAutoCorrupt.style.backgroundColor = "#1B2530"; 228 | btnStartAutoCorrupt.style.color = "#FF4500"; 229 | btnStartAutoCorrupt.style.border = "none"; 230 | btnStartAutoCorrupt.style.padding = "11px 32px"; 231 | btnStartAutoCorrupt.onclick = function(){ 232 | if(btnStartAutoCorrupt.innerHTML == "Start Auto-Corrupt") 233 | { 234 | btnStartAutoCorrupt.innerHTML = "Stop Auto-Corrupt" 235 | startAutoCorrupt(); 236 | } 237 | else 238 | { 239 | btnStartAutoCorrupt.innerHTML = "Start Auto-Corrupt" 240 | stopAutoCorrupt(); 241 | } 242 | }; 243 | 244 | para.appendChild(btnStartAutoCorrupt); 245 | 246 | para.appendChild(document.createElement("br")); 247 | 248 | var btnManualBlast = document.createElement("button"); 249 | btnManualBlast.style.marginTop = "5px"; 250 | btnManualBlast.style.width = "190px"; 251 | btnManualBlast.innerHTML = "Manual Blast" 252 | btnManualBlast.style.backgroundColor = "#1B2530"; 253 | btnManualBlast.style.color = "#FF4500"; 254 | btnManualBlast.style.border = "none"; 255 | btnManualBlast.style.padding = "11px 32px"; 256 | btnManualBlast.onclick = function(){ 257 | Blast(); 258 | }; 259 | 260 | para.appendChild(btnManualBlast); 261 | 262 | var element = document.getElementById("network_container"); 263 | element.appendChild(para); 264 | 265 | } 266 | 267 | displayPanel(); 268 | 269 | 270 | 271 | 272 | --------------------------------------------------------------------------------