Code:
XXXXXXXX E8 9D020000 - call WerFault.exe+0x405B8
XXXXXXXX => Die Adresse wo die Bytes gespeichert sind ( wäre hilfreich wenn du die dazu gepostet hättest ).
9D020000 ist ein Offset also: 0x029D
Um zu der Adresse WerFault.exe+0x405B8 zu gelangen gehst du wie folgt vor:
XXXXXXXX+0x029D+0x5 = WerFault.exe+0x405B8
( die +0x5 weil du von der Adresse XXXXXXX ausgehst )
WerFault.exe = Base Adresse des Programmes.
+0x405B8 = Offset wo die Funktion ist.
Also musst du erst mal wissen wo deine Zielfunktion liegt und danach rückwärts rechnen.
Zielfunktion-XXXXXXXX-0x5 => Call Adresse.
Nun musst du die Bytes nur noch überschreiben.
von Stackoverflow:
Code:
CURRENT_RVA: jmp (DESTINATION_RVA - CURRENT_RVA - 5 [sizeof(E9 xx xx xx xx)])

(call und jmp verhält sich afaik gleich)
Aber wieso sollte der Updater call X zu call Y umwandeln sollen?
P.S:
Sieht aus als hättest du CE verwendet, würde ich nicht empfehlen, benutz lieber Ollydbg oder IDA Pro.