// ==UserScript==
// @name AssaultBots Hack
// @version 0.00000000001
// @description Assault Bots hack script [unchain, no overheat, infinite ammo, rapid fire, free fly[incomplete]]
// @author nekocell
// @namespace https://greasyfork.org/ja/users/762895-nekocell
// @match https://games.crazygames.com/en_US/bot-machines/index.html
// @icon https://www.google.com/s2/favicons?domain=crazygames.com
// @require https://greasyfork.org/scripts/436749-wasm-patcher/code/wasm_patcher.js?version=1011582
// ==/UserScript==
!function(wasm) {
const successLog = function(patchName) {
alert(`${patchName}`);
};
wasm.instantiateStreaming = async function (source, importObject) {
let bufferSource = null;
if (source instanceof Promise) {
const response = await source;
bufferSource = await response.arrayBuffer();
}
else if (source instanceof Response) {
bufferSource = await source.arrayBuffer();
}
const patcher = new WasmPatcher(bufferSource);
patcher.aobPatchEntry({
scan: '21 1 23 E C 2 B 20 0 [ 41 1 ] 3A ? ? ? 41 0 24 9',
code: [
OP.i32.const, VAR.s32(0)
],
onsuccess: () => successLog('unchain')
});
patcher.aobPatchEntry({
scan: '2 0 20 0 [ 41 1 ]',
code: [
OP.i32.const, VAR.s32(0)
],
onsuccess: () => successLog('unchain')
});
patcher.aobPatchEntry({
scan: '2A 2 EC 1 [ 43 0 0 80 3F ] 92 38 2 EC 1',
code: [ OP.f32.const, VAR.f32(0) ],
onsuccess: () => successLog('no overheat')
});
patcher.aobPatchEntry({
scan: '2C ? ? ? D 1 20 0 20 0 28 ? ? ? [ 41 1 ] 6B 36 ? ? ?',
code: [
OP.i32.const, VAR.u32(0)
],
onsuccess: () => successLog('infinite ammo')
});
patcher.aobPatchEntry({
scan: 'B 20 0 41 0 10 ? ? ? | 38 ? ? ? 40',
code: [
OP.drop,
OP.f32.const, VAR.f32(0)
],
onsuccess: () => successLog('rapid fire')
});
const xValueIndex = patcher.addGlobalVariableEntry({
type: 'f32',
value: 5,
mutability: true,
exportName: 'xValue'
});
const yValueIndex = patcher.addGlobalVariableEntry({
type: 'f32',
value: 5,
mutability: true,
exportName: 'yValue'
});
const zValueIndex = patcher.addGlobalVariableEntry({
type: 'f32',
value: 5,
mutability: true,
exportName: 'zValue'
});
patcher.aobPatchEntry({
scan: '20 10 20 2 28 2 10 | 36 2 0 20 14 20 2 28 2 14 | 36 2 0 20 C 20 2 28 2 18 | 36 2 0',
codes: [
[
OP.drop,
OP.global.get, xValueIndex,
0xbc
],
[
OP.drop,
OP.global.get, yValueIndex,
0xbc
],
[
OP.drop,
OP.global.get, zValueIndex,
0xbc
],
],
onsuccess: () => successLog('FreeFly?')
});
const newBuffer = patcher.patch();
const result = await wasm.instantiate(newBuffer, importObject);
const exports = result.instance.exports;
const xValue = exports.xValue;
const yValue = exports.yValue;
const zValue = exports.zValue;
let pressW = false;
let pressS = false;
let pressA = false;
let pressD = false;
let pressE = false;
let pressQ = false;
const speed = 2;
window.addEventListener("keydown", evt => {
switch(evt.code) {
case 'KeyW':
pressW = true;
break;
case 'KeyS':
pressS = true;
break;
case 'KeyA':
pressA = true;
break;
case 'KeyD':
pressD = true;
break;
case 'KeyE':
pressE = true;
break;
case 'KeyQ':
pressQ = true;
break;
case 'KeyG':
xValue.value = 0;
yValue.value = 0;
zValue.value = 0;
break;
}
}, false);
window.addEventListener("keyup", evt => {
switch(evt.code) {
case 'KeyW':
pressW = false;
break;
case 'KeyS':
pressS = false;
break;
case 'KeyA':
pressA = false;
break;
case 'KeyD':
pressD = false;
break;
case 'KeyE':
pressE = false;
break;
case 'KeyQ':
pressQ = false;
break;
}
}, false);
const frame = function() {
if(pressW) xValue.value += speed;
if(pressS) xValue.value -= speed;
if(pressA) zValue.value += speed;
if(pressD) zValue.value -= speed;
if(pressE) yValue.value += speed;
if(pressQ) yValue.value -= speed;
requestAnimationFrame(frame);
};
requestAnimationFrame(frame);
return result;
};
}(WebAssembly);