FireBirdLib - Topfield TMS PVR TAP Programming Library
HookFirmware.c
Go to the documentation of this file.
1#include "libFireBird.h"
2
3bool HookFirmware(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(FirmwareFunction);
24 if(got)
25 {
26 *(dword*)PointerToOriginal = FirmwareFunction;
27 *got = (dword)RedirectTo;
28
29 TRACEEXIT();
30 return TRUE;
31 }
32
33 TRACEEXIT();
34 return FALSE;
35}
dword * FindGotPointer(dword FunctionAddress)
Definition: FindGotPointer.c:3
bool HookFirmware(char *FirmwareFunctionName, void *RedirectTo, void *PointerToOriginal)
Definition: HookFirmware.c:3
dword TryResolve(char *Function)
Definition: TryResolve.c:5
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243