So I'm pretty much done this as far as I want to publicly go (I don't want to get in trouble legally, so I'm keeping anything else to myself or x86 [ie, trusted friends]). I wrote a boilerplate plugin with a loader that should be able to patch any normal program/game. It does the following:
* Injects a .dll (included)
* Removes SetSecurityInfo() in memory
* Removes IsDebuggerPresent() in memory
* Removes DeleteFileA() in memory (optional; disabled by default)
And the .dll:
* Patches LoadLibraryA(), FreeLibrary(), to display a message
* Patches send(), also to display a message, but send()'s parameters can also be changed (they're pointers)
Strictly speaking, this isn't useful, but it's intended as a demonstration.
To use this, you need Visual Studio 2005. Load up the my project, and change the properties for x86-loader in the "Debug" section to point to the right locations.
Here's the code:
http://www.skullsecurity.org/~ron/code/x86%20Plugin.zipNote again: this is NOT specific to any particular game or program! That's up to you
<edit> on a sidenote, this is written 100% in my favorite language, C. So this also makes for a good example to how to properly write object-oriented C.