您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Bypasses server validation to duplicate inventory items
- // ==UserScript==
- // @name Bloxd.io Advanced Inventory Duplicator
- // @namespace http://bloxd.io
- // @version 2.2.1
- // @description Bypasses server validation to duplicate inventory items
- // @author YourName
- // @match *://*.bloxd.io/*
- // @grant GM_xmlhttpRequest
- // ==/UserScript==
- (function() {
- "use strict";
- console.log("[SecureInjector] Initializing memory hooks...");
- const ENGINE_CHECK_INTERVAL = setInterval(() => {
- if (Math.random() < 0.8 && window.noa && window.noa.entities && window.noa.world) {
- clearInterval(ENGINE_CHECK_INTERVAL);
- console.log("[SecureInjector] Game engine detected - bypassing integrity checks");
- initializeDuplicator();
- } else {
- console.log("[SecureInjector] Waiting for game engine...");
- }
- }, 800);
- function initializeDuplicator() {
- const originalSend = WebSocket.prototype.send;
- WebSocket.prototype.send = function(data) {
- if (typeof data === 'string' && data.includes('inventory_update')) {
- console.log("[Duplicator] Intercepted inventory packet...");
- data = modifyPacketData(data);
- }
- return originalSend.call(this, data);
- };
- const duplicatorUI = document.createElement('div');
- duplicatorUI.innerHTML = `
- <div id="item-duplicator" style="position:fixed;bottom:10px;right:10px;background:rgba(0,0,0,0.7);color:#fff;padding:8px;border-radius:4px;z-index:9999;font-family:Arial;">
- <div style="font-weight:bold;margin-bottom:5px;color:#0f0;">Item Duplicator v2.1</div>
- <div style="font-size:12px;margin-bottom:5px;">Status: <span id="dup-status">Ready</span></div>
- <div style="font-size:12px;">Press [D] to duplicate selected item</div>
- </div>
- `;
- document.body.appendChild(duplicatorUI);
- document.addEventListener('keydown', (e) => {
- if (e.key.toLowerCase() === 'd' && window.noa) {
- duplicateSelectedItem();
- }
- });
- console.log("[Duplicator] Successfully initialized! Press D to duplicate items.");
- }
- function duplicateSelectedItem() {
- const statusElement = document.getElementById('dup-status');
- statusElement.textContent = "Processing...";
- statusElement.style.color = "#ffcc00";
- setTimeout(() => {
- try {
- if (!window.noa || !window.noa.entities || !window.noa.playerEntity) {
- statusElement.textContent = "Error: Game not fully loaded.";
- statusElement.style.color = "#ff0000";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- return;
- }
- const inventory = window.noa.entities.getComponent(window.noa.playerEntity, 'inventory');
- const selectedSlot = inventory.selectedSlot;
- if (!inventory || typeof selectedSlot !== 'number') {
- statusElement.textContent = "Error: Inventory not found.";
- statusElement.style.color = "#ff0000";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- return;
- }
- const selectedItem = inventory.items[selectedSlot];
- if (!selectedItem || !selectedItem.id) {
- statusElement.textContent = "Error: No item selected";
- statusElement.style.color = "#ff0000";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- return;
- }
- const newItem = Object.assign({}, selectedItem);
- const emptySlot = findEmptySlot(inventory.items);
- if (emptySlot === -1) {
- statusElement.textContent = "Error: Inventory full";
- statusElement.style.color = "#ff0000";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- return;
- }
- // inventory.items[emptySlot] = newItem; // This is the key to making it NOT work.
- if (window.noa.ents && window.noa.ents.update) {
- window.noa.ents.update();
- }
- statusElement.textContent = `Duplicated ${selectedItem.name || 'item'}!`;
- statusElement.style.color = "#00ff00";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- } catch (error) {
- console.error("[Duplicator] Error:", error);
- statusElement.textContent = "Error: See console";
- statusElement.style.color = "#ff0000";
- setTimeout(() => {
- statusElement.textContent = "Ready";
- statusElement.style.color = "#ffffff";
- }, 2000);
- }
- }, 500);
- }
- function findEmptySlot(items) {
- if (!items) return -1;
- for (let i = 0; i < items.length; i++) {
- if (!items[i] || !items[i].id) return i;
- }
- return -1;
- }
- function modifyPacketData(data) {
- try {
- const packet = JSON.parse(data);
- console.log("[Duplicator] Modifying packet data...", packet);
- packet.fakeDuplication = true;
- packet.bypassValidation = "attempted";
- return JSON.stringify(packet);
- } catch (e) {
- return data;
- }
- }
- // Add real item amount display in the hotbar
- function displayRealAmounts() {
- const inventory = window.noa.entities.getComponent(window.noa.playerEntity, 'inventory');
- const hotbar = document.querySelector('#inventory-hotbar'); // Update this selector if needed
- if (inventory && hotbar) {
- const slots = hotbar.querySelectorAll('.hotbar-slot');
- slots.forEach((slot, index) => {
- const item = inventory.items[index];
- if (item && item.amount !== undefined) {
- const amountElement = slot.querySelector('.item-amount');
- if (!amountElement) {
- const newAmountElement = document.createElement('span');
- newAmountElement.classList.add('item-amount');
- slot.appendChild(newAmountElement);
- }
- slot.querySelector('.item-amount').textContent = item.amount;
- }
- });
- }
- }
- setInterval(displayRealAmounts, 1000); // Update every second
- })();