-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSigScan.h
79 lines (63 loc) · 1.34 KB
/
SigScan.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef SIGSCAN_H
#define SIGSCAN_H
#include <stdio.h>
#include "SigScan.h"
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#else
#include <dlfcn.h>
#include <sys/types.h>
#include <sys/stat.h>
#endif
/*
class Ext_SigScan
{
public:
#ifdef WIN32
static void Init_Sigs();
#endif
};
*/
inline bool FStrEq(const char *sz1, const char *sz2)
{
return(stricmp(sz1, sz2) == 0);
}
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <tlhelp32.h>
#endif
#include <sh_vector.h>
using namespace SourceHook;
class SigScan
{
public:
// ~SigScan(void)
SigScan();
void* FindFunctionAddresss(const char *SignatureName,unsigned char *WinSig, char *WinMask, size_t WinSigLength, char *NixSymbol);
void Dispose();
void FindBaseAddress();
bool ScannerError;
private:
/*
//static unsigned char *base_addr;
//static size_t base_len;
unsigned char *sig_str;
char *sig_mask;
unsigned long sig_len;
char sig_name[64];
char is_set;
void *sig_addr;
void *linux_addr;
*/
#ifdef WIN32
//void* FindSignature(void);
bool GetDllMemInfo(void);
void* FindSignature(const char *SignatureName, unsigned char *WinSig, char *WinMask, size_t WinSigLength);
#else
bool GetBaseAddress();
void* FindSymbolAddress(char *SignatureName, char *symbol);
#endif
};
#endif