亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? machine.h

?? 二進制翻譯的一個軟件
?? H
字號:
#ifndef MACHINE_H#define MACHINE_H/* * Copyright (c) 2005, Johns Hopkins University and The EROS Group, LLC. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *  * Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * Redistributions in binary form must reproduce the above *    copyright notice, this list of conditions and the following *    disclaimer in the documentation and/or other materials provided *    with the distribution. * *  * Neither the name of the Johns Hopkins University, nor the name *    of The EROS Group, LLC, nor the names of their contributors may *    be used to endorse or promote products derived from this *    software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */#include <stdbool.h>#include "signals.h"const char const * const* sig_names;const char const * const* syscall_names;#define BBCACHE_SIZE 		4096 * 1024#define MAX_BBS			BBCACHE_SIZE / 32	/* 32 is the sizeof(bb_entry) */							/* Used to hold BB-directory's buckets */#define LOOKUP_TABLE_SIZE	BBCACHE_SIZE /128	/* BB-directory hash table size */#define MAX_TRACE_INSTRS 	512                     /* Usually not enforced */#define PATCH_ARRAY_LEN         256#define COLD_PROC_ENTRY		&M->call_hash_table[0]#define NOT_YET_TRANSLATED	((unsigned long) &bad_dispatch)#ifdef USE_SIEVE#ifndef SMALL_HASH#define NBUCKETS		32768       /* Code Hash Table Size       */#else#define NBUCKETS		16384       /* Code Hash Table Size       */#endif#ifdef SIEVE_WITHOUT_PPF#define SIEVE_HASH_MASK  (NBUCKETS-1)#define SIEVE_HASH_BUCKET(m, c) ((unsigned long)(m) + (((c) & SIEVE_HASH_MASK)*8))#else#define SIEVE_HASH_MASK (((NBUCKETS) - 1) << 3)#define SIEVE_HASH_BUCKET(m, c) ((unsigned long)(m) + (((c) & SIEVE_HASH_MASK)))#endif#ifdef SEPARATE_SIEVES#ifndef SMALL_HASH#define CNBUCKETS		32768       /* Code Hash Table for call infirect Size */#else#define CNBUCKETS		16384       /* Code Hash Table for call infirect Size */#endif#define CSIEVE_HASH_MASK  (CNBUCKETS-1)#define CSIEVE_HASH_BUCKET(m, c) ((unsigned long)(m) + (((c) & CSIEVE_HASH_MASK)*8))#endif#endif /* USE_SIEVE */#define CALL_TABLE_SIZE		256/* #define CALL_HASH_MASK  (CALL_TABLE_SIZE-1) << 2 *//* #define CALL_HASH_BUCKET(m, c) ((unsigned long)(m) + (((c) & CALL_HASH_MASK))) */#define CALL_HASH_MASK  (CALL_TABLE_SIZE-1)#define CALL_HASH_BUCKET(m, c) ((unsigned long)(m) + (((c) & CALL_HASH_MASK)*4))/* modrm byte */typedef union modrm_union modrm_union;union modrm_union {  struct {    unsigned char rm : 3;    unsigned char reg : 3;    unsigned char mod : 2;  } parts;   unsigned char byte;};/* sib byte */typedef union sib_union sib_union;union sib_union {  struct {    unsigned char base : 3;    unsigned char index : 3;    unsigned char ss : 2;  } parts;  unsigned char byte;};typedef struct bucket_entry bucket_entry;struct bucket_entry {  unsigned char jmp_byte;	/* 1 */  unsigned long rel;		/* 4 */  unsigned char filler[3];	/* 3 */}__attribute__((packed));typedef struct bb_header bb_header;struct bb_header {  unsigned char cmp_byte;	/* 1 */  unsigned long start_eip;	/* 4 */  unsigned char jne_byte1;	/* 1 */  unsigned char jne_byte2;	/* 1 */  unsigned long next_bb;	/* 4 */  /*--------------------------*/  unsigned char pop_ebx;	/* 1 */  unsigned char pop_eax;	/* 1 */  unsigned char popf_byte;	/* 1 */  unsigned char jmp_byte;	/* 1 */  unsigned long this_bb;	/* 4 */}__attribute__((packed));/* Declarations of values for flag-bits in   bb_entry structure */#define IS_START_OF_TRACE      0x01u#define IS_END_OF_TRACE        0x02u#define NEEDS_RELOC            0x04u#define IS_HAND_CONSTRUCTED    0x08u#define MARKED 0x100u /* Generic Marker, should be set and cleared by 			 the procedure that uses it */typedef struct bb_entry bb_entry;struct bb_entry {  unsigned long src_bb_eip;  unsigned long trans_bb_eip;  unsigned long src_bb_end_eip;  unsigned long trans_bb_end_eip;  bb_header* sieve_header;  unsigned long proc_entry;  bb_entry *next;#ifdef PROFILE_BB_STATS  bb_entry *trace_next;  unsigned long flags;  unsigned long nInstr;#endif};//__attribute__((packed));typedef struct patch_entry patch_entry;struct patch_entry {  unsigned char *at;  unsigned char *to;  unsigned long proc_addr;  unsigned long prev_patch_array;};typedef struct bb_link bb_link;struct bb_link {  unsigned char *prev_BBcache;  bb_entry **prev_BBdirectory;  unsigned long *prev_call_table;  bb_entry *prev_bb_entry_nodes;};/*#ifdef STATIC_PASSThis section has temporarily not been ifdefed ON PURPOSE.The Dynamic loader has to map the same structure as dumped by the static pass.*/typedef struct sec_mem sec_mem;struct sec_mem {  unsigned int id;   const char *name;  unsigned long start;  unsigned long end;  unsigned char *inmem;};/*#endif*//* Subset of the General-Purpose Registers */typedef struct fixregs_s fixregs_t;struct fixregs_s {  unsigned long edi;  unsigned long esi;  unsigned long ebp;  unsigned long esp;  unsigned long ebx;  unsigned long edx;  unsigned long ecx;  unsigned long eax;  /* This EIP is the GUEST eip, not the one      that points into the basic block cache. */  unsigned long eip;}__attribute__((packed));#define GP_REG_EAX      0x0u#define GP_REG_ECX      0x1u#define GP_REG_EDX      0x2u#define GP_REG_EBX      0x3u#define GP_REG_ESP      0x4u#define GP_REG_EBP      0x5u#define GP_REG_ESI      0x6u#define GP_REG_EDI      0x7u#define PREFIX_REPZ	0xf3u#define PREFIX_REPNZ	0xf2u#define PREFIX_LOCK	0xf0u#define PREFIX_CS	0x2eu#define PREFIX_DS	0x3eu#define PREFIX_ES	0x26u#define PREFIX_FS	0x64u#define PREFIX_GS	0x65u#define PREFIX_SS	0x36u#define PREFIX_OPSZ	0x66u#define PREFIX_ADDRSZ	0x67u#ifdef SIGNALStypedef struct sa_table_s sa_table_t;struct sa_table_s {  k_sigaction new;  k_sigaction old;  k_sigaction aux;};#endif /* SIGNALS *//* Thread-wide persistent Mstate */typedef struct pt_state pt_state;struct pt_state {#ifdef SIGNALS  /* sigaction information */  sa_table_t sa_table[NSIGNALS]; // sigaction corresponding to each signal  Mlist_t Mnode;  int curr_signo;    k_sigaction *guest_saPtr;   sighandler_t *guest_shPtr;  k_sigaction *guestOld_saPtr;   sighandler_t *guestOld_shPtr;#endif /* SIGNALS */ #ifdef PROFILE  unsigned long long total_cnt;  unsigned long normal_cnt;   unsigned long ret_cnt;  unsigned long ret_Iw_cnt;  unsigned long call_dir_cnt;  unsigned long call_indr_cnt;  unsigned long jmp_indr_cnt;  unsigned long jmp_dir_cnt;  unsigned long jmp_cond_cnt;  unsigned long long s_total_cnt;  unsigned long s_normal_cnt;   unsigned long s_ret_cnt;  unsigned long s_ret_Iw_cnt;  unsigned long s_call_dir_cnt;  unsigned long s_call_indr_cnt;  unsigned long s_jmp_indr_cnt;  unsigned long s_jmp_dir_cnt;  unsigned long s_jmp_cond_cnt;  unsigned long hash_nodes_cnt;  unsigned long max_nodes_trav_cnt;#endif  #ifdef PROFILE_RET_MISS    unsigned long cold_cnt;  unsigned long ret_miss_cnt;  unsigned long ret_ret_miss_cnt;#endif  #ifdef PROFILE_BB_CNT  unsigned long bb_cnt;#endif#ifdef PROFILE_TRANSLATION  unsigned long long trans_time;  unsigned long long tot_time;#endif#ifdef USE_STATIC_DUMP  bool dump;#endif    bool trigger; // Keep the compiler happy};/* Virtual Machine State + Emulator's state required for hosting    this guest VM */typedef struct machine_s machine_t;struct machine_s {  /* This field should be the first one, as UserEntry.s depends on the same. */  unsigned char *startup_slow_dispatch_bb;  bool ismmaped;  unsigned long guest_start_eip;  unsigned long eflags;  fixregs_t fixregs;  unsigned long next_eip;      /* Logical Next EIP for the decoder *//*#ifdef STATIC_PASS  This section has temporarily not been ifdefed ON PURPOSE.  The Dynamic loader has to map the same structure   as dumped by the static pass.*/  unsigned long mem_next_eip;  /* Actual  pointer to the in-memory copy				  of the elf image to the position				  corresponding to next_eip */  unsigned int curr_sec_index;  unsigned long nsections;  sec_mem *sec_info;/*#endif */  unsigned char bbCache[BBCACHE_SIZE];	/* Basic-block Translated Code Cache	*/  bb_entry* lookup_table[LOOKUP_TABLE_SIZE]; /* BBdirectory */  unsigned long call_hash_table[CALL_TABLE_SIZE];  bb_entry bb_entry_nodes[MAX_BBS];  patch_entry patch_array[PATCH_ARRAY_LEN]; /* Patch array that will be filled up by all the					     emit_jCC's, etc. and used later here for either patching 					     them right away or for building patch blocks*/  unsigned char *bbOut;	        /* next output position in BB Code cache 	*/  unsigned char *bbCache_main;  /* The point beyond which the actual bb's get emitted */  const unsigned char *bbLimit; /* BB cache limit 					*/  unsigned char *hash_table;   /* Code hash table to perform indirect jumps */  unsigned char *chash_table;   /* Code hash table to perform indirect calls */  unsigned long border_esp;  unsigned char *jmp_target;  unsigned char *slow_dispatch_bb;  unsigned char *sig_dispatch_bb;  unsigned char *backpatch_and_dispatch_bb;  unsigned char *fast_dispatch_bb;  unsigned char *call_calls_fast_dispatch_bb;  unsigned char *ret_calls_fast_dispatch_bb;#ifdef SEPARATE_SIEVES  unsigned char *cfast_dispatch_bb;  unsigned char *cslow_dispatch_bb;#endif /* SEPARATE_SIEVES */  unsigned long int no_of_bbs;  unsigned long patch_count;	/* No. of patch points encountered in this basic-block */  unsigned char *backpatch_block;  unsigned char *patch_point;  bb_entry *curr_bb_entry;  sigset_t syscall_sigset;  unsigned long nTrInstr; /* No. of instructions in the current trace */                          /* Needed for debugging output, not uptodate 			     unless using DEGUB flag */    unsigned long this_bbStart;  unsigned long this_start_eip;  bool comming_from_call_indirect;  unsigned long temp;  pt_state *ptState;  machine_t *prevM; // Parent Mstate};/* Examining the next byte in the istream can lead to any number of   faults, including page fault, segmentation violation, or wrong   phase of the moon. In these cases, istream_peekByte returns a value   greater than 255 (currently always ISTREAM_FAULT, but I may extend   this). This is a signal to the decoder to abandon its attempt to   decode the current instruction. */#define ISTREAM_FAULT 256#ifdef SUPERVISOR_MODE#define IS_IFAULT(b) ((b) > 255u)#else#define IS_IFAULT(b) (0)#endif#ifndef STATIC_PASS#define istream_peekByte(M)  	(* ((unsigned char *) M->next_eip)) #define istream_peekWord(M)    	(*((unsigned short *)M->next_eip))#define istream_peekLong(M)    	(*((unsigned long *)M->next_eip))#define istream_nextByte(M)  	((M->next_eip)++)#define istream_nextWord(M)  	M->next_eip = (unsigned long) (((unsigned short *)M->next_eip) + 1)#define istream_nextLong(M)  	M->next_eip = (unsigned long ) (((unsigned long *)M->next_eip) + 1)#else#define istream_peekByte(M)  	(*((unsigned char *) M->mem_next_eip)) #define istream_peekWord(M)    	(*((unsigned short *)M->mem_next_eip))#define istream_peekLong(M)    	(*((unsigned long *)M->mem_next_eip))#define istream_nextByte(M)  	do {                         \                                     (M->next_eip)++;        \                                     (M->mem_next_eip)++;    \                                 }while(0) #define istream_nextWord(M)  	do{ \                                      M->next_eip = (unsigned long) (((unsigned short *)M->next_eip) + 1); \                                      M->mem_next_eip = (unsigned long) (((unsigned short *)M->mem_next_eip) + 1); \			          }while(0)#define istream_nextLong(M)  	do { \                                      M->next_eip = (unsigned long ) (((unsigned long *)M->next_eip) + 1); \                                      M->mem_next_eip = (unsigned long ) (((unsigned long *)M->mem_next_eip) + 1); \				  }while(0)#endif#ifndef offsetof#define offsetof(type,field) ((unsigned long)  &((type *)0)->field)#endif#define MFLD(M,nm) (((unsigned long)M) + offsetof(machine_t,nm))#define MREG(M,nm) MFLD(M,fixregs.nm)extern void mach_showregs(char c, machine_t *M);#ifdef SIGNALS#if 0static inline boolsignals_pending(machine_t *M){  return (M->sigQfront > 0);}static inline boolsigQfull(machine_t *M){  return (M->sigQfront >= SIGQ_DEPTH);}#endif#endif#endif /* MACHINE_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合网在线视频| 麻豆精品一区二区综合av| 亚洲午夜视频在线| 国产超碰在线一区| 欧美一级免费观看| 亚洲一区二区在线视频| 国产成人av一区二区三区在线观看| 欧美日韩国产综合一区二区| 国产精品免费看片| 久久 天天综合| 欧美美女网站色| 亚洲综合一区二区精品导航| eeuss影院一区二区三区| 精品少妇一区二区三区视频免付费| 亚洲免费av观看| 国产.欧美.日韩| 国产午夜久久久久| 麻豆91小视频| 日韩欧美一级二级三级| 亚洲3atv精品一区二区三区| 欧美在线视频全部完| 国产精品国产三级国产普通话蜜臀| 精品一区二区三区免费| 日韩欧美国产综合一区| 日本成人超碰在线观看| 欧美精三区欧美精三区| 午夜精品福利在线| 欧美日韩国产天堂| 午夜精品久久久久久久| 91麻豆精品国产| 日韩黄色一级片| 日韩一级片网站| 美女性感视频久久| 精品久久久久久综合日本欧美| 看电视剧不卡顿的网站| 欧美成人video| 国产乱子轮精品视频| 久久综合久久综合久久| 国产麻豆午夜三级精品| 国产精品视频一二三区| 菠萝蜜视频在线观看一区| 亚洲天天做日日做天天谢日日欢| 99re热视频这里只精品| 亚洲综合清纯丝袜自拍| 欧美精品一二三四| 精品一区二区三区影院在线午夜| 精品国产网站在线观看| 国产不卡视频一区二区三区| 国产精品不卡在线| 欧美午夜片在线看| 丁香婷婷综合网| 欧美国产精品一区二区| 91丝袜美腿高跟国产极品老师 | 蜜桃av一区二区在线观看| 91精品国产品国语在线不卡| 韩国毛片一区二区三区| 国产精品色哟哟网站| 在线观看不卡视频| 久久成人精品无人区| 国产精品久久夜| 欧美日韩一区二区在线观看视频 | 精品国产免费一区二区三区香蕉| 国产成人福利片| 亚洲国产va精品久久久不卡综合| 精品精品欲导航| zzijzzij亚洲日本少妇熟睡| 午夜精品福利在线| 中文天堂在线一区| 51精品秘密在线观看| 丰满少妇在线播放bd日韩电影| 亚洲国产综合人成综合网站| 精品国产sm最大网站| 欧美亚洲日本国产| 国产99久久久久久免费看农村| 亚洲国产精品综合小说图片区| www久久久久| 欧美电影影音先锋| 91啦中文在线观看| 精品一区二区三区在线播放| 亚洲一区二区综合| 国产精品对白交换视频| 欧美成va人片在线观看| 欧美熟乱第一页| 99久久精品免费| 国产91色综合久久免费分享| 三级欧美韩日大片在线看| 成人免费一区二区三区视频| 欧美精品一区二区在线播放| 欧美日韩不卡一区二区| 91浏览器入口在线观看| 成人午夜激情片| 久热成人在线视频| 青草av.久久免费一区| 亚洲精品高清在线观看| 国产精品视频一二三区| 久久久精品国产免费观看同学| 欧美一级片免费看| 欧美二区在线观看| 在线成人午夜影院| 91久久一区二区| 91麻豆精品一区二区三区| 国产91清纯白嫩初高中在线观看| 韩国一区二区三区| 精品一区二区三区免费观看| 蜜桃一区二区三区四区| 日韩影视精彩在线| 亚洲成人免费电影| 亚洲成av人片在线观看| 亚洲国产精品嫩草影院| 亚洲小少妇裸体bbw| 亚洲线精品一区二区三区八戒| 一区二区三国产精华液| 亚洲精品国产视频| 一区二区三区不卡视频| 亚洲国产裸拍裸体视频在线观看乱了| 一区二区高清视频在线观看| 亚洲影院在线观看| 偷偷要91色婷婷| 久久不见久久见免费视频1| 九九久久精品视频| 精品综合久久久久久8888| 国产很黄免费观看久久| 成人黄色在线看| 91丨porny丨在线| 欧美午夜电影网| 4438x亚洲最大成人网| 91精品国产综合久久香蕉麻豆| 日韩视频在线你懂得| 精品久久久久香蕉网| 国产三级精品三级在线专区| 一区免费观看视频| 亚洲素人一区二区| 亚洲成人动漫在线免费观看| 欧美aⅴ一区二区三区视频| 国产综合色在线| 99久久精品久久久久久清纯| 欧美自拍偷拍午夜视频| 日韩欧美国产三级| 国产精品久久久久久户外露出| 综合色中文字幕| 免费观看日韩av| 波多野结衣在线aⅴ中文字幕不卡| 在线视频观看一区| 日韩欧美一级片| 最新成人av在线| 日本欧美一区二区| 丁香一区二区三区| 3d成人动漫网站| 中文字幕视频一区二区三区久| 亚洲第一搞黄网站| 国产成人丝袜美腿| 欧美日韩高清一区二区三区| 亚洲精品一区二区在线观看| 一区二区三区精品视频| 国产综合色视频| 欧美精品乱码久久久久久按摩| 久久新电视剧免费观看| 一区二区三区欧美激情| 国产麻豆视频一区| 91精品国产日韩91久久久久久| 国产精品午夜在线| 欧美aa在线视频| 欧美综合久久久| 国产精品家庭影院| 激情综合网av| 91精品国产一区二区| 亚洲激情网站免费观看| 国产一区二区三区在线观看免费 | 中文字幕中文字幕一区二区| 麻豆精品在线观看| 在线视频亚洲一区| 亚洲天堂久久久久久久| 国产精品一区一区三区| 这里只有精品电影| 一区二区三区四区乱视频| 成人a级免费电影| 久久五月婷婷丁香社区| 日韩黄色免费电影| 欧美日韩午夜在线| 依依成人综合视频| 99精品视频在线播放观看| 国产午夜精品久久| 国产精品综合二区| 久久久综合视频| 国产综合久久久久久久久久久久 | 国产精品综合一区二区| 日韩精品自拍偷拍| 免费在线看成人av| 欧美年轻男男videosbes| 亚洲精品伦理在线| 91国产免费观看| 亚洲狠狠丁香婷婷综合久久久| 成人教育av在线| 国产精品午夜电影| 成人中文字幕在线| 国产精品另类一区| zzijzzij亚洲日本少妇熟睡| 中文字幕视频一区二区三区久| av男人天堂一区| 亚洲精品你懂的|