Hallo,
ich gehe Mal von Grundkenntnissen in C aus, sonst rate ich zur Aneignung dieser. Habe zumindest keine Lust auf Spoonfeeding. Prinzipiell helfen tue ich natürlich dennoch.
Der Code liegt vermutlich in einem Speicherbereich, welcher standardmäßig nicht beschreibbar ist. Darum muss man sich zuerst kümmern. Hierfür ist

zu verwenden. Danach kannst du den Speicherbereich einfach beschreiben. Ein (long near) jmp belegt 5 Byte:
1) statischer Opcode 0xE9
2) 4 byte Zielbeschreibung. Dies ist allerdings nicht die absolute Zieladresse, sondern ein Delta, was sich wie folgt berechnet: <Zieladresse> - (<Adresse vom jmp> + <Länge der jmp-Instruktion = 5>)
Das einfach reinschreiben. Dann die alten Berechtigungen mit VirtualProtect wiederherstellen und fertig. Wird nun die Originalfunktion aufgerufen, springt die erste Instruktion zu deiner Funktion, die dann stattdessen ausgeführt wird.
Mit freundlichen Grüßen
Jeoni