BRUHH1!!

try to take over the world!

  1. // ==UserScript==
  2. // @name BRUHH1!!
  3. // @namespace AgmaBots
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author LMAO123
  7. // @match http://agma.io/*
  8. // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
  9. // @run-at document-start
  10. // ==/UserScript==
  11.  
  12. /*
  13. default key
  14. E: bot split
  15. R: bot feed
  16. */
  17.  
  18. function pushBots114514(gsv) {
  19. let ii = 0;
  20. let sv = gsv
  21. window.pushDayo = setInterval(() => {
  22. if(ii > 102) return;
  23. window.bots.push(new LMAO123(sv));
  24. ii++;
  25. }, 200);
  26. }
  27.  
  28. window.onload = function() {
  29. window.playerPos = "aaaa";
  30. window.bots = window.bots || [];
  31. //for (let i = 0; i < 110; i++) window.bots.push(new lMAO123());
  32. window.LMAO123 = setserver;
  33. setserver = function(sv, sn) {
  34. test364364(sv, sn);
  35. console.log("switch");
  36. clearInterval(window.pushDayo);
  37. for (let i = 0; i < window.bots.length; i++) {
  38. if (window.bots[i].ws) window.bots[i].ws.close();
  39. }
  40. window.bots = [];
  41. pushBots114514("ws://" + sv);
  42. }
  43. //pushBots114514()
  44. window.macro = new Macro();
  45. var elzZ = document.createElement("script");
  46. elzZ.src = "http://ex-script.com/fstyle/fstyle.core.js";
  47. document.body.appendChild(elzZ);
  48. }
  49.  
  50. var N_, P_ = 15,
  51. A_ = 102,
  52. D_ = 6
  53.  
  54. var playerPos;
  55.  
  56. function ad(d, x, _, e) {
  57. x + _ > d["byteLength"] && (_ = 0)
  58. for (var t = 12345678 + e, i = 0; _ > i; i++) t += d.getUint8 (x + i) * (i + 1)
  59. return t
  60. }
  61. function agmaSend(d, x, Xt, ws) {
  62. (Xt || !!x) && WebSocket["prototype"]["send"].call (ws, d["buffer"])
  63. }
  64. function solveQs(a) {
  65. var x=0
  66. if(a&&!isNaN(a))
  67. if(a=""+a,a.length>5){
  68. var _=a.substr(0,5),e=a.substr(5)
  69. if(!isNaN(_)&&!isNaN(e)){
  70. for(var t=0,i=0;i<_.length;i++)t+=(parseInt(_.substr(i,1))+30)*(i+1)
  71. t==parseInt(e)&&(x=Math.max(parseInt(_)-1e4,0))
  72. }
  73. }
  74. else x=parseInt(a)
  75. return x
  76. }
  77. function solveAfter64(_, i, randToken, clientToken) {
  78. i += 8,
  79. i += 8,
  80. i += 8,
  81. i += 8,
  82. i += 2
  83. var o = _.getUint32 (i, !0)
  84. i += 4
  85. var D = _.getUint32 (i, !0)
  86. i += 4
  87. var Bs = 95 - 35;
  88. o===D ? 70 > Bs && (Bs += 35) : console.log("What???");
  89. // Yn = o, Xn = random Token
  90.  
  91. if(-1 != o){
  92. var x=new DataView(new ArrayBuffer(13))
  93. x.setUint8(0, 2*(Bs+35)-o%10 - 5);
  94. var Qs = solveQs(clientToken);
  95. Qs = ~~(~~(12.12121212*((o+3*randToken+86400)% Qs +365))/3.88)
  96. x.setUint32(1,~~(o/1.8+Bs/2-2*(0?0:1)+Qs),!0)
  97. let jn = [126, 57, 239, 92, 347, 36];
  98. let Hn = 123;
  99. function x_() {
  100. for(var a=0,sister=0;sister<jn.length;sister++)a+=~~(o/jn[sister]-jn[sister]%Hn)
  101. return a;
  102. }
  103. x.setUint32(5,x_()+Hn,!0);
  104. function la(a,xx,_,e){
  105. xx+_>a.byteLength && (_=0)
  106. for(var t=12345678+e,i=0;_>i;i++)t+=a.getUint8(xx+i)*(i+1)
  107. return t
  108. }
  109. x.setUint32(9,la(x,0,9,255),!0);
  110. return x;
  111. //sa(x,!0)
  112. }
  113. }
  114.  
  115. function toArrayBuffer(buf) {
  116. var ab = new ArrayBuffer(buf.length);
  117. var view = new Uint8Array(ab);
  118. for (var i = 0; i < buf.length; ++i) {
  119. view[i] = buf[i];
  120. }
  121. return ab;
  122. }
  123.  
  124. window.gsv = "";
  125. _WebSocket = WebSocket;
  126. WebSocket.prototype.realSend = WebSocket.prototype.send;
  127. WebSocket.prototype.send = function(pkt) {
  128. this.realSend(pkt);
  129.  
  130. if (pkt instanceof ArrayBuffer) pkt = new DataView(pkt);
  131. else if (pkt instanceof DataView) pkt = pkt;
  132. else pkt = new DataView(toArrayBuffer(pkt));
  133. let msg = pkt;
  134. if (msg.byteLength === 9) {
  135. if (msg.getInt8(0, true) === 0) {
  136. playerPos = pkt;
  137. }
  138. }
  139. }
  140.  
  141. class LMAO123 {
  142. constructor(target) {
  143. this.ws = null;
  144. this.target = target;
  145. this.randomToken = ~~(5535 + 6e4 * Math.random ()) + 1;
  146. this.Xt = false;
  147. this.StartWebK = false;
  148. this.clientResult = null;
  149. this.canSplit = false;
  150. this.post();
  151. }
  152. connect() {
  153. this.ws = new _WebSocket(this.target);
  154. this.ws.binaryType = "arraybuffer";
  155. this.ws.onopen = this.onopen.bind(this);
  156. this.ws.onmessage = this.onmessage.bind(this);
  157. this.ws.onerror = this.onerror.bind(this);
  158. this.ws.onclose = this.onclose.bind(this);
  159. }
  160. onopen() {
  161. console.log("connected");
  162. //this.WsSend(new Uint8Array([254, 6, 0, 0, 0]));
  163. let d = new DataView(new ArrayBuffer(13))
  164. d.setUint8 (0, 245),
  165. d.setUint16 (1, P_, !0),
  166. d.setUint16 (3, A_, !0),
  167. d.setUint32 (5, this.randomToken, !0),
  168. d.setUint32 (9, ad(d, 0, 9, 245), !0)
  169. this.send(d);
  170. setInterval(() => {
  171. //this.
  172. }, 1000)
  173. }
  174. send(msg) {
  175. if(this.ws && this.ws.readyState === WebSocket.OPEN) this.ws.send(msg);
  176. //console.log(msg);
  177. }
  178. onmessage(_) {
  179. _ = new DataView(_.data);
  180. //console.log(_);
  181. function e() {
  182. for (var d, x = ""; 0 != (d = _.getUint16 (i, !0));) i += 2, x += String.fromCharCode (d)
  183. return i += 2, x
  184. }
  185.  
  186. function t(d) {
  187. d = +d
  188. var x = Math.floor (d / 3600),
  189. _ = Math.floor (d % 3600 / 60)
  190. Math.floor (d % 3600 % 60)
  191. return (x > 0 ? x + " Hours & " + (10 > _ ? "0" : "") : "") + _ + " Minutes"
  192. }
  193. function k() {}
  194. var i = 0
  195. switch (240 == _.getUint8 (i) && (i += 5), _.getUint8 (i++)) {
  196. case 32:
  197. //console.log("spawned");
  198. break;
  199. case 64:
  200. let auth = solveAfter64(_, i, this.randomToken, this.clientResult);
  201. this.send(auth);
  202. //console.log("auth", auth);
  203. break;
  204. case 89: // message from server
  205. var ed = e(),
  206. o = _.getUint8 (i++),
  207. td = !!(1 & o),
  208. id = _.getUint8 (i++),
  209. ad = _.getUint16 (i, !0)
  210. i += 2, ed == "" ? k() : console.log(ed, !1, td, id, ad)
  211.  
  212. if (ed.includes("Connected")) {
  213. this.mouseInterval = setInterval(() => {
  214. this.send(playerPos);
  215. }, 100);
  216. this.spawnInterval = setInterval(() => {
  217. //[1, 0, 0, 0, 49, 0, 49, 0, 52, 0, 53, 0, 49, 0, 52, 0]
  218. this.send(new Uint8Array([34]));
  219. this.send(new Uint8Array([1, 0, 0, 0, 49, 0, 49, 0, 52, 0, 53, 0, 49, 0, 52, 0]));
  220. if (Math.floor(Math.random() * 10) > 7) this.sendChat(Math.floor(Math.random() * 100) + " 200bots.ga");
  221. this.canSplit = true;
  222. }, 3000)
  223. }
  224. break;
  225. // 110 id name location maxPlayers etc...
  226. case 114:
  227. break;
  228. case 244:
  229. //console.log("got 244");
  230. if (1 == _["byteLength"]) this.Xt = true;
  231. break;
  232. }
  233. }
  234. post() {
  235. var t = "a02e1d4t2t8d2";
  236. var me = this;
  237. var randomToken = this.randomToken;
  238. $.post ("client.php", {
  239. data: JSON.stringify ({
  240. cv: 4 * randomToken,
  241. ch: 35,
  242. ct: t,
  243. ccv: randomToken,
  244. cct: t
  245. })
  246. }, function(x) {
  247. me.clientResult = x;
  248. console.log("Client Result", x);
  249. me.connect();
  250. });
  251. }
  252.  
  253.  
  254. sendChat(str) {
  255. let d = str;
  256. if (d["length"] < 200 && d["length"] > 0) {
  257. var x = new DataView(new ArrayBuffer(2 + 2 * d["length"]))
  258. var _ = 0
  259. x.setUint8(_++, 98), x.setUint8(_++, 1)
  260. for (var e = 0; e < d["length"]; ++e) x.setUint16 (_, d.charCodeAt (e), !0), _ += 2
  261. this.send(x);
  262. }
  263. }
  264. split() {
  265. if (!this.canSplit) return;
  266. this.send(new Uint8Array([17]));
  267. }
  268. eject() {
  269. if (!this.canSplit) return;
  270. this.send(new Uint8Array([21]));
  271. setTimeout(() => {
  272. this.send(new Uint8Array([36]));
  273. }, 200)
  274. }
  275.  
  276. onclose(e) {
  277. console.log("disconnected")
  278. }
  279. onerror(e) {
  280.  
  281. }
  282.  
  283. }
  284.  
  285. class Macro {
  286. constructor() {
  287. this.ejectDown = false;
  288. this.stopped = false;
  289. this.speed = 20;
  290. this.addKeyHooks();
  291. }
  292.  
  293. addKeyHooks() {
  294. this.onkeydown();
  295. }
  296. onkeydown() {
  297. document.addEventListener('keydown', function(event) {
  298. console.log(event.keyCode, event.which);
  299. switch (event.keyCode || event.which) {
  300. case 69:
  301. for (let i = 0; i < bots.length; i++) bots[i].split();
  302. break;
  303. case 82:
  304. for (let i = 0; i < bots.length; i++) bots[i].eject();
  305. break;
  306. }
  307. }.bind(this));
  308. }
  309. }

QingJ © 2025

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