console.log("Starting libusb hook script..."); // Hook libusb_bulk_transfer const bulk_transfer_symbol = DebugSymbol.fromName("libusb_bulk_transfer"); console.log("libusb_bulk_transfer symbol info:", bulk_transfer_symbol); if (bulk_transfer_symbol && bulk_transfer_symbol.address && !bulk_transfer_symbol.address.isNull()) { Interceptor.attach(bulk_transfer_symbol.address, { onEnter: function(args) { console.log("[LIBUSB] libusb_bulk_transfer called"); } }); console.log("Successfully hooked libusb_bulk_transfer"); } else { console.log("libusb_bulk_transfer not found"); } // Hook libusb_control_transfer const control_transfer_symbol = DebugSymbol.fromName("libusb_control_transfer"); console.log("libusb_control_transfer symbol info:", control_transfer_symbol); if (control_transfer_symbol && control_transfer_symbol.address && !control_transfer_symbol.address.isNull()) { Interceptor.attach(control_transfer_symbol.address, { onEnter: function(args) { console.log("[LIBUSB] libusb_control_transfer called"); } }); console.log("Successfully hooked libusb_control_transfer"); } else { console.log("libusb_control_transfer not found"); } // Hook libusb_interrupt_transfer const interrupt_transfer_symbol = DebugSymbol.fromName("libusb_interrupt_transfer"); console.log("libusb_interrupt_transfer symbol info:", interrupt_transfer_symbol); if (interrupt_transfer_symbol && interrupt_transfer_symbol.address && !interrupt_transfer_symbol.address.isNull()) { Interceptor.attach(interrupt_transfer_symbol.address, { onEnter: function(args) { console.log("[LIBUSB] libusb_interrupt_transfer called"); } }); console.log("Successfully hooked libusb_interrupt_transfer"); } else { console.log("libusb_interrupt_transfer not found"); } // Hook libusb_submit_transfer (异步传输) const submit_transfer_symbol = DebugSymbol.fromName("libusb_submit_transfer"); console.log("libusb_submit_transfer symbol info:", submit_transfer_symbol); if (submit_transfer_symbol && submit_transfer_symbol.address && !submit_transfer_symbol.address.isNull()) { Interceptor.attach(submit_transfer_symbol.address, { onEnter: function(args) { console.log("[LIBUSB] libusb_submit_transfer called"); } }); console.log("Successfully hooked libusb_submit_transfer"); } else { console.log("libusb_submit_transfer not found"); } // Hook libusb_cancel_transfer const cancel_transfer_symbol = DebugSymbol.fromName("libusb_cancel_transfer"); console.log("libusb_cancel_transfer symbol info:", cancel_transfer_symbol); if (cancel_transfer_symbol && cancel_transfer_symbol.address && !cancel_transfer_symbol.address.isNull()) { Interceptor.attach(cancel_transfer_symbol.address, { onEnter: function(args) { console.log("[LIBUSB] libusb_cancel_transfer called"); } }); console.log("Successfully hooked libusb_cancel_transfer"); } else { console.log("libusb_cancel_transfer not found"); } console.log("libusb hook script loaded successfully!");