Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

JayFoxRox
Copy link
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.


// 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
Owner Author

Choose a reason for hiding this comment

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

Anyone? Please?



uint32_t __stdcall do_test16(uint16_t a, uint16_t b, uint32_t eflags);
asm("_do_test16@12:\n"
Copy link
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.

None yet

1 participant