-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtools.h
More file actions
64 lines (43 loc) · 1.6 KB
/
tools.h
File metadata and controls
64 lines (43 loc) · 1.6 KB
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
#ifndef __TOOLS_H__H_
#define __TOOLS_H__H_
#include "Util.h"
typedef struct _FindCode
{
UCHAR code[100];
ULONG len;
int offset;
ULONG lastAddressOffset;
}FindCode, *PFindCode;
#define SET_BREAK_POINT __asm int 3
void KernelSleep(ULONG ms, BOOLEAN alert);
UCHAR charToHex(UCHAR * ch);
void initFindCodeStruct(PFindCode findCode,PCHAR code,ULONG offset,ULONG lastAddrOffset);
ULONG findAddressByCode(ULONG beginAddr,ULONG endAddr,PFindCode findCode,ULONG size);
#define FindAddressByCode(PFIND_CODE,SIZE) findAddressByCode(0x80000000,0x8FFFFFFF,PFIND_CODE,SIZE)
void ProbeForWriteHandle(PHANDLE handle);
#define ProbeForReadSmallStructure(p,size,testSize) {if ( p >= MmUserProbeAddress) *(PULONG64)MmUserProbeAddress = MmUserProbeAddress;}
PKPCR GetCurrentKpcr();
ULONG calcE8OrE9(ULONG oldAddr, ULONG newAddr);
#define CALCJMPMACHIMECODE(XX,OO) calcE8OrE9(XX - 1,OO)
//Á´±í²Ù×÷
void insertListTail(SINGLE_LIST_ENTRY * head, SINGLE_LIST_ENTRY * e);
#define removeListElement(__HEADER__,__TYPE__,__FILED__,__DATA__,__REMOVENODE__) \
{ \
SINGLE_LIST_ENTRY * list = (__HEADER__)->Next; \
SINGLE_LIST_ENTRY * pre = (__HEADER__); \
while (list){ \
__TYPE__ var = (__TYPE__)list; \
if (var->##__FILED__ == (__DATA__)) \
{ \
pre->Next = list->Next; \
*(__REMOVENODE__) = list; \
break; \
} \
pre = list; \
list = list->Next; \
} \
}
ULONG GetFunctionAddressByCodeAddress(ULONG addr);
void writeProbOff();
void writeProbNo();
#endif