nxdk-rdt icon indicating copy to clipboard operation
nxdk-rdt copied to clipboard

Remote Dev Tool is a tool to remote control an Xbox using memory access and RPC

Xbox Remote Dev Tool

This tool will allow you remote control of an Xbox from your development system over the network. This tool is very early in development and will likely be improved over the future.

Supported commands:

  • SYSINFO - Get some system info
  • REBOOT - Reboot the machine
  • MALLOC - Allocate some memory
  • FREE - Free allocated memory
  • MEM_READ - Read memory
  • MEM_WRITE - Write memory
  • DEBUG_PRINT - Print a debug string to the screen
  • SHOW_DEBUG_SCREEN - Show the debug screen
  • SHOW_FRONT_SCREEN - Switch back to the front screen
  • CALL - Call address with given state

To-do list:

  • Code execution
  • Code debugging
  • Screenshots/Video
  • Push Buffer
  • File IO
  • HAL access to SMBus, etc.
  • MSR/IO Port

Check out dbg.py for the Python interface (to be run on your dev system). Check out dbgd.c for the Xbox side of things.

Protocol

Communication takes place using protocol buffers over a TCP socket. The protocol is defined in dbg.proto.

You will need protobuf-c to rebuild the protocol interface C file and regular protoc to build the Python interface. Both are available via apt-get.

Test With XQEMU

Run with

-net nic,model=nvnet -nic user,hostfwd=tcp::9269-:9269

Then connect to 127.0.0.1:9269. The dbg.py script can do this using ./dbg.py 127.0.0.1 (port is implied for this tool).

Run on a real Xbox

Build, then copy the XBE over to your xbox.