FireBirdLib - Topfield TMS PVR TAP Programming Library
UnhookFirmware.c
Go to the documentation of this file.
1#include "libFireBird.h"
2
3bool UnhookFirmware(char *FirmwareFunctionName, void *RedirectTo, void *PointerToOriginal)
4{
6
7 dword *got;
8 dword FirmwareFunction;
9
10 if(!FirmwareFunctionName || !RedirectTo || !PointerToOriginal)
11 {
12 TRACEEXIT();
13 return FALSE;
14 }
15
16 FirmwareFunction = TryResolve(FirmwareFunctionName);
17 if(!FirmwareFunction)
18 {
19 TRACEEXIT();
20 return FALSE;
21 }
22
23 got = FindGotPointer((dword)RedirectTo);
24 if(got)
25 {
26 *got = *(dword*)PointerToOriginal;
27
28 TRACEEXIT();
29 return TRUE;
30 }
31
32 TRACEEXIT();
33 return FALSE;
34}
dword * FindGotPointer(dword FunctionAddress)
Definition: FindGotPointer.c:3
dword TryResolve(char *Function)
Definition: TryResolve.c:5
bool UnhookFirmware(char *FirmwareFunctionName, void *RedirectTo, void *PointerToOriginal)
Definition: UnhookFirmware.c:3
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243