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

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

?? hthex.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/*  *	HT Editor *	hthex.cc * *	Copyright (C) 1999-2002 Stefan Weyergraf *	Copyright (C) 2007 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 "cmds.h"#include "endianess.h"#include "htctrl.h"#include "htiobox.h"#include "hthex.h"#include "htmenu.h"#include "htsearch.h"#include "snprintf.h"#include "stream.h"#include "tools.h"extern "C" {#include "evalx.h"#include "regex.h"}ht_view *hthex_init(Bounds *b, File *file, ht_format_group *group){	ht_hex_viewer *v = new ht_hex_viewer();	v->init(b, DESC_HEX, VC_EDIT | VC_GOTO | VC_SEARCH | VC_REPLACE | VC_RESIZE, file, group);	v->search_caps |= SEARCHMODE_BIN | SEARCHMODE_EVALSTR | SEARCHMODE_EXPR;	v->h = new ht_hex_file_sub();	v->h->init(file, 0, file->getSize(), 16, 0);	v->insertsub(v->h);	return v;}format_viewer_if hthex_if = {	hthex_init,	0};/* *	CLASS ht_hex_viewer */int ht_hex_viewer::get_pindicator_str(char *buf, int max_len){	FileOfs o;	if (get_current_offset(&o)) {		FileOfs sel_start, sel_end;		pselect_get(&sel_start, &sel_end);		char ttemp[1024];		if (sel_end-sel_start > 0) {			ht_snprintf(ttemp, sizeof ttemp, "selection %qxh-%qxh (%qd byte%s) ", sel_start, sel_end-1, sel_end-sel_start, sel_end-sel_start==1?"":"s");		} else {			ttemp[0] = 0;		}		return ht_snprintf(buf, max_len, " %s %qxh/%qu %s", edit() ? "edit" : "view", o, o, ttemp);	} else {		return ht_snprintf(buf, max_len, " ? ");	}}	bool ht_hex_viewer::get_vscrollbar_pos(int *pstart, int *psize){	FileOfs s = file->getSize();	if (s) {		uint ll = h->get_line_length();		FileOfs o = top.line_id.id2 + (uint64(top.line_id.id1) << 32);		sint64 z = MIN(size.h * ll, s - o);		return scrollbar_pos(o, z, s, pstart, psize);	}	return false;}void ht_hex_viewer::handlemsg(htmsg *msg){	switch (msg->msg) {	case msg_filesize_changed:		htmsg m;		m.msg = msg_filesize_changed;		m.type = mt_broadcast;		sendsubmsg(&m);		uf_initialized = false;		complete_init();		dirtyview();		return;	case cmd_hex_entropy: {		FileOfs ofs;		if (get_current_offset(&ofs)) {			byte buf[64];			if (pread(ofs, buf, 64)==64) {				int e = calc_entropy2(buf, 64);				infobox("64-byte entropy at offset 0x%08qx: %d %%", ofs, e);			}		}		clearmsg(msg);		return;	}	case cmd_hex_display_bytes: {		char result[256];		sprintf(result, "%d", h->get_line_length());		if (inputbox("Change display width", "~Line length (Bytes)", result, 256)) {			int ll = strtoul(result, NULL, 10);			if (ll > 0 && ll <= 32) {				FileOfs ofs = -1ULL;				get_current_offset(&ofs);				int disp = h->get_disp();				if (disp >= ll) {					h->set_disp(0);				}				h->set_line_length(ll);				viewer_pos p;				if (ofs != -1ULL && offset_to_pos(ofs, &p) && goto_pos(p, this)) {					focus_cursor();				}			} else {				errorbox("Line length must be > 0 and <= 32!");			}		}		clearmsg(msg);		return;	}	case cmd_hex_display_disp: {		char result[256];		sprintf(result, "%d", h->get_disp());		if (inputbox("Change display displacement", "~Displacement (Bytes)", result, 256)) {			int ll = h->get_line_length();			int disp = strtoul(result, NULL, 10);			if (disp >= 0 && disp < ll) {				FileOfs ofs = -1ULL;				get_current_offset(&ofs);				h->set_disp(disp);				viewer_pos p;				if (ofs != -1ULL && offset_to_pos(ofs, &p) && goto_pos(p, this)) {					focus_cursor();				}			} else {				errorbox("Displacement must be >= 0 and < line length (%d)!", ll);			}		}		clearmsg(msg);		return;	}	case msg_contextmenuquery: {		ht_static_context_menu *m = new ht_static_context_menu();		m->init("~Local-Hex");		m->insert_entry("~Block operations", "Ctrl+B", cmd_file_blockop, K_Control_B, 1);		m->insert_entry("~Replace", "Ctrl+E", cmd_file_replace, K_Control_E, 1);		m->insert_entry("~Entropy", "Ctrl+T", cmd_hex_entropy, K_Control_T, 1);		m->insert_entry("Change display ~width...", "Ctrl+O", cmd_hex_display_bytes, K_Control_O, 1);		m->insert_entry("Change display ~displacement...", "Ctrl+U", cmd_hex_display_disp, K_Control_U, 1);		msg->msg = msg_retval;		msg->data1.ptr = m;		return;	}	}	ht_uformat_viewer::handlemsg(msg);}bool ht_hex_viewer::pos_to_offset(viewer_pos p, FileOfs *ofs){	*ofs = (uint64(p.u.line_id.id1) << 32) + p.u.line_id.id2 + p.u.tag_idx;	return true;}bool ht_hex_viewer::offset_to_pos(FileOfs ofs, viewer_pos *p){	uint ll = h->get_line_length();	uint disp = h->get_disp();	clear_viewer_pos(p);	p->u.sub = first_sub;	FileOfs id;	if (ofs < disp) {		id = 0;		p->u.tag_idx = ofs;	} else {		id = ofs - ((ofs - disp) % ll);		p->u.tag_idx = (ofs - disp) % ll;	}	p->u.line_id.id1 = id >> 32;	p->u.line_id.id2 = id;	return true;}bool ht_hex_viewer::qword_to_pos(uint64 q, viewer_pos *p){	uint ll = h->get_line_length();	uint disp = h->get_disp();	ht_linear_sub *s = (ht_linear_sub*)cursor.sub;	FileOfs ofs = q;	clear_viewer_pos(p);	p->u.sub = s;	if (ofs < disp) {		p->u.tag_idx = ofs;	} else {		p->u.tag_idx = (ofs - disp) % ll;	}	return s->convert_ofs_to_id(ofs, &p->u.line_id);}static bool readao(eval_scalar *result, ht_hex_viewer *h, int size, Endianess e, bool sign, FileOfs ofs){	byte buf[8];	File *file = h->get_file();	try {		file->seek(ofs);		file->readx(&buf, size);	} catch (const IOException&) {		set_eval_error("i/o error (couldn't read %d bytes from ofs %qd (0x%qx))", size, ofs, ofs);		return false;	}	uint64 v = createHostInt64(buf, size, e);	if (sign) {		switch (size) {		case 1: v = sint64(sint8(v));		case 2: v = sint64(sint16(v));		case 4: v = sint64(sint32(v));		}	}	scalar_create_int_q(result, v);		return true;}static bool reada(eval_scalar *result, ht_hex_viewer *h, int size, Endianess e, bool sign){	FileOfs ofs;	if (!h->get_current_offset(&ofs)) return false;	return readao(result, h, size, e, sign, ofs);}bool ht_hex_viewer::symbol_handler(eval_scalar *result, char *name){	if (strcmp(name, "$") == 0 || strcmp(name, "o") == 0) {		FileOfs ofs;		viewer_pos vp;		vp.u = cursor;		if (!pos_to_offset(vp, &ofs)) return false;		scalar_create_int_q(result, ofs);		return true;	}	if (strcmp(name, "u8") == 0) return reada(result, this, 1, little_endian, false);	if (strcmp(name, "u16") == 0) return reada(result, this, 2, little_endian, false);	if (strcmp(name, "u32") == 0) return reada(result, this, 4, little_endian, false);	if (strcmp(name, "u64") == 0) return reada(result, this, 8, little_endian, false);	if (strcmp(name, "s8") == 0) return reada(result, this, 1, little_endian, true);	if (strcmp(name, "s16") == 0) return reada(result, this, 2, little_endian, true);	if (strcmp(name, "s32") == 0) return reada(result, this, 4, little_endian, true);	if (strcmp(name, "u16be") == 0) return reada(result, this, 2, big_endian, false);	if (strcmp(name, "u32be") == 0) return reada(result, this, 4, big_endian, false);	if (strcmp(name, "u64be") == 0) return reada(result, this, 8, big_endian, false);	if (strcmp(name, "s16be") == 0) return reada(result, this, 2, big_endian, true);	if (strcmp(name, "s32be") == 0) return reada(result, this, 4, big_endian, true);	return ht_uformat_viewer::symbol_handler(result, name);}static int func_readint(eval_scalar *result, eval_int *offset, int size, Endianess e){	ht_hex_viewer *v = (ht_hex_viewer*)eval_get_context();	return readao(result, v, size, e, false, offset->value);}static int func_readbyte(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 1, little_endian);}static int func_read16le(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 2, little_endian);}static int func_read32le(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 4, little_endian);}static int func_read64le(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 8, little_endian);}static int func_read16be(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 2, big_endian);}static int func_read32be(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 4, big_endian);}static int func_read64be(eval_scalar *result, eval_int *offset){	return func_readint(result, offset, 8, big_endian);}bool ht_hex_viewer::func_handler(eval_scalar *result, char *name, eval_scalarlist *params){	eval_func myfuncs[] = {		{"$", 0, {SCALAR_INT}, "current offset"},		{"o", 0, {SCALAR_INT}, "current offset"},		{"u8", 0, {SCALAR_INT}, "byte at cursor"},		{"u16", 0, {SCALAR_INT}, "little endian 16 bit word at cursor"},		{"u32", 0, {SCALAR_INT}, "little endian 32 bit word at cursor"},		{"u64", 0, {SCALAR_INT}, "little endian 64 bit word at cursor"},		{"s8", 0, {SCALAR_INT}, "signed byte at cursor"},		{"s16", 0, {SCALAR_INT}, "signed little endian 16 bit word at cursor"},		{"s32", 0, {SCALAR_INT}, "signed little endian 32 bit word at cursor"},		{"u16be", 0, {SCALAR_INT}, "big endian 16 bit word at cursor"},	    	{"u32be", 0, {SCALAR_INT}, "big endian 32 bit word at cursor"},		{"u64be", 0, {SCALAR_INT}, "big endian 64 bit word at cursor"},		{"s16be", 0, {SCALAR_INT}, "signed big endian 16 bit word at cursor"},		{"s32be", 0, {SCALAR_INT}, "signed big endian 32 bit word at cursor"},		{"readbyte", (void*)&func_readbyte, {SCALAR_INT}, "read byte from offset"},		{"read16le", (void*)&func_read16le, {SCALAR_INT}, "read little endian 16 bit word from offset"},		{"read32le", (void*)&func_read32le, {SCALAR_INT}, "read little endian 32 bit word from offset"},		{"read64le", (void*)&func_read64le, {SCALAR_INT}, "read little endian 64 bit word from offset"},		{"read16be", (void*)&func_read16be, {SCALAR_INT}, "read big endian 16 bit word from offset"},		{"read32be", (void*)&func_read32be, {SCALAR_INT}, "read big endian 32 bit word from offset"},		{"read64be", (void*)&func_read64be, {SCALAR_INT}, "read big endian 64 bit word from offset"},//		{"readstring", (void*)&func_readstring, {SCALAR_INT, SCALAR_INT}, "read string (offset, length)"},		{NULL},	};	return std_eval_func_handler(result, name, params, myfuncs);}/* *	CLASS ht_hex_file_sub */void ht_hex_file_sub::handlemsg(htmsg *msg){	if (msg->msg == msg_filesize_changed) {		fsize = file->getSize();		return;	}	ht_hex_sub::handlemsg(msg);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久电影| 国产一区二区导航在线播放| 欧美在线一二三四区| 亚洲自拍偷拍图区| 欧美一区二区观看视频| 久久福利视频一区二区| 国产亚洲欧美日韩在线一区| www.亚洲免费av| 亚洲国产精品久久久久婷婷884| 欧美日韩精品一区二区三区蜜桃| 日本不卡123| 日本一区二区三区久久久久久久久不 | 成人午夜视频福利| 亚洲美女屁股眼交| 日韩一级二级三级精品视频| 国产成人在线看| 亚洲一区影音先锋| 亚洲精品一区二区在线观看| 97se亚洲国产综合在线| 偷窥国产亚洲免费视频| 久久综合久久鬼色中文字| 成人免费视频播放| 日韩中文字幕一区二区三区| 久久九九全国免费| 欧美日韩免费高清一区色橹橹| 久久精品99国产精品日本| 国产精品人成在线观看免费| 欧美亚洲国产bt| 国产真实乱对白精彩久久| 一区二区三区在线看| 精品成人佐山爱一区二区| 欧美在线视频全部完| 国产精品一区久久久久| 午夜久久久久久久久| 日本一区二区免费在线观看视频| 欧美日免费三级在线| 成人美女视频在线观看18| 五月天亚洲婷婷| 亚洲图片欧美激情| 久久婷婷国产综合精品青草| 欧美午夜精品一区| 丁香六月久久综合狠狠色| 丝袜a∨在线一区二区三区不卡| 国产日韩成人精品| 欧美成人三级电影在线| 欧美综合一区二区| 99视频热这里只有精品免费| 久久电影网站中文字幕| 亚洲va欧美va人人爽| 亚洲欧美日韩国产综合在线 | 欧美福利电影网| 99久久综合狠狠综合久久| 激情综合亚洲精品| 免费成人小视频| 亚洲第一激情av| 亚洲美女屁股眼交3| 亚洲欧洲日韩综合一区二区| 26uuu精品一区二区在线观看| 欧美精品高清视频| 欧美视频精品在线| 日本道在线观看一区二区| 91玉足脚交白嫩脚丫在线播放| 国产精品99久久久久久久女警 | 亚洲一区精品在线| 亚洲精品乱码久久久久久黑人 | 懂色av中文字幕一区二区三区 | 一本大道av伊人久久综合| 国产91露脸合集magnet| 韩国三级电影一区二区| 精品亚洲国内自在自线福利| 日韩1区2区3区| 免费日本视频一区| 狠狠色丁香久久婷婷综合_中 | 国产精品乡下勾搭老头1| 经典三级在线一区| 国产一区二区视频在线播放| 国内精品写真在线观看| 国产美女精品在线| 国产成人免费网站| av福利精品导航| 色婷婷综合久久久中文字幕| 一本久久精品一区二区| 91久久奴性调教| 欧美视频精品在线| 日韩亚洲欧美一区| 久久亚洲私人国产精品va媚药| 久久影院午夜片一区| 国产蜜臀av在线一区二区三区| 国产精品第13页| 一区二区三区波多野结衣在线观看| 亚洲日本va午夜在线影院| 亚洲精品乱码久久久久久久久| 亚洲一二三专区| 日本怡春院一区二区| 国产一区二区三区四| av在线播放不卡| 欧美性感一区二区三区| 日韩三级视频在线看| 久久久久久免费毛片精品| 国产精品国产自产拍高清av王其| 亚洲美腿欧美偷拍| 蜜臀va亚洲va欧美va天堂| 国产美女在线观看一区| 一本色道久久综合精品竹菊| 7777精品伊人久久久大香线蕉最新版| 日韩久久久久久| 中文字幕在线不卡一区 | 亚洲欧美日韩电影| 日韩av二区在线播放| 粉嫩av亚洲一区二区图片| 在线观看不卡一区| wwwwxxxxx欧美| 亚洲曰韩产成在线| 国产美女精品在线| 欧美日韩一二三区| 中文字幕欧美国产| 日韩精品一二三| 成人aaaa免费全部观看| 51精品国自产在线| 国产精品久久久久久久久免费相片| 亚洲成av人在线观看| 国产成人在线视频网站| 欧美人与性动xxxx| 国产精品国产三级国产aⅴ无密码| 亚洲国产欧美在线人成| 成人午夜短视频| 欧美一区二区久久| 亚洲中国最大av网站| 国产白丝网站精品污在线入口| 欧美日本乱大交xxxxx| 亚洲丝袜自拍清纯另类| 经典三级视频一区| 欧美精品自拍偷拍| 一区二区激情小说| 成人网男人的天堂| 久久欧美一区二区| 毛片一区二区三区| 欧美日韩精品一区二区| 亚洲欧洲韩国日本视频| 国产激情精品久久久第一区二区| 欧美一区二区三区人| 一区二区三区精品| 色美美综合视频| 国产精品电影一区二区| 国产成人av福利| 精品国产伦一区二区三区观看方式 | a级精品国产片在线观看| 欧美成人a视频| 欧美a级理论片| 91精品国产免费久久综合| 亚洲一区二区三区视频在线| 91丨porny丨户外露出| 国产精品久久久久影院| 成人免费不卡视频| 中文字幕不卡的av| 岛国av在线一区| 亚洲国产成人自拍| eeuss影院一区二区三区| 国产欧美一区视频| 成人免费观看av| 国产精品传媒视频| 91丨九色porny丨蝌蚪| 亚洲靠逼com| 欧美性xxxxxx少妇| 天堂久久一区二区三区| 3d成人h动漫网站入口| 天天操天天色综合| 91精品国产一区二区三区| 日韩1区2区3区| 26uuu精品一区二区| 国产ts人妖一区二区| 国产精品毛片a∨一区二区三区 | 国内精品国产三级国产a久久| 精品国产在天天线2019| 国产精品亚洲专一区二区三区| 久久亚洲免费视频| 不卡免费追剧大全电视剧网站| 自拍视频在线观看一区二区| 色噜噜久久综合| 青娱乐精品视频在线| 欧美精品一区二区不卡| 国内精品不卡在线| 国产精品丝袜一区| 在线一区二区三区四区五区| 亚洲国产cao| 精品国产免费一区二区三区四区| 国产成人综合网| 亚洲综合图片区| 日韩欧美一区在线观看| 国产盗摄女厕一区二区三区| 中文字幕在线视频一区| 欧美亚洲愉拍一区二区| 免费成人美女在线观看| 欧美大胆人体bbbb| 中文字幕乱码久久午夜不卡| 亚洲人午夜精品天堂一二香蕉| 亚洲午夜在线视频| 成人黄色小视频在线观看| 日韩欧美一区二区久久婷婷| 中文字幕欧美区|