It's really though stuff, and you don't have a lot experience with it I think, else you wouldn't ask this question.
If you still think you can, you need to have atleast a debugger (I prefer SoftICE, some prefer OllyDbg), and you need to have a decent knowledge of ASM. A Disassembler like W32Dasm is also good to have.
Well, if you have those tools, fire up your debugger, set breakpoints at function calls, watch their addresses and see what they are doing, then you can add some ASM code in between there, but keep in mind that when you're actually adding or removing bytes, you need to update all pointers in the file, which is a horrible task..
Tijnema
~EFM Admin