Skip to content

Experiments with page-fault-handler for NIC relocation#64

Open
JayFoxRox wants to merge 2 commits intomasterfrom
page-fault-handler
Open

Experiments with page-fault-handler for NIC relocation#64
JayFoxRox wants to merge 2 commits intomasterfrom
page-fault-handler

Conversation

@JayFoxRox
Copy link
Copy Markdown
Owner

This is an experiment for #63, it doesn't really fit this repository, and is probably only here while it's work in progress.

In this branch, I attempt (successfully so far!) to relocate the NIC MMIO, and install MMIO hooks so we can emulate a virtual NIC, so the real NIC remains fully under our control.

This would allow us to co-exist with networked games. Also games wouldn't be able to terminate our network connection. All of this has huge implications for many use-cases such as:

  • Tunneling of network games or even Xbox Live hooking
  • Debugging network games
  • Streaming files from elsewhere, while a game is running
  • FTP servers while games are running

Similar code could also be used in the future to hook OHCI (USB) or other devices.

Comment thread page-fault-handler/main.c

// FIXME: The following instruction parser / emulator could be nicer.
// Each case was added when the instruction was ecountered, so
// no actual design went into this code, or parsing anything.
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anyone? Please?

Comment thread page-fault-handler/main.c


uint32_t __stdcall do_test16(uint16_t a, uint16_t b, uint32_t eflags);
asm("_do_test16@12:\n"
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following code should be illegal!
The fact that we have 2 variations of the same function doesn't help. Someone should refactor this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant