The package "madCodeHook" offers everything you need to
hook code (mostly APIs). Usually such hooks
show effect only in the current process. But madCodeHook also can
inject a specified DLL into any desired 32bit
process or even "system wide" (that is into all currently running and into
all in the future created processes). So by putting your hooking stuff into
a little DLL and injecting it "system wide", you can realize effective and
easy to use system wide API hooking. Of course everything works just as fine
under both OS families (9x/NT).
Besides madCodeHook also offers IPC (inter process communication)
functionality and lots of other tool functions.
A full list of what is contained in madCodeHook can be found in the
madCodeHook Reference.
To get you started, I've written a little How To Use madCodeHook
guide, which I recommend to read first before beginning to write your own
hooking projects. Please also read the Hooking Rules to avoid
destabilizing the OS with your hook projects.
In win9x madCodeHook offers an additional hooking mode: You can install a
direct system wide hook on most
system APIs without having to write a DLL. But that's quite difficult stuff,
so you should do that only when you know *exactly* what you're doing.
Otherwise you are in big danger to crash the whole operating system. You can
read more about this on the System Wide API Hooking page.
If you're interested in basic informations about which
API hooking methods are known in the programming world and which one
of the those "madCodeHook" is using and why, please go over
here.
You can find more information including an evaluation version download at
http://www.madCodeHook.com.