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

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

?? htsearch.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* *	HT Editor *	htsearch.cc * *	Copyright (C) 1999-2002 Stefan Weyergraf * *	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 "atom.h"#include "cmds.h"#include "htctrl.h"#include "hthist.h"#include "htiobox.h"#include "keyb.h"#include "htsearch.h"#include "strtools.h"#include "htprocess.h"#include "snprintf.h"extern "C" {#include "evalx.h"}union search_pos {	FileOfs offset;	viewer_pos pos;};/* FIXME: get rid of global vars */uint lastsearchmodeid = 0;uint lastreplacemodeid = 0;typedef ht_search_request* (*create_request_func)(search_pos *ret_start, search_pos *ret_end, ht_view *form, ht_format_viewer *format, uint search_class);typedef Object* (*create_replace_context_func)(File *file, FileOfs ofs, FileOfs len, ht_view *form, FileOfs *return_repllen);struct ht_search_method {	const char *name;	uint search_class;			// SC_*	uint search_mode_mask;		// SEARCHMODE_*	uint histid;	create_form_func create_form;	create_request_func create_request;	create_desc_func create_desc;};struct ht_replace_method {	const char *name;	uint histid;	create_form_func create_form;	create_replace_context_func create_replace_context;	process_func replace_process;};#include <stdlib.h>#include <string.h>static bool test_str_to_ofs(FileOfs *ofs, byte *str, uint strlen, ht_format_viewer *format, const char *desc){#define TEST_STR_TO_OFS_MAXSTRLEN       128	if (strlen > TEST_STR_TO_OFS_MAXSTRLEN) {		throw MsgfException("%s: expression too long (len %d, max %d)", desc, strlen, TEST_STR_TO_OFS_MAXSTRLEN);		return false;	}	if (strlen > 0) {		char s[TEST_STR_TO_OFS_MAXSTRLEN+1];		bin2str(s, str, strlen);		if (!format->string_to_offset(s, ofs)) {			throw MsgfException("%s: invalid expression: '%s'", desc, s);			return false;		}	}	return true;}static bool test_str_to_pos(viewer_pos *pos, byte *str, uint strlen, ht_format_viewer *format, const char *desc){#define TEST_STR_TO_POS_MAXSTRLEN      128	if (strlen > TEST_STR_TO_POS_MAXSTRLEN) {		throw MsgfException("%s: expression too long (len %d, max %d)", desc, strlen, TEST_STR_TO_POS_MAXSTRLEN);	}	if (strlen > 0) {		char s[TEST_STR_TO_POS_MAXSTRLEN+1];		bin2str(s, str, strlen);		if (!format->string_to_pos(s, pos)) {			throw MsgfException("%s: invalid expression: '%s'", desc, s);		}	}	return true;}/* *	CLASS ht_fxbin_search_request */ht_view* create_form_hexascii(Bounds *b, uint histid){	ht_hexascii_search_form *form = new ht_hexascii_search_form();	form->init(b, 0, (List*)getAtomValue(histid));	return form;}ht_search_request* create_request_hexascii(search_pos *start, search_pos *end, ht_view *f, ht_format_viewer *format, uint search_class){	ht_hexascii_search_form *form = (ht_hexascii_search_form*)f;	ht_hexascii_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);		ht_fxbin_search_request *request;		if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "hex/ascii");	}	if (test_str_to_ofs(&start->offset, d.start.text, d.start.textlen, format, "start-offset")	&& test_str_to_ofs(&end->offset, d.end.text, d.end.textlen, format, "end-offset")) {		request = new ht_fxbin_search_request(search_class,			d.options.state & 1 ? SF_FXBIN_CASEINSENSITIVE: 0,			d.str.textlen, d.str.text);	} else {		request = NULL;	}	return request;}void create_desc_hexascii(char *buf, int buflen, ht_view *f){	ht_hexascii_search_form *form=(ht_hexascii_search_form*)f;	ht_hexascii_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "hex/ascii");	}	char *b = buf;	b += escape_special(b, buflen, d.str.text, d.str.textlen, NULL, false);	strncat(b, " (", buflen-(b-buf));	if (d.options.state & 1) {		strncat(b, "case-insensitive", buflen-(b-buf));	} else {		strncat(b, "case-sensitive", buflen-(b-buf));	}	if (d.start.textlen) {		strncat(b, ", start=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b += escape_special(b, buflen-(b-buf), d.start.text, d.start.textlen);	}	if (d.end.textlen) {		strncat(b, ", end=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b += escape_special(b, buflen-(b-buf), d.end.text, d.end.textlen);	}	strncat(b, ")", buflen-(b-buf));}/***/ht_view* create_form_evalstr(Bounds *b, uint histid){	ht_evalstr_search_form *form=new ht_evalstr_search_form();	form->init(b, 0, (List*)getAtomValue(histid));	return form;}ht_search_request* create_request_evalstr(search_pos *start, search_pos *end, ht_view *f, ht_format_viewer *format, uint search_class){#define EVALSTR_MAXSTRLEN		256	ht_evalstr_search_form *form=(ht_evalstr_search_form*)f;	ht_evalstr_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);		ht_fxbin_search_request *request = NULL;			if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "eval str");	} else if (d.str.textlen<=EVALSTR_MAXSTRLEN) {		char strbuf[EVALSTR_MAXSTRLEN+1];		bin2str(strbuf, d.str.text, d.str.textlen);		eval_scalar r;		eval_str s;		if (eval(&r, strbuf, NULL, NULL, NULL)) {			scalar_context_str(&r, &s);			scalar_destroy(&r);			if (test_str_to_ofs(&start->offset, d.start.text, d.start.textlen, format, "start-offset")			&& test_str_to_ofs(&end->offset, d.end.text, d.end.textlen, format, "end-offset")) {				request = new ht_fxbin_search_request(search_class,					d.options.state & 1 ? SF_FXBIN_CASEINSENSITIVE: 0,					s.len, (byte*)s.value);			}		} else {			const char *str;			int pos;			get_eval_error(&str, &pos);			throw MsgfException("eval error at pos %d: %s", pos, str);		}	} else {		throw MsgfException("%s: expression too long (len %d, max %d)", "eval str", d.str.textlen, EVALSTR_MAXSTRLEN);	}	return request;}void create_desc_evalstr(char *buf, int buflen, ht_view *f){	ht_evalstr_search_form *form=(ht_evalstr_search_form*)f;	ht_evalstr_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "eval str");	}	char *b = buf;	b += escape_special(b, buflen, d.str.text, d.str.textlen, NULL, false);	strncat(b, " (", buflen-(b-buf));	if (d.options.state & 1) {		strncat(b, "case-insensitive", buflen-(b-buf));	} else {		strncat(b, "case-sensitive", buflen-(b-buf));	}	if (d.start.textlen) {		strncat(b, ", start=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.start.text, d.start.textlen);	}	if (d.end.textlen) {		strncat(b, ", end=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.end.text, d.end.textlen);	}	strncat(b, ")", buflen-(b-buf));}/***/ht_fxbin_search_request::ht_fxbin_search_request(uint search_class, uint flags, uint ds, byte *d) :	ht_search_request(search_class, ST_FXBIN, flags){	data_size = ds;	data = ht_malloc(data_size);	memcpy(data, d, data_size);}ht_fxbin_search_request::~ht_fxbin_search_request(){	free(data);}ht_fxbin_search_request *ht_fxbin_search_request::clone() const{	return new ht_fxbin_search_request(search_class, flags, data_size, data);}/* *	CLASS ht_regex_search_request */ ht_view* create_form_vregex(Bounds *b, uint histid){	ht_vregex_search_form *form=new ht_vregex_search_form();	form->init(b, 0, (List*)getAtomValue(histid));	return form;}ht_search_request* create_request_vregex(search_pos *start, search_pos *end, ht_view *f, ht_format_viewer *format, uint search_class){#define VREGEX_MAXSTRLEN		256	ht_vregex_search_form *form=(ht_vregex_search_form*)f;	ht_vregex_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);	ht_regex_search_request *request=NULL;	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "regex");	} else if (d.str.textlen <= VREGEX_MAXSTRLEN) {		char strbuf[VREGEX_MAXSTRLEN+1];		bin2str(strbuf, d.str.text, d.str.textlen);		if (test_str_to_pos(&start->pos, d.start.text, d.start.textlen, format, "start-address")		&& test_str_to_pos(&end->pos, d.end.text, d.end.textlen, format, "end-address")) {			request = new ht_regex_search_request(search_class, d.options.state & 1 ? SF_REGEX_CASEINSENSITIVE : 0, strbuf);		}	} else {		throw MsgfException("%s: expression too long (size %d, max %d)", "regex", strlen, VREGEX_MAXSTRLEN);	}	return request;}void create_desc_vregex(char *buf, int buflen, ht_view *f){	ht_vregex_search_form *form=(ht_vregex_search_form*)f;	ht_vregex_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "regex");	}	char *b = buf;	b += escape_special(b, buflen, d.str.text, d.str.textlen, NULL, false);	strncat(b, " (", buflen-(b-buf));	if (d.options.state & 1) {		strncat(b, "case-insensitive", buflen-(b-buf));	} else {		strncat(b, "case-sensitive", buflen-(b-buf));	}	if (d.start.textlen) {		strncat(b, ", start=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.start.text, d.start.textlen);	}	if (d.end.textlen) {		strncat(b, ", end=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.end.text, d.end.textlen);	}	strncat(b, ")", buflen-(b-buf));}/***/ht_regex_search_request::ht_regex_search_request(uint search_class, uint flags, char *regex) :	ht_search_request(search_class, ST_REGEX, flags){	rx_str = ht_strdup(regex);	int r = regcomp(&rx, rx_str, REG_EXTENDED | ((flags & SF_REGEX_CASEINSENSITIVE) ? REG_ICASE : 0));	if (r) throw ht_regex_search_exception(r, &rx);}ht_regex_search_request::~ht_regex_search_request(){	regfree(&rx);	free(rx_str);}ht_regex_search_request *ht_regex_search_request::clone() const{	return new ht_regex_search_request(search_class, flags, rx_str);}/* *	CLASS ht_regex_search_request */ ht_regex_search_exception::ht_regex_search_exception(int e, regex_t *r){	char s[128];	regerror(e, r, s, sizeof s);	ht_snprintf(rxerr, sizeof rxerr, "error compiling regex: %s", s);}	String &ht_regex_search_exception::reason(String &s) const{	return s = rxerr;}/* *	CLASS ht_expr_search_request */ht_view* create_form_expr(Bounds *b, uint histid){	ht_expr_search_form *form = new ht_expr_search_form();	form->init(b, 0, (List*)getAtomValue(histid));	return form;}ht_search_request* create_request_expr(search_pos *start, search_pos *end, ht_view *f, ht_format_viewer *format, uint search_class){#define EXPR_MAXSTRLEN		256	ht_expr_search_form *form=(ht_expr_search_form*)f;	ht_expr_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);		ht_expr_search_request *request = NULL;	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "expr");	} else if (d.str.textlen <= EXPR_MAXSTRLEN) {		char strbuf[EXPR_MAXSTRLEN+1];		bin2str(strbuf, d.str.text, d.str.textlen);				if (test_str_to_ofs(&start->offset, d.start.text, d.start.textlen, format, "start-offset")		&& test_str_to_ofs(&end->offset, d.end.text, d.end.textlen, format, "end-offset")) {			request = new ht_expr_search_request(search_class, 0, strbuf);		}	} else {		throw MsgfException("%s: expression too long (size %d, max %d)", "expr", strlen, EXPR_MAXSTRLEN);	}	return request;}void create_desc_expr(char *buf, int buflen, ht_view *f){	ht_vregex_search_form *form=(ht_vregex_search_form*)f;	ht_vregex_search_form_data d;	ViewDataBuf vdb(form, &d, sizeof d);	if (!d.str.textlen) {		throw MsgfException("%s: string is empty", "expr");	}	char *b = buf;	b += escape_special(b, buflen, d.str.text, d.str.textlen, NULL, false);	strncat(b, " (", buflen-(b-buf));	if (d.options.state & 1) {		strncat(b, "case-insensitive", buflen-(b-buf));	} else {		strncat(b, "case-sensitive", buflen-(b-buf));	}	if (d.start.textlen) {		strncat(b, ", start=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.start.text, d.start.textlen);	}	if (d.end.textlen) {		strncat(b, ", end=", buflen-(b-buf));		if (b-buf<buflen) b+=strlen(b);		b+=escape_special(b, buflen-(b-buf), d.end.text, d.end.textlen);	}	strncat(b, ")", buflen-(b-buf));}/***/ht_expr_search_request::ht_expr_search_request(uint search_class, uint flags, char *Expr) :	ht_search_request(search_class, ST_EXPR, flags){	expr = ht_strdup(Expr);}ht_expr_search_request::~ht_expr_search_request(){	free(expr);}ht_expr_search_request *ht_expr_search_request::clone() const{	return new ht_expr_search_request(search_class, flags, expr);}/* *	binary search *//* FIXME: put somewhere else */void bufdowncase(byte *buf, uint32 len){	for (uint32 i=0; i<len; i++) {		if (buf[i] >= 'A' && buf[i] <= 'Z') buf[i] += 32;	}}#define SEARCH_BUF_SIZE 256*1024ht_search_bin_context::~ht_search_bin_context(){	free(buf);	free(pat);}Object* create_search_bin_context(File *file, FileOfs ofs, FileOfs len, byte *pat, uint patlen, uint flags, FileOfs *return_ofs, bool *return_success){	if (patlen > SEARCH_BUF_SIZE) return NULL;		ht_search_bin_context *ctx = new ht_search_bin_context();	ctx->file = file;	ctx->file_end = false;	ctx->ofs = ofs;	ctx->flags = flags;	ctx->len = len;	ctx->pat = ht_malloc(patlen);	memcpy(ctx->pat, pat, patlen);	ctx->patlen = patlen;	ctx->o = ofs;	if (ctx->flags & SFBIN_CASEINSENSITIVE) bufdowncase(ctx->pat, ctx->patlen);	ctx->buf = ht_malloc(SEARCH_BUF_SIZE);	ctx->return_ofs = return_ofs;	ctx->return_success = return_success;	file->seek(ctx->o);	ctx->c = file->read(ctx->buf, SEARCH_BUF_SIZE);	ctx->bufptr = ctx->buf;	ctx->file_end = (ctx->c != SEARCH_BUF_SIZE);	if (ctx->flags & SFBIN_CASEINSENSITIVE) bufdowncase(ctx->buf, ctx->c);	return ctx;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区电影 | 国产在线麻豆精品观看| 中文字幕在线观看不卡| 精品精品国产高清一毛片一天堂| 欧美日韩一区高清| 91麻豆123| www.欧美日韩国产在线| 韩国精品免费视频| 男女性色大片免费观看一区二区| 亚洲男人的天堂一区二区| 中文字幕免费不卡| 国产婷婷精品av在线| 欧美精品一区二区精品网| 欧美一区二区三区免费大片| 色哟哟精品一区| 成人听书哪个软件好| 麻豆一区二区99久久久久| 亚洲精品视频在线看| 国产日韩欧美高清| 久久伊人中文字幕| 久久久精品黄色| 精品免费一区二区三区| 精品国内二区三区| 久久一留热品黄| 精品国产在天天线2019| 精品99一区二区三区| 久久影视一区二区| 国产欧美久久久精品影院| 精品三级av在线| 亚洲精品在线观看视频| 久久精品在线观看| 欧美激情综合在线| 综合欧美亚洲日本| 亚洲一区二区不卡免费| 亚洲国产精品久久不卡毛片 | 蓝色福利精品导航| 青青草一区二区三区| 麻豆精品视频在线观看| 久久电影网站中文字幕| 国产呦精品一区二区三区网站| 国产一区二三区好的| 国产成人精品一区二| 成人丝袜视频网| 91麻豆精东视频| 欧美亚洲愉拍一区二区| 538prom精品视频线放| 欧美成人女星排行榜| 久久午夜国产精品| 亚洲三级免费观看| 亚洲欧美自拍偷拍色图| 亚洲欧美激情在线| 亚洲在线视频网站| 午夜成人免费视频| 久久精品国内一区二区三区| 国产精品99久久久久久久女警| 国产精品亚洲专一区二区三区| 福利电影一区二区| 欧美视频一区二区三区在线观看| 91欧美一区二区| 91精品国产aⅴ一区二区| 欧美日韩国产另类不卡| 久久中文字幕电影| 综合色中文字幕| 免费看日韩a级影片| 国产91精品露脸国语对白| 欧美亚洲日本一区| 欧美精品一区二区三区蜜臀| 国产精品电影院| 日韩影视精彩在线| 成人午夜电影久久影院| 欧美电影一区二区| 中文字幕成人在线观看| 亚洲成人资源在线| 丁香激情综合国产| 69p69国产精品| 亚洲精品少妇30p| 免费在线观看视频一区| 盗摄精品av一区二区三区| 欧美日韩精品一区二区三区| 国产欧美一区二区精品忘忧草| 亚洲永久免费视频| 国产高清成人在线| 欧美精品1区2区3区| 中文字幕亚洲成人| 国内精品国产三级国产a久久| 色婷婷精品大在线视频 | 欧美成人女星排名| 国产精品麻豆网站| 日日夜夜精品视频天天综合网| 国产一区二区0| 制服丝袜一区二区三区| 欧美韩国日本一区| 麻豆国产精品视频| 91成人国产精品| 国产精品久久久久久久午夜片| 日产国产欧美视频一区精品| 成人高清视频在线| 欧美日韩国产综合一区二区 | 国产午夜一区二区三区| 日韩精品久久久久久| 色综合久久久久综合99| 欧美国产日韩亚洲一区| 另类小说综合欧美亚洲| 欧美日韩aaaaaa| 亚洲精品免费在线播放| 成人网页在线观看| 久久久国际精品| 韩国毛片一区二区三区| 91精品国产一区二区三区蜜臀| 亚洲乱码日产精品bd| 成人午夜碰碰视频| 国产清纯美女被跳蛋高潮一区二区久久w | 56国语精品自产拍在线观看| 亚洲影视在线观看| 色婷婷国产精品| 亚洲伦理在线精品| 色综合中文字幕国产 | 亚洲在线免费播放| 91在线视频免费91| 亚洲欧洲日韩综合一区二区| 日本午夜精品视频在线观看 | 91视频观看免费| 最新日韩av在线| 91丝袜国产在线播放| 亚洲欧美中日韩| 91免费版在线| 一区二区三区国产豹纹内裤在线| 成人免费看视频| 久久久亚洲国产美女国产盗摄 | 国产精品久久久久婷婷| 成人动漫视频在线| 中文字幕在线一区| 不卡的av在线| 亚洲色图视频网| 欧美亚男人的天堂| 午夜久久久影院| 日韩欧美亚洲一区二区| 精品一区二区久久| 久久久精品tv| jlzzjlzz亚洲女人18| 国产精品毛片久久久久久久| 日本黄色一区二区| 亚洲一卡二卡三卡四卡五卡| 欧美精品一级二级三级| 美腿丝袜亚洲一区| 欧美一区二区三区喷汁尤物| 青娱乐精品在线视频| 亚洲精品在线三区| 91黄视频在线| 青青草视频一区| 国产精品无遮挡| 色狠狠综合天天综合综合| 亚瑟在线精品视频| 26uuu国产电影一区二区| 国产精品亚洲午夜一区二区三区| 国产精品成人一区二区艾草| 色呦呦国产精品| 欧美在线视频你懂得| 天天色综合成人网| 久久久国产午夜精品| 不卡av电影在线播放| 亚洲成人av福利| 久久久久久久av麻豆果冻| 99久久精品国产观看| 亚洲a一区二区| 精品国产a毛片| 色婷婷av一区二区三区之一色屋| 午夜激情一区二区三区| 精品国产亚洲在线| 99久久er热在这里只有精品66| 亚洲一区在线视频观看| 日韩精品专区在线| 蜜桃精品在线观看| 欧美激情在线免费观看| 欧美日韩亚洲国产综合| 国产精品一区久久久久| 樱花草国产18久久久久| 精品国产亚洲在线| 91蜜桃在线观看| 国产在线不卡一卡二卡三卡四卡| 亚洲欧洲在线观看av| 欧美电影免费观看高清完整版在线 | 国产精品视频看| 91精品久久久久久蜜臀| 波多野结衣精品在线| 奇米四色…亚洲| 亚洲三级电影网站| 国产夜色精品一区二区av| 欧美色视频在线| 欧美日韩亚洲综合一区二区三区| 一区二区在线观看不卡| 欧美在线视频日韩| 99国内精品久久| 国产精品66部| 国精产品一区一区三区mba视频 | 免费亚洲电影在线| 亚洲国产另类av| 亚洲精品videosex极品| 国产精品免费人成网站| 国产性色一区二区|