1v1.www

1v1.LOL hack script - infinite ammo, infinite armor, rapid fire

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         1v1.www
// @version      0.1
// @description  1v1.LOL hack script - infinite ammo, infinite armor, rapid fire
// @author       ;)
// @namespace    https://greasyfork.org/ja/users/762895-nekocell
// @match        https://1v1.lol/
// @icon         https://www.google.com/s2/favicons?domain=1v1.lol
// @connect      raw.githubusercontent.com
// @require      https://greasyfork.org/scripts/431787-gm-fetch-nekocell/code/GM_fetch%20-%20nekocell.js?version=966477
// @require      https://greasyfork.org/scripts/431788-fixedwailloader/code/FixedWailLoader.js?version=966480
// @require      https://greasyfork.org/scripts/431845-nekoutil/code/NekoUtil.js?version=966813
// @grant        GM_xmlhttpRequest
// ==/UserScript==

const wasm = WebAssembly;

const oldInstantiate = wasm.instantiate;

wasm.instantiate = async function(bufferSource, importObject) {
  console.log("1v1.www : WebAssembly.instantiate() intercepted!!");

  await FixedWailLoader.load();

  const wail = new WailParser(bufferSource);

  const infiniteAmmoFuncIndex = wail.getFunctionIndex(36865);
  const infiniteArmorFuncIndex = wail.getFunctionIndex(36774);
  const rapidFireFuncIndex = wail.getFunctionIndex(36902);

  wail.addCodeElementParser(infiniteAmmoFuncIndex, param => {
    return param.bytes.replace([40, 2, 32, 65, 1, 107, 54, 2, 32], [40, 2, 32, 65, 1, 26, 54, 2, 32]);
  });

  wail.addCodeElementParser(infiniteArmorFuncIndex, param => {
    return param.bytes.replace([40, 2, 104, 32, 1, 107, 54, 2, 104], [40, 2, 104, 32, 1, 26, 54, 2, 104]);
  });

  wail.addCodeElementParser(rapidFireFuncIndex, param => {
    return param.bytes.replace([42, 2, 28, 56, 2, 16], [42, 2, 28, 26, 67, 0, 0, 0, 0, 56, 2, 16])
  });

  wail.load(bufferSource);
  wail.parse();

  return oldInstantiate(wail.write(), importObject);
};