Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

156 lines
3.5 KiB

#ifndef _Lc_c_h
#define _Lc_c_h
#define NUM_HASH_BITS (6)
#define HASH_MASK (63)
#define BYTES_PER_HCU (4)
#define MORE_PRS_MASK (128)
#define JUMP_REC_NULL ((struct JUMP_REC*)0)
#define CODE_ELEM_NULL ((IU32*)0)
#define MAX_JUMP_REC_PER_FRAG (33)
#define VCT_NODE_REC_NULL ((struct VCT_NODE_REC*)0)
enum AccessType
{
ACCESS_NA = 0,
ACCESS_READ = 1,
ACCESS_WRITE = 2,
ACCESS_READ_WRITE = 3
};
enum CopierActionPhase
{
CpActionPhaseInstruction = 0,
CpActionPhaseCopying = 1,
CpActionPhaseExecute = 2
};
enum CopierAction
{
CopierActionCopyZero = 0,
CopierActionCopyOne = 1,
CopierActionCopyTwo = 2,
CopierActionCopyThree = 3,
CopierActionCopyFour = 4,
CopierActionCopyFive = 5,
CopierActionCopySix = 6,
CopierActionCopyVariable = 7,
CopierActionPatchBlock = 8,
CopierActionPatchBlockEnd = 9,
CopierActionPatchMeBody = 10,
CopierActionSubrId = 11,
CopierActionSubrIdEnd = 12,
CopierActionNpxExceptionData = 13,
CopierActionNeedNextIntelEip = 14,
CopierActionTupleImm = 15,
CopierActionTupleDisp = 16,
CopierActionTupleImm2 = 17,
CopierActionTupleRetEIP = 18,
CopierActionTearOffFlags = 19,
CopierActionSetsFt = 20,
CopierActionTrackFt = 21,
CopierActionSrcFt = 22,
CopierNoteSrcEAX = 23,
CopierNoteSrcAX = 24,
CopierNoteDstEAX = 25,
CopierNoteDstAX = 26,
CopierNoteDstAL = 27,
CopierNoteSrcEBX = 28,
CopierNoteSrcBX = 29,
CopierNoteDstEBX = 30,
CopierNoteDstBX = 31,
CopierNoteDstBL = 32,
CopierNoteSrcECX = 33,
CopierNoteSrcCX = 34,
CopierNoteDstECX = 35,
CopierNoteDstCX = 36,
CopierNoteDstCL = 37,
CopierNoteSrcEDX = 38,
CopierNoteSrcDX = 39,
CopierNoteDstEDX = 40,
CopierNoteDstDX = 41,
CopierNoteDstDL = 42,
CopierNoteSrcEBP = 43,
CopierNoteDstEBP = 44,
CopierNoteDstBP = 45,
CopierNoteSrcEDI = 46,
CopierNoteDstEDI = 47,
CopierNoteDstDI = 48,
CopierNoteSrcESI = 49,
CopierNoteDstESI = 50,
CopierNoteDstSI = 51,
CopierNoteAddConstraintEAX = 52,
CopierNoteRemoveConstraintEAX = 53,
CopierNoteAddConstraintAX = 54,
CopierNoteRemoveConstraintAX = 55,
CopierNoteAddConstraintEBX = 56,
CopierNoteRemoveConstraintEBX = 57,
CopierNoteAddConstraintBX = 58,
CopierNoteRemoveConstraintBX = 59,
CopierNoteAddConstraintECX = 60,
CopierNoteRemoveConstraintECX = 61,
CopierNoteAddConstraintCX = 62,
CopierNoteRemoveConstraintCX = 63,
CopierNoteAddConstraintEDX = 64,
CopierNoteRemoveConstraintEDX = 65,
CopierNoteAddConstraintDX = 66,
CopierNoteRemoveConstraintDX = 67,
CopierNoteAddSingleInstruction = 68,
CopierNoteProcessSingleInstruction = 69,
CopierNoteSrcESP = 70,
UnusedCopierNoteSrcSP = 71,
CopierNotePostDstSP = 72,
CopierNotePostDstESP = 73,
CopierNotePostCommitPop = 74,
CopierNoteHspTrackAbs = 75,
CopierNoteHspTrackOpnd = 76,
CopierNoteHspTrackReset = 77,
CopierNoteHspAdjust = 78,
CopierNotePigSynch = 79,
CopierNoteMissPigSynch = 80,
CopierNoteSrcUniverse = 81,
CopierNoteSetDF = 82,
CopierNoteClearDF = 83,
CopierNoteBPILabel = 84,
CopierActionLast = 85
};
enum CopyEnum
{
CopyOne = 0,
CopyTwo = 1,
CopyThree = 2,
CopyFour = 3,
CopyFive = 4,
CopySix = 5
};
struct VCT_NODE_REC
{
IU8 actionRecord[3];
IU8 nextNode;
IU32 vsMask;
IU32 vsMatch;
IU32 codeRecord[1];
};
struct TUPLE_REC
{
IS32 disp;
IU32 immed;
IU32 immed2;
IU32 start_eip;
IU32 ret_eip;
IU32 flags;
IU32 cvs;
IU8 control;
IU8 intel_length;
IU16 ea_EFI;
IU16 aux_ea_EFI;
IU16 access_EFI;
IU16 access_type;
IU16 business_EFI;
IBOOL opnd32;
};
struct JUMP_REC
{
IU32 intelEa;
IU32 *hostAddr;
struct EntryPointCacheREC *univ;
struct JUMP_REC *next;
struct JUMP_REC *prev;
};
#endif /* ! _Lc_c_h */