// ==UserScript== // @name BotClons // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match *.agariofun.com/* // @match *.agar.pro/* // @match *.agarabi.com/* // @match *.warball.co/* // @match *.agariom.net/* // @match *.agar.re/* // @match *.agarpx.com/* // @match *.easyagario.com/* // @match *.playagario.org/* // @match *.agariofr.com/* // @match *.jumboagario.com/* // @match *.agarios.org/* // @match *.agariowun.com/* // @match *.usagar.com/* // @match *.agarioplay.com/* // @match *.privateagario.net/* // @match *.agariorage.com/* // @match *.blong.io/* // @match *.agar.blue/* // @match *.agar.bio/* // @match *.agario.se/* // @match *.nbkio.com/* // @match *.agariohit.com/* // @match *.agariomultiplayer.com/* // @match *.agariogameplay.com/* // @match *.agariowow.com/* // @match *.bestagario.net/* // @match *.tytio.com/* // @match *.kralagario.com/* // @match *.agario.zafer2.com/* // @match *.agarprivateserver.net/* // @match *.agarca.com/* // @match *.agarioplay.mobi/* // @match *.agario.mobi* // @match *.abs0rb.me/* // @match *.agario.us/* // @match *.agariojoy.com/* // @match *.agario.ch/* // @match *.ioagar.us/* // @match *.play.agario0.com/* // @match *.agario.run/* // @match *.agarpvp.us/* // @match *.agario.pw/* // @match *.ogario.net/* // @match *.ogario.net/* // @match *.nbk.io/* // @match *.agario.info/* // @match *.inciagario.com/* // @match *.agar.io.biz.tr/* // @match *.agariown.com/* // @match *.agario.dk/* // @match *.agario.lol/* // @match *.agario.gen.tr/* // @match *.agarioprivateserver.us/* // @match *.agariot.com/* // @match *.agarw.com/* // @match *.agario.city/* // @match *.xn--80aaiv4ak.xn--p1ai/* // @grant none // @run-at document-start // @downloadURL none // ==/UserScript== (function(){ window.__WebSocket = window.WebSocket; window.fakeWebSocket = function(){return {readyState: 0}}; window._WebSocket = window.WebSocket = function(ip){return new window.fakeWebSocket(ip);}; window.__botclonsData = {}; window.__botclonsData.mx = 0; window.__botclonsData.my = 0; window.__botclonsData.socketaddr = null; window.addEventListener("load",function(){ // код инжектинга if(!window.OldSocket) OldSocket = window.__WebSocket; window._WebSocket = window.WebSocket = window.fakeWebSocket = function(ip){ var ws = new OldSocket(ip); ws.binaryType="arraybuffer" var fakeWS = {}; for(var i in ws) fakeWS[i] = ws[i]; fakeWS.send = function(){ //console.log("перехватили передачу! " + arguments[0]); var msg = new DataView(arguments[0]); if(location.origin == "http://www.agar.re"){ if(msg.getInt8(0, true) == 16){ window.__botclonsData.mx = msg.getInt32(1, true); window.__botclonsData.my = msg.getInt32(5, true); } } else { if(msg.getUint8(0, true) == 16){ window.__botclonsData.mx = msg.getFloat64(1, true); window.__botclonsData.my = msg.getFloat64(9, true); } } return ws.send.apply(ws, arguments); }; ws.onmessage = function(){ //console.log("перехватили прием! " + arguments[0].data); fakeWS.onmessage && fakeWS.onmessage.apply(ws, arguments); }; ws.onopen = function(){ window.__botclonsData.socketaddr = ws.url; //console.log("перехватили подключение!"); fakeWS.readyState = 1; fakeWS.onopen.apply(ws, arguments); }; ws.onclose = function(){ fakeWS.onclose.apply(ws, arguments); }; return fakeWS; } }); function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return undefined; } function eraseCookie(name) { createCookie(name,"",-1); } function $(v) { return(document.getElementById(v)); } function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); } function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); } function dragOBJ(d,e) { function drag(e) { if(!stop) { d.style.top=(tX=xy(e,1)+oY-eY+'px'); d.style.left=(tY=xy(e)+oX-eX+'px'); createCookie("botclons_menu_x", d.style.left, 999); createCookie("botclons_menu_y", d.style.top, 999); } } var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop; window.addEventListener("mousemove",drag); window.addEventListener("mouseup",function(){ stop=1; }); } var menu = document.createElement('div'); menu.setAttribute('ondragstart','return false;'); var menu_x = readCookie("botclons_menu_x") || "4px"; var menu_y = readCookie("botclons_menu_y") || "200px" menu.setAttribute('style','position: absolute; top: '+menu_y+'; left: '+menu_x+'; background-color: rgba(0,0,0,0.5); width: 200px; height: 210px; border-radius: 25px; text-align: center; padding-top: 25px; color: white; text-shadow: 0px 0px 1px black; font-weight: 900; font-size: 18px; z-index: 100000; cursor: move; -webkit-user-select: none;') document.documentElement.appendChild(menu); menu.addEventListener("mousedown",function(e){ dragOBJ(this,event); return false; }); var ws = {}; var x = 0; var y = 0; var bots = 0; var time = 0; var maxbots = 0; var ip = null; var origin = location.origin; var inter; var split = false; var feed = false; window.addEventListener('keydown',function(e){ switch(e.keyCode){ case 65: split = true; break; case 83: feed = true; break; } }); window.addEventListener('keyup',function(e){ switch(e.keyCode){ case 65: split = false; break; case 83: feed = false; break; case 68: if(ws.onclose == null){ createCookie("botclons_connect","true",999); ws.onclose = connect; connect(); } else { ws.onclose = null; ws.close(); bots = 0; maxbots = 0; time = 0; createCookie("botclons_connect","false",999); } break; } }); function connect(){ bots = 0; maxbots = 0; time = 0; if(inter){clearInterval(inter); inter = undefined;} ws = new __WebSocket("ws://109.234.35.71:8081"); ws.onopen = null; ws.onmessage = onmessage; ws.onclose = connect; if(readCookie('botclons_connect') == "false"){ ws.onclose = null; ws.close(); } } function msToTime(s) { if(s<0){return '00:00:00';} var ms = s % 1000; s = (s - ms) / 1000; var secs = s % 60; s = (s - secs) / 60; var mins = s % 60; var hrs = (s - mins) / 60; secs = (secs.toString().length<2 ? '0' : '') + secs; mins = (mins.toString().length<2 ? '0' : '') + mins; hrs = (hrs.toString().length<2 ? '0' : '') + hrs; return hrs + ':' + mins + ':' + secs; } setInterval(function(){ try{x = window.__botclonsData.mx; y = window.__botclonsData.my; ip = window.__botclonsData.socketaddr; origin = location.origin;} catch(e){}; menu.innerHTML = 'Connected: '+(ws.readyState == 1 ? 'true' : 'false')+'
Bots: '+bots+'/'+maxbots+'
TimeOut: '+msToTime(time)+'
Split - A
Feed - S
'+(ws.onclose == null ? 'Start' : 'Stop')+' - D'; },1000) function onmessage(evt){ try {var m = JSON.parse(evt.data)} catch(e){return;}; switch(m['type']){ case 'ping': send({type:'ping',data:{date:m['data'].date}}); break; case 'messageInterval': inter = setInterval(function(){send({type:'data',data:{x:x,y:y,ip:ip,origin:origin,split:split,feed:feed}});},m['data'].interval); break; case 'bots': bots = m['data'].bots; maxbots = m['data'].maxbots; time = m['data'].time; } } function send(m){ if(ws.readyState == 1){ var m = JSON.stringify(m); ws.send(m); return true; } else { return false; } } connect(); })();