mirror of https://github.com/lianthony/NT4.0
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.
187 lines
4.4 KiB
187 lines
4.4 KiB
#ifndef _Nano_c_h
|
|
#define _Nano_c_h
|
|
#define BYTE_SIZED (0)
|
|
#define WORD_SIZED (1)
|
|
#define LONG_SIZED (2)
|
|
#define ES_CODE (0)
|
|
#define CS_CODE (1)
|
|
#define SS_CODE (2)
|
|
#define DS_CODE (3)
|
|
#define FS_CODE (4)
|
|
#define GS_CODE (5)
|
|
#define EAX_CODE (0)
|
|
#define ECX_CODE (1)
|
|
#define EDX_CODE (2)
|
|
#define EBX_CODE (3)
|
|
#define ESP_CODE (4)
|
|
#define EBP_CODE (5)
|
|
#define ESI_CODE (6)
|
|
#define EDI_CODE (7)
|
|
#define MEM_CODE (8)
|
|
#define JUMP (0)
|
|
#define FALLTHROUGH (1)
|
|
#define TRUNCATION (2)
|
|
#define LEAVING (3)
|
|
#define NOT_APPLICABLE (4)
|
|
#define COMPILE_BLOCK (1)
|
|
#define LOG_SF_BREAK (2)
|
|
#define LOG_NORMAL_FLOW (3)
|
|
#define LOG_ABNORMAL_FLOW (4)
|
|
#define PARSE_AHEAD (5)
|
|
#define MONITOR_DS_CHANGE (6)
|
|
#define MONITOR_DS_USE (7)
|
|
#define BLOCK_LENGTH_CHANGE (8)
|
|
#define PROT_BIT (0)
|
|
#define V86_BIT (1)
|
|
#define BIG_CODE_BIT (2)
|
|
#define DF_BIT (3)
|
|
#define EAX_FORM_16 (4)
|
|
#define EAX_FORM_8 (5)
|
|
#define EBX_FORM_16 (6)
|
|
#define EBX_FORM_8 (7)
|
|
#define ECX_FORM_16 (8)
|
|
#define ECX_FORM_8 (9)
|
|
#define EDX_FORM_16 (10)
|
|
#define EDX_FORM_8 (11)
|
|
#define EBP_FORM_16 (12)
|
|
#define ESI_FORM_16 (13)
|
|
#define EDI_FORM_16 (14)
|
|
#define BIG_STACK_BIT (15)
|
|
#define DS_DEFAULT_SEG_BOT (16)
|
|
#define DS_DEFAULT_SEG_TOP (18)
|
|
#define SS_DEFAULT_SEG_BOT (19)
|
|
#define SS_DEFAULT_SEG_TOP (21)
|
|
#define ADDRESS_SIZE_TOGGLE_BIT (22)
|
|
#define OPERAND_SIZE_TOGGLE_BIT (23)
|
|
#define RESTORE_ESP_ON_EXCEPTION_BIT (24)
|
|
#define REP_E_BIT (25)
|
|
#define REP_NE_BIT (26)
|
|
#define EAX_BITMAP_BIT (0)
|
|
#define ECX_BITMAP_BIT (1)
|
|
#define EDX_BITMAP_BIT (2)
|
|
#define EBX_BITMAP_BIT (3)
|
|
#define ESP_BITMAP_BIT (4)
|
|
#define EBP_BITMAP_BIT (5)
|
|
#define ESI_BITMAP_BIT (6)
|
|
#define EDI_BITMAP_BIT (7)
|
|
#define ES_BITMAP_BIT (8)
|
|
#define CS_BITMAP_BIT (9)
|
|
#define SS_BITMAP_BIT (10)
|
|
#define DS_BITMAP_BIT (11)
|
|
#define FS_BITMAP_BIT (12)
|
|
#define GS_BITMAP_BIT (13)
|
|
#define HAS_AN_EA_REC_BIT (14)
|
|
#define INSTR_CONTINUATION_BIT (15)
|
|
#define NOTHING_BASE (1)
|
|
#define AX_BASE (2)
|
|
#define CX_BASE (3)
|
|
#define DX_BASE (4)
|
|
#define BX_BASE (5)
|
|
#define SP_BASE (6)
|
|
#define BP_BASE (7)
|
|
#define SI_BASE (8)
|
|
#define DI_BASE (9)
|
|
#define EAX_BASE (10)
|
|
#define ECX_BASE (11)
|
|
#define EDX_BASE (12)
|
|
#define EBX_BASE (13)
|
|
#define ESP_BASE (14)
|
|
#define EBP_BASE (15)
|
|
#define ESI_BASE (16)
|
|
#define EDI_BASE (17)
|
|
#define NOTHING_INDEX (0)
|
|
#define AX_INDEX (64)
|
|
#define CX_INDEX (96)
|
|
#define DX_INDEX (128)
|
|
#define BX_INDEX (160)
|
|
#define SP_INDEX (192)
|
|
#define BP_INDEX (224)
|
|
#define SI_INDEX (256)
|
|
#define DI_INDEX (288)
|
|
#define EAX_INDEX (320)
|
|
#define ECX_INDEX (352)
|
|
#define EDX_INDEX (384)
|
|
#define EBX_INDEX (416)
|
|
#define ESP_INDEX (448)
|
|
#define EBP_INDEX (480)
|
|
#define ESI_INDEX (512)
|
|
#define EDI_INDEX (544)
|
|
#define ES_SEGFORM (0)
|
|
#define CS_SEGFORM (1024)
|
|
#define SS_SEGFORM (2048)
|
|
#define DS_SEGFORM (3072)
|
|
#define FS_SEGFORM (4096)
|
|
#define GS_SEGFORM (5120)
|
|
#define NOTHING_MUL (0)
|
|
#define MUL_2 (8192)
|
|
#define MUL_4 (16384)
|
|
#define MUL_8 (24576)
|
|
#define READ_ACCESS_BIT (0)
|
|
#define WRITE_ACCESS_BIT (1)
|
|
#define ACCESS_LENGTH_BOT (2)
|
|
#define ACCESS_LENGTH_TOP (7)
|
|
#define GET_AXBX_FORM (0)
|
|
#define GET_CXDX_FORM (16)
|
|
#define GET_BPSIDI_FORM (32)
|
|
#define PUT_AXBX_FORM (40)
|
|
#define PUT_CXDX_FORM (56)
|
|
#define PUT_BPSIDI_FORM (72)
|
|
#define READ_OP1 (80)
|
|
#define WRITE_OP1 (107)
|
|
#define READ_SEG_OP1 (134)
|
|
#define WRITE_SEG_OP1 (142)
|
|
#define WRITE_SEG_OP2 (150)
|
|
#define WRITE_OP2 (158)
|
|
#define READ_OP1_RETURN (185)
|
|
#define WRITE_OP1_BYTE_RETURN (212)
|
|
#define PUSH_OP1 (221)
|
|
#define POP_OP1 (223)
|
|
#define EA_OPERATIONS (225)
|
|
#define SIB_BASE_FUNCTIONS (281)
|
|
#define SIB_INDEX_FUNCTIONS (305)
|
|
#define ADD_OPERATIONS (337)
|
|
#define TEST_OPERATIONS (553)
|
|
#define JCC_OPERATIONS (580)
|
|
#define INC_OPERATIONS (596)
|
|
#define DEC_OPERATIONS (623)
|
|
#define NEG_OPERATIONS (650)
|
|
#define NOT_OPERATIONS (677)
|
|
#define MUL_OPERATIONS (704)
|
|
#define IMUL_OPERATIONS (707)
|
|
#define DIV_OPERATIONS (710)
|
|
#define IDIV_OPERATIONS (713)
|
|
#define IMUL3_OPERATIONS (716)
|
|
#define IMUL2_OPERATIONS (734)
|
|
#define SHIFT_OPERATIONS (752)
|
|
#define ARPL_OPERATIONS (968)
|
|
#define SETCC_OPERATIONS (977)
|
|
#define SHLD_OPERATIONS (993)
|
|
#define SHRD_OPERATIONS (1011)
|
|
#define BT_OPERATIONS (1029)
|
|
#define BTS_OPERATIONS (1047)
|
|
#define BTR_OPERATIONS (1065)
|
|
#define BTC_OPERATIONS (1083)
|
|
struct DEST_RECORD
|
|
{
|
|
IU16 block;
|
|
IU8 version;
|
|
IU8 count;
|
|
};
|
|
struct BLOCK_RECORD
|
|
{
|
|
IU16 hashNext;
|
|
IU8 intelLength;
|
|
IU8 compiled;
|
|
IU32 linearAddress;
|
|
IU32 first32constraints;
|
|
IU16 last16constraints;
|
|
IU16 codeSegment;
|
|
IU16 hashPrev;
|
|
IU16 moreRecent;
|
|
IU16 lessRecent;
|
|
IU8 version;
|
|
IU8 execCount;
|
|
struct DEST_RECORD dest1;
|
|
struct DEST_RECORD dest2;
|
|
};
|
|
#endif /* ! _Nano_c_h */
|