BotClons

try to take over the world!

  1. // ==UserScript==
  2. // @name BotClons
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match *.agariofun.com/*
  8. // @match *.agar.pro/*
  9. // @match *.agarabi.com/*
  10. // @match *.warball.co/*
  11. // @match *.agariom.net/*
  12. // @match *.agar.re/*
  13. // @match *.agarpx.com/*
  14. // @match *.easyagario.com/*
  15. // @match *.playagario.org/*
  16. // @match *.agariofr.com/*
  17. // @match *.jumboagario.com/*
  18. // @match *.agarios.org/*
  19. // @match *.agariowun.com/*
  20. // @match *.usagar.com/*
  21. // @match *.agarioplay.com/*
  22. // @match *.privateagario.net/*
  23. // @match *.agariorage.com/*
  24. // @match *.blong.io/*
  25. // @match *.agar.blue/*
  26. // @match *.agar.bio/*
  27. // @match *.agario.se/*
  28. // @match *.nbkio.com/*
  29. // @match *.agariohit.com/*
  30. // @match *.agariomultiplayer.com/*
  31. // @match *.agariogameplay.com/*
  32. // @match *.agariowow.com/*
  33. // @match *.bestagario.net/*
  34. // @match *.tytio.com/*
  35. // @match *.kralagario.com/*
  36. // @match *.agario.zafer2.com/*
  37. // @match *.agarprivateserver.net/*
  38. // @match *.agarca.com/*
  39. // @match *.agarioplay.mobi/*
  40. // @match *.agario.mobi*
  41. // @match *.abs0rb.me/*
  42. // @match *.agario.us/*
  43. // @match *.agariojoy.com/*
  44. // @match *.agario.ch/*
  45. // @match *.ioagar.us/*
  46. // @match *.play.agario0.com/*
  47. // @match *.agario.run/*
  48. // @match *.agarpvp.us/*
  49. // @match *.agario.pw/*
  50. // @match *.ogario.net/*
  51. // @match *.ogario.net/*
  52. // @match *.nbk.io/*
  53. // @match *.agario.info/*
  54. // @match *.inciagario.com/*
  55. // @match *.agar.io.biz.tr/*
  56. // @match *.agariown.com/*
  57. // @match *.agario.dk/*
  58. // @match *.agario.lol/*
  59. // @match *.agario.gen.tr/*
  60. // @match *.agarioprivateserver.us/*
  61. // @match *.agariot.com/*
  62. // @match *.agarw.com/*
  63. // @match *.agario.city/*
  64. // @match *.xn--80aaiv4ak.xn--p1ai/*
  65. // @grant none
  66. // @run-at document-start
  67. // ==/UserScript==
  68. (function(){
  69. window.__WebSocket = window.WebSocket;
  70. window.fakeWebSocket = function(){return {readyState: 0}};
  71. window._WebSocket = window.WebSocket = function(ip){return new window.fakeWebSocket(ip);};
  72. window.__botclonsData = {};
  73. window.__botclonsData.mx = 0;
  74. window.__botclonsData.my = 0;
  75. window.__botclonsData.socketaddr = null;
  76. window.addEventListener("load",function(){
  77. // код инжектинга
  78. if(!window.OldSocket)
  79. OldSocket = window.__WebSocket;
  80. window._WebSocket = window.WebSocket = window.fakeWebSocket = function(ip){
  81. var ws = new OldSocket(ip);
  82. ws.binaryType="arraybuffer"
  83. var fakeWS = {};
  84. for(var i in ws)
  85. fakeWS[i] = ws[i];
  86. fakeWS.send = function(){
  87. //console.log("перехватили передачу! " + arguments[0]);
  88. var msg = new DataView(arguments[0]);
  89. if(location.origin == "http://www.agar.re"){
  90. if(msg.getInt8(0, true) == 16){
  91. window.__botclonsData.mx = msg.getInt32(1, true);
  92. window.__botclonsData.my = msg.getInt32(5, true);
  93. }
  94. } else {
  95. if(msg.getUint8(0, true) == 16){
  96. window.__botclonsData.mx = msg.getFloat64(1, true);
  97. window.__botclonsData.my = msg.getFloat64(9, true);
  98. }
  99. }
  100. return ws.send.apply(ws, arguments);
  101. };
  102. ws.onmessage = function(){
  103. //console.log("перехватили прием! " + arguments[0].data);
  104. fakeWS.onmessage && fakeWS.onmessage.apply(ws, arguments);
  105. };
  106. ws.onopen = function(){
  107. window.__botclonsData.socketaddr = ws.url;
  108. //console.log("перехватили подключение!");
  109. fakeWS.readyState = 1;
  110. fakeWS.onopen.apply(ws, arguments);
  111. };
  112. ws.onclose = function(){
  113. fakeWS.onclose.apply(ws, arguments);
  114. };
  115. return fakeWS;
  116. }
  117. });
  118. function createCookie(name,value,days) {
  119. if (days) {
  120. var date = new Date();
  121. date.setTime(date.getTime()+(days*24*60*60*1000));
  122. var expires = "; expires="+date.toGMTString();
  123. }
  124. else var expires = "";
  125. document.cookie = name+"="+value+expires+"; path=/";
  126. }
  127. function readCookie(name) {
  128. var nameEQ = name + "=";
  129. var ca = document.cookie.split(';');
  130. for(var i=0;i < ca.length;i++) {
  131. var c = ca[i];
  132. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  133. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  134. }
  135. return undefined;
  136. }
  137. function eraseCookie(name) {
  138. createCookie(name,"",-1);
  139. }
  140. function $(v) { return(document.getElementById(v)); }
  141. function agent(v) { return(Math.max(navigator.userAgent.toLowerCase().indexOf(v),0)); }
  142. function xy(e,v) { return(v?(agent('msie')?event.clientY+document.body.scrollTop:e.pageY):(agent('msie')?event.clientX+document.body.scrollTop:e.pageX)); }
  143. function dragOBJ(d,e) {
  144. 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); } }
  145. var oX=parseInt(d.style.left),oY=parseInt(d.style.top),eX=xy(e),eY=xy(e,1),tX,tY,stop;
  146. window.addEventListener("mousemove",drag); window.addEventListener("mouseup",function(){ stop=1; });
  147. }
  148. var menu = document.createElement('div');
  149. menu.setAttribute('ondragstart','return false;');
  150. var menu_x = readCookie("botclons_menu_x") || "4px";
  151. var menu_y = readCookie("botclons_menu_y") || "200px"
  152. 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;')
  153. document.documentElement.appendChild(menu);
  154. menu.addEventListener("mousedown",function(e){
  155. dragOBJ(this,event);
  156. return false;
  157. });
  158. var ws = {};
  159. var x = 0;
  160. var y = 0;
  161. var bots = 0;
  162. var time = 0;
  163. var maxbots = 0;
  164. var ip = null;
  165. var origin = location.origin;
  166. var inter;
  167. var split = false;
  168. var feed = false;
  169. window.addEventListener('keydown',function(e){
  170. switch(e.keyCode){
  171. case 65:
  172. split = true;
  173. break;
  174. case 83:
  175. feed = true;
  176. break;
  177. }
  178. });
  179. window.addEventListener('keyup',function(e){
  180. switch(e.keyCode){
  181. case 65:
  182. split = false;
  183. break;
  184. case 83:
  185. feed = false;
  186. break;
  187. case 68:
  188. if(ws.onclose == null){
  189. createCookie("botclons_connect","true",999);
  190. ws.onclose = connect;
  191. connect();
  192. } else {
  193. ws.onclose = null;
  194. ws.close();
  195. bots = 0;
  196. maxbots = 0;
  197. time = 0;
  198. createCookie("botclons_connect","false",999);
  199. }
  200. break;
  201. }
  202. });
  203. function connect(){
  204. bots = 0;
  205. maxbots = 0;
  206. time = 0;
  207. if(inter){clearInterval(inter); inter = undefined;}
  208. ws = new __WebSocket("ws://109.234.35.71:8081");
  209. ws.onopen = null;
  210. ws.onmessage = onmessage;
  211. ws.onclose = connect;
  212. if(readCookie('botclons_connect') == "false"){
  213. ws.onclose = null;
  214. ws.close();
  215. }
  216. }
  217. function msToTime(s) {
  218. if(s<0){return '00:00:00';}
  219. var ms = s % 1000;
  220. s = (s - ms) / 1000;
  221. var secs = s % 60;
  222. s = (s - secs) / 60;
  223. var mins = s % 60;
  224. var hrs = (s - mins) / 60;
  225. secs = (secs.toString().length<2 ? '0' : '') + secs;
  226. mins = (mins.toString().length<2 ? '0' : '') + mins;
  227. hrs = (hrs.toString().length<2 ? '0' : '') + hrs;
  228. return hrs + ':' + mins + ':' + secs;
  229. }
  230. setInterval(function(){
  231. try{x = window.__botclonsData.mx; y = window.__botclonsData.my; ip = window.__botclonsData.socketaddr; origin = location.origin;} catch(e){};
  232. menu.innerHTML = 'Connected: '+(ws.readyState == 1 ? '<t style="color: lime;">true</t>' : '<t style="color: red;">false</t>')+'<br>Bots: <t style="color: yellow;">'+bots+'/'+maxbots+'</t><br>TimeOut: <t style="color: yellow;">'+msToTime(time)+'</t><br>Split - <t style="color: orange;">A</t><br>Feed - <t style="color: orange;">S</t><br>'+(ws.onclose == null ? 'Start' : 'Stop')+' - <t style="color: orange;">D</t>';
  233. },1000)
  234. function onmessage(evt){
  235. try {var m = JSON.parse(evt.data)} catch(e){return;};
  236. switch(m['type']){
  237. case 'ping': send({type:'ping',data:{date:m['data'].date}}); break;
  238. 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;
  239. case 'bots': bots = m['data'].bots; maxbots = m['data'].maxbots; time = m['data'].time;
  240. }
  241. }
  242. function send(m){
  243. if(ws.readyState == 1){
  244. var m = JSON.stringify(m);
  245. ws.send(m);
  246. return true;
  247. } else {
  248. return false;
  249. }
  250. }
  251. connect();
  252. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址