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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ildis.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/* *	HT Editor *	ildis.cc * *	Copyright (C) 1999-2002 Sebastian Biallas (sb@biallas.net) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *	GNU General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <string.h>#include <stdlib.h>#include "data.h"#include "endianess.h"#include "ildis.h"#include "ilopc.h"#include "snprintf.h"ILDisassembler::ILDisassembler(char* (*sf)(uint32 string_ofs, void *context), char* (*tf)(uint32 token, void *context), void *ctx){	initialize(sf, tf, ctx);}void ILDisassembler::initialize(char* (*sf)(uint32 string_ofs, void *context), char* (*tf)(uint32 token, void *context), void *ctx){	string_func = sf;	token_func = tf;	context = ctx;}dis_insn *ILDisassembler::decode(byte *code, int maxlen, CPU_ADDR addr){	insn.valid = false;	insn.prefix = NULL;	insn.size = 0;	insn.data.ui = *code;	if (!maxlen) {		return (dis_insn *)&insn;	}restart:	insn.opcode = &il_opcode_table[*code];	insn.size = insn.opcode->size;	if (insn.size > maxlen) {		insn.size = 1;		insn.valid = false;		return (dis_insn *)&insn;	}	insn.op = insn.opcode->op;	switch (insn.op) {	case IL_OPCODE_ARGS_INVALID:		return (dis_insn *)&insn;	case IL_OPCODE_ARGS_NONE:		break;	case IL_OPCODE_ARGS_PREFIX:		insn.opcode = NULL;		code++;		if (*code < MAX_IL_OPCODE_PREFIX) {			insn.prefix = &il_prefix_opcode_table[*code];			code++;			goto restart;		} else {			insn.size = 1;			insn.valid = false;			return (dis_insn *)&insn;		}	case IL_OPCODE_ARGS_SHORT_JUMP: {		int c = ((char)code[1]);		insn.data.ui = addr.addr32.offset+2+c;		break;	}	case IL_OPCODE_ARGS_LONG_JUMP: {		int c = createHostInt(code+1, 4, little_endian);		insn.data.ui = addr.addr32.offset+5+c;		break;	}	case IL_OPCODE_ARGS_UINT16:	case IL_OPCODE_ARGS_LONG_ARG:	case IL_OPCODE_ARGS_LONG_VAR:	case IL_OPCODE_ARGS_ANN_ARG: 	case IL_OPCODE_ARGS_ANN_DEAD: 	case IL_OPCODE_ARGS_ANN_LIVE: {		uint16 w = createHostInt(code+1, 2, little_endian);		insn.data.ui = w;		break;	}	case IL_OPCODE_ARGS_INT16: {		uint16 w = createHostInt(code+1, 2, little_endian);		insn.data.i = (int)((short)w);		break;	}	case IL_OPCODE_ARGS_UINT8:		insn.data.ui = (byte)code[1];		break;	case IL_OPCODE_ARGS_INT8:	case IL_OPCODE_ARGS_SHORT_VAR:	case IL_OPCODE_ARGS_SHORT_ARG:	case IL_OPCODE_ARGS_ANN_REF_S: {		insn.data.i = (int)((char)code[1]);		break;	}	case IL_OPCODE_ARGS_INT64:		insn.data.q = createHostInt64(code+5, 8, little_endian);		break;	case IL_OPCODE_ARGS_TOKEN:	case IL_OPCODE_ARGS_NEW:	case IL_OPCODE_ARGS_CALL:	case IL_OPCODE_ARGS_CALLVIRT:	case IL_OPCODE_ARGS_INT32:	case IL_OPCODE_ARGS_STRING:		insn.data.ui = createHostInt(code+1, 4, little_endian);		break;	case IL_OPCODE_ARGS_FLOAT32:		// FIXME: hack		insn.data.ui = createHostInt(code+1, 4, little_endian);		break;	case IL_OPCODE_ARGS_FLOAT64:		// FIXME: hack		insn.data.q = createHostInt64(code+5, 8, little_endian);		break;			// variable length opcodes	case IL_OPCODE_ARGS_SWITCH: {		uint32 num = createHostInt(code+1, 4, little_endian);		if (num > 10000) {			insn.valid = false;			insn.size = 1;			return (dis_insn *)&insn;		}		insn.size += num * 4;		break;	}	case IL_OPCODE_ARGS_ANN_DATA_S: {		uint32 num = (byte)code[1];		insn.size += num;		break;	}	case IL_OPCODE_ARGS_ANN_DATA: {		uint32 num = createHostInt(code+1, 4, little_endian);		insn.size += num;		break;	}	case IL_OPCODE_ARGS_ANN_PHI: {		uint32 num = createHostInt(code+1, 2, little_endian);		insn.size += num * 2;		break;	}	}	insn.valid = true;	return (dis_insn *)&insn;}dis_insn *ILDisassembler::duplicateInsn(dis_insn *disasm_insn){	ILDisInsn *insn = ht_malloc(sizeof (ILDisInsn));	*insn = *(ILDisInsn *)disasm_insn;	return insn;}void ILDisassembler::getOpcodeMetrics(int &min_length, int &max_length, int &min_look_ahead, int &avg_look_ahead, int &addr_align){	// FIXME	min_length = 1;	max_length = 10;	min_look_ahead = 120;	avg_look_ahead = 24;	addr_align = 1;}byte ILDisassembler::getSize(dis_insn *disasm_insn){	return ((ILDisInsn*)disasm_insn)->size;}const char *ILDisassembler::getName(){	return "IL/Disassembler";}const char *ILDisassembler::str(dis_insn *disasm_insn, int style){	return strf(disasm_insn, style, "");}const char *ILDisassembler::strf(dis_insn *disasm_insn, int style, const char *format){	if (style & DIS_STYLE_HIGHLIGHT) enable_highlighting();//	const char *cs_default = get_cs(e_cs_default);	const char *cs_number = get_cs(e_cs_number);//	const char *cs_symbol = get_cs(e_cs_symbol);	const char *cs_string = get_cs(e_cs_string);	ILDisInsn *dis_insn = (ILDisInsn *) disasm_insn;		if (!dis_insn->valid) {//		is_invalid://          assert(dis_insn->size==1);		sprintf(insnstr, "db              %s0x%02x", cs_number, dis_insn->data.ui);	} else {		switch (dis_insn->op) {		case IL_OPCODE_ARGS_NONE:			sprintf(insnstr, "%-15s", dis_insn->opcode->name);			break;		case IL_OPCODE_ARGS_UINT8:		case IL_OPCODE_ARGS_UINT16:		case IL_OPCODE_ARGS_LONG_ARG:		case IL_OPCODE_ARGS_LONG_VAR:		case IL_OPCODE_ARGS_ANN_ARG: 		case IL_OPCODE_ARGS_ANN_DEAD: 		case IL_OPCODE_ARGS_ANN_LIVE:  {			sprintf(insnstr, "%-15s %s%u", dis_insn->opcode->name, cs_number, dis_insn->data.ui);			break;		}		case IL_OPCODE_ARGS_INT8:		case IL_OPCODE_ARGS_INT16:		case IL_OPCODE_ARGS_INT32:		case IL_OPCODE_ARGS_SHORT_VAR:		case IL_OPCODE_ARGS_SHORT_ARG:		case IL_OPCODE_ARGS_ANN_REF_S: {			sprintf(insnstr, "%-15s %s%d", dis_insn->opcode->name, cs_number, dis_insn->data.i);			break;		}		case IL_OPCODE_ARGS_INT64:			ht_snprintf(insnstr, 100, "%-15s %s%qd", dis_insn->opcode->name, cs_number, &dis_insn->data.q);			break;                    		case IL_OPCODE_ARGS_CALL:		case IL_OPCODE_ARGS_CALLI:		case IL_OPCODE_ARGS_CALLVIRT:		case IL_OPCODE_ARGS_NEW:		case IL_OPCODE_ARGS_TOKEN: {			uint32 token = dis_insn->data.ui;			char *tokenstr = NULL;			if (token_func) {				tokenstr = token_func(token, context);				if (tokenstr) {					sprintf(insnstr, "%-15s %s", dis_insn->opcode->name, tokenstr);					break;				}			}			sprintf(insnstr, "%-15s %s0x%08x", dis_insn->opcode->name, cs_number, token);			break;		}		case IL_OPCODE_ARGS_STRING: {			if ((dis_insn->data.ui & IL_META_TOKEN_MASK) == IL_META_TOKEN_STRING) {				uint32 strofs = dis_insn->data.ui & (~IL_META_TOKEN_MASK);				char *str = NULL;				if (string_func) {					str = string_func(strofs, context);				}				if (str) {					sprintf(insnstr, "%-15s %s\"%s\"", dis_insn->opcode->name, cs_string, str);					break;				}			}			sprintf(insnstr, "%-15s %s0x%08x", dis_insn->opcode->name, cs_number, dis_insn->data.ui);			break;		}		case IL_OPCODE_ARGS_LONG_JUMP:		case IL_OPCODE_ARGS_SHORT_JUMP: {			CPU_ADDR caddr;			caddr.addr32.offset = dis_insn->data.ui;			int slen;			char *s = (addr_sym_func) ? addr_sym_func(caddr, &slen, addr_sym_func_context) : NULL;			if (s) {				char *p = insnstr + sprintf(insnstr, "%-15s ", dis_insn->opcode->name);				memmove(p, s, slen);				p[slen] = 0;			} else {				sprintf(insnstr, "%-15s %s0x%08x", dis_insn->opcode->name, cs_number, dis_insn->data.ui);			}			break;		}		case IL_OPCODE_ARGS_FLOAT32: {			sprintf(insnstr, "%-15s %s%f", dis_insn->opcode->name, cs_number, dis_insn->data.f);			break;		}		case IL_OPCODE_ARGS_FLOAT64: {		sprintf(insnstr, "%-15s %s%f", dis_insn->opcode->name, cs_number, dis_insn->data.df);			break;		}		default:			sprintf(insnstr, "%-15s [unsupported paramtype]", dis_insn->opcode->name);		}	}		disable_highlighting();	return insnstr;     }ObjectID ILDisassembler::getObjectID() const{	return ATOM_DISASM_IL;}bool ILDisassembler::validInsn(dis_insn *disasm_insn){	return ((ILDisInsn *)disasm_insn)->valid;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品中文字幕在线不卡尤物 | 精品免费99久久| 国产午夜一区二区三区| 亚洲自拍偷拍综合| 国产福利一区二区三区视频在线| 欧美三级欧美一级| 国产精品你懂的| 国产乱国产乱300精品| 777色狠狠一区二区三区| 中文字幕制服丝袜一区二区三区| 男女男精品视频| 欧美日韩国产小视频| 中文字幕亚洲电影| 国产东北露脸精品视频| 日韩欧美一二三四区| 亚州成人在线电影| 日本乱人伦aⅴ精品| 欧美国产在线观看| 国产九九视频一区二区三区| 日韩免费观看高清完整版 | 成人av先锋影音| 久久免费电影网| 美女视频第一区二区三区免费观看网站| 91在线视频观看| **网站欧美大片在线观看| 成人一级片网址| 中文无字幕一区二区三区 | 国产日韩欧美一区二区三区乱码| 久久精品国产亚洲aⅴ| 91精品国产色综合久久| 偷窥国产亚洲免费视频| 欧美日韩国产精品成人| 午夜一区二区三区在线观看| 欧美丰满一区二区免费视频| 亚洲成av人片在线| 欧美精品视频www在线观看| 香蕉加勒比综合久久| 欧美军同video69gay| 免费精品视频最新在线| 精品少妇一区二区三区视频免付费 | 国产剧情av麻豆香蕉精品| 欧美精品一区二区在线观看| 国产精品亚洲一区二区三区妖精 | 欧美网站大全在线观看| 五月婷婷另类国产| 5月丁香婷婷综合| 蜜桃视频在线一区| 26uuu亚洲| 成人av第一页| 亚洲在线观看免费视频| 日韩欧美国产不卡| 国产久卡久卡久卡久卡视频精品| 中文字幕国产一区| 欧美一a一片一级一片| 丝袜亚洲另类欧美综合| 日韩天堂在线观看| 成人午夜电影网站| 亚洲一区在线观看网站| 精品裸体舞一区二区三区| 国产精品91一区二区| 一区二区三区四区精品在线视频| 88在线观看91蜜桃国自产| 色老汉一区二区三区| 七七婷婷婷婷精品国产| 国产欧美精品一区aⅴ影院| 色偷偷一区二区三区| 麻豆国产欧美日韩综合精品二区| 精品国产91乱码一区二区三区| 北条麻妃国产九九精品视频| 日韩精品免费专区| 国产精品激情偷乱一区二区∴| 在线不卡一区二区| 99久久综合精品| 麻豆91在线播放免费| 亚洲日本va午夜在线影院| 51精品久久久久久久蜜臀| 大桥未久av一区二区三区中文| 亚洲国产日韩综合久久精品| 欧美激情一区二区三区四区| 欧美日韩激情一区| 99热国产精品| 国产精品一区二区在线观看网站| 亚洲国产另类精品专区| 国产精品高潮久久久久无| 欧美不卡在线视频| 欧美午夜精品久久久久久超碰| 国产91在线|亚洲| 日本美女一区二区三区| 亚洲精品视频自拍| 亚洲国产精品传媒在线观看| 91精品国产手机| 欧美性猛片xxxx免费看久爱| av动漫一区二区| 国产白丝精品91爽爽久久| 久久国产剧场电影| 蜜臀久久99精品久久久画质超高清 | 99精品视频免费在线观看| 国内精品久久久久影院薰衣草 | 亚洲精品日韩专区silk| 国产欧美日韩综合| 久久麻豆一区二区| 精品国产123| 日韩一卡二卡三卡四卡| 欧美人与z0zoxxxx视频| 欧美视频在线一区二区三区| 91蝌蚪porny九色| 波多野洁衣一区| 波多野结衣欧美| 99re这里只有精品首页| 99久久国产综合精品色伊| 成人高清免费观看| 99久久夜色精品国产网站| 成人激情免费电影网址| 国产a精品视频| thepron国产精品| 91一区二区三区在线播放| 99精品国产视频| 色综合色狠狠综合色| 在线观看一区不卡| 欧美日韩国产精选| 欧美一区二区三区在线看| 日韩欧美国产系列| 中文字幕av一区 二区| 亚洲色图制服诱惑 | 激情综合网天天干| 国产原创一区二区| 成人自拍视频在线观看| av亚洲精华国产精华精华| 91性感美女视频| 欧美日韩在线精品一区二区三区激情 | 国产精品夜夜嗨| 99精品黄色片免费大全| 欧美最猛黑人xxxxx猛交| 884aa四虎影成人精品一区| 欧美v日韩v国产v| 欧美韩国日本不卡| 亚洲一区中文日韩| 久久97超碰国产精品超碰| 国产91富婆露脸刺激对白| 日本韩国欧美一区二区三区| 欧美丝袜丝交足nylons图片| 日韩一区二区三区视频| 久久久久国产精品人| 亚洲天堂免费看| 日本大胆欧美人术艺术动态| 国产a精品视频| 欧美日韩免费观看一区三区| 欧美本精品男人aⅴ天堂| 最新日韩av在线| 欧美bbbbb| 91亚洲精华国产精华精华液| 欧美一区二区在线免费播放| 国产欧美日韩中文久久| 亚洲成人精品在线观看| 国产成人免费av在线| 欧美午夜片在线看| 欧美国产欧美亚州国产日韩mv天天看完整 | 午夜精品视频一区| 成人夜色视频网站在线观看| 欧美嫩在线观看| 中文字幕在线一区免费| 久久99久久99| 欧美性videosxxxxx| 久久久午夜电影| 天天av天天翘天天综合网| 风间由美性色一区二区三区| 欧美日韩在线一区二区| 国产精品麻豆视频| 开心九九激情九九欧美日韩精美视频电影 | 不卡一卡二卡三乱码免费网站| 欧美精品久久久久久久久老牛影院| 国产欧美一二三区| 美国毛片一区二区| 欧美三级三级三级| 亚洲欧洲精品天堂一级| 国产精品一区二区在线播放| 欧美精品久久久久久久多人混战| 国产丝袜美腿一区二区三区| 老司机精品视频在线| 在线观看91视频| 午夜精品久久久久久久99水蜜桃| 成人黄色国产精品网站大全在线免费观看| 日韩一区二区中文字幕| 亚洲精品自拍动漫在线| 波多野结衣的一区二区三区| 久久久.com| 国产乱人伦偷精品视频不卡| 日韩免费一区二区三区在线播放| 亚洲地区一二三色| 在线观看日韩毛片| 一区二区三区在线不卡| 97se亚洲国产综合自在线观| 国产女主播视频一区二区| 国产精品中文有码| 久久无码av三级| 国产一区二区91| 中文字幕久久午夜不卡| 成人午夜免费视频| 亚洲色大成网站www久久九九| 96av麻豆蜜桃一区二区|