您需要先安装一个扩展,例如 篡改猴、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 })();