mirror of https://github.com/lianthony/NT4.0
73 lines
1.5 KiB
73 lines
1.5 KiB
#ifndef _Fm_c_h
|
|
#define _Fm_c_h
|
|
#define epcNBits (10)
|
|
#define epcMask (1023)
|
|
#define DataBufferSize (4000)
|
|
#define ConstraintBitMapNULL ((struct ConstraintBitMapREC*)0)
|
|
#define CleanedNULL ((struct CleanedREC*)0)
|
|
#define EntryPointCacheNULL ((struct EntryPointCacheREC*)0)
|
|
#define FCTRL_HIDDEN_BITNUM (2)
|
|
#define FCTRL_HIDDEN_BITMASK (4)
|
|
#define FCTRL_FLAGS_SUPPRESSED_BITNUM (3)
|
|
#define FCTRL_FLAGS_SUPPRESSED_BITMASK (8)
|
|
#define FCTRL_SOFTIMM_BIT_S (7)
|
|
#define FCTRL_SOFTIMM_BIT_E (6)
|
|
#define FCTRL_SOFTIMM_BITMASK (192)
|
|
#define MAX_IHOOK_DEPTH (64)
|
|
struct ConstraintBitMapREC
|
|
{
|
|
IU32 first32;
|
|
IU16 hashNextUniverseNr;
|
|
IU16 CodeSegSelector;
|
|
};
|
|
struct CleanedREC
|
|
{
|
|
IU32 EIP;
|
|
IU32 nextEIP;
|
|
struct ConstraintBitMapREC constraints;
|
|
IU8 flagsType;
|
|
};
|
|
struct EntryPointCacheREC
|
|
{
|
|
IU32 eip;
|
|
IU32*hostCode;
|
|
};
|
|
struct FragmentInfoREC
|
|
{
|
|
IU32 *hostAddress;
|
|
struct EntryPointCacheREC *copierUniv;
|
|
struct EntryPointCacheREC *lastSetCopierUniv;
|
|
struct ConstraintBitMapREC constraints;
|
|
IU32 eip;
|
|
IU8 setFt;
|
|
IU8 setUniv;
|
|
IU8 control;
|
|
IU8 intelLength;
|
|
IUH flagsType;
|
|
IU8 *copierCleanups;
|
|
};
|
|
struct BLOCK_TO_COMPILE
|
|
{
|
|
struct ConstraintBitMapREC constraints;
|
|
IU32 linearAddress;
|
|
IU32 eip;
|
|
struct EntryPointCacheREC *univ;
|
|
IU8 *intelPtr;
|
|
IU16 nanoBlockNr;
|
|
IU16 infoRecNr;
|
|
IU8 univValid;
|
|
IU8 intelLength;
|
|
IU8 isEntryPoint;
|
|
IU8 execCount;
|
|
IU32 rwImmDsBase;
|
|
IS16 rwImmDsSelector;
|
|
};
|
|
struct IretHookStackREC
|
|
{
|
|
IU16 cs;
|
|
IU32 eip;
|
|
IUH hsp;
|
|
IU16 line;
|
|
};
|
|
#define EmitCheckInstruction (0)
|
|
#endif /* ! _Fm_c_h */
|