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

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

?? htperes.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/* *	HT Editor *	htperes.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 "formats.h"#include "htapp.h"#include "htctrl.h"#include "htdialog.h"#include "endianess.h"#include "hthex.h"#include "htiobox.h"#include "keyb.h"#include "htnewexe.h"#include "htobj.h"#include "htpe.h"#include "htperes.h"#include "strtools.h"#include "httree.h"#include "log.h"#include "pestruct.h"#include "stream.h"#include "snprintf.h"#include <string.h>static int_hash restypes[] = {	{0x0001, "cursors"},	{0x0002, "bitmaps"},	{0x0003, "icons"},	{0x0004, "menus"},	{0x0005, "dialogs"},	{0x0006, "string tables"},	{0x0007, "font directories"},	{0x0008, "fonts"},	{0x0009, "accelerators"},	{0x000a, "custom resource data"},	{0x000b, "message tables"},	{0x000c, "group cursors"},	{0x000e, "group icons"},	{0x0010, "version information"},	{0x0011, "dialog includes"},	{0x0013, "pnp"},	{0x0014, "vxd"},	{0x0015, "animated cursors"},	{ 0 }};static int_hash languages[] = {	{7,  "german"},	{9,  "english"},	{10, "spanish"},	{12, "french"},	{16, "italian"},	{ 0 }};class ht_pe_resource_leaf: public Object {public:	uint32 offset;	uint32 size;};static File *peresource_file;static FileOfs peresource_dir_ofs;static ht_static_treeview *peresource_tree;static char peresource_string[128];static pe_section_headers *peresource_section_headers;static void read_resource_dir(void *node, int ofs, int level){	if (level>2) return; 		/* no deep recursions please (for							   currupted resource directories) */	PE_RESOURCE_DIRECTORY dir;// get directory	peresource_file->seek(peresource_dir_ofs+ofs);	if (peresource_file->read(&dir, sizeof dir) != (sizeof dir)) return;	createHostStruct(&dir, PE_RESOURCE_DIRECTORY_struct, little_endian);// get entries	PE_RESOURCE_DIRECTORY_ENTRY entry;	for (int i=0; i<dir.name_count+dir.id_count; i++) {		peresource_file->seek(peresource_dir_ofs+ofs+sizeof dir+i*8);		peresource_file->read(&entry, sizeof entry);		createHostStruct(&entry, PE_RESOURCE_DIRECTORY_ENTRY_struct, little_endian);		if (entry.offset_to_directory & 0x80000000) {			bool hasname = entry.name & 0x80000000;			PE_RESOURCE_DIRECTORY subdir;			peresource_file->seek(peresource_dir_ofs + (entry.offset_to_directory & 0x7fffffff));			peresource_file->read(&subdir, sizeof subdir);			createHostStruct(&subdir, PE_RESOURCE_DIRECTORY_struct, little_endian);			if (hasname) {				peresource_file->seek(peresource_dir_ofs + (entry.name & 0x7fffffff));				char *name = peresource_file->readstrw();				ht_snprintf(peresource_string, sizeof peresource_string, "%s [%d]", name, subdir.name_count+subdir.id_count);				free(name);			} else {				const char *s = (!level) ? matchhash(entry.name & 0xffff, restypes) : NULL;				if (s) {					ht_snprintf(peresource_string, sizeof peresource_string, "ID %04x, %s [%d]", entry.name & 0xffff, s, subdir.name_count+subdir.id_count);				} else {					ht_snprintf(peresource_string, sizeof peresource_string, "ID %04x [%d]", entry.name & 0xffff, subdir.name_count+subdir.id_count);				}			}			void *n = peresource_tree->add_child(node, peresource_string);			read_resource_dir(n, entry.offset_to_directory & 0x7fffffff, level+1);		} else {			char *rm = peresource_string;			char *rm_end = rm + sizeof peresource_string;			const char *s = matchhash((char)entry.name, languages);			if (s) {				rm += ht_snprintf(rm, rm_end-rm, "resource, %s (%04x) ", s, entry.name & 0xffff);			} else {				rm += ht_snprintf(rm, rm_end-rm, "resource, unknown language (%04x) ", entry.name & 0xffff);			}			PE_RESOURCE_DATA_ENTRY data;			peresource_file->seek(peresource_dir_ofs+entry.offset_to_directory);			peresource_file->read(&data, sizeof data);			createHostStruct(&data, PE_RESOURCE_DATA_ENTRY_struct, little_endian);						ht_pe_resource_leaf *xdata = NULL;			FileOfs dofs=0;			if (pe_rva_to_ofs(peresource_section_headers, data.offset_to_data, &dofs)) {				xdata = new ht_pe_resource_leaf();				xdata->offset = dofs;				xdata->size = data.size;				rm += ht_snprintf(rm, rm_end-rm, "offset %08qx", dofs);			} else {				rm += ht_snprintf(rm, rm_end-rm, "offset? (rva %08x, corrupt)", data.offset_to_data);			}			ht_snprintf(rm, rm_end-rm, " size %08x", data.size);			peresource_tree->add_child(node, peresource_string, xdata);		}	}}static ht_view *htperesources_init(Bounds *b, File *file, ht_format_group *group){	ht_pe_shared_data *pe_shared=(ht_pe_shared_data *)group->get_shared_data();	if (pe_shared->opt_magic!=COFF_OPTMAGIC_PE32 && pe_shared->opt_magic!=COFF_OPTMAGIC_PE64) return NULL;	bool pe32 = (pe_shared->opt_magic==COFF_OPTMAGIC_PE32);	uint32 sec_rva, sec_size;	if (pe32) {		sec_rva = pe_shared->pe32.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].address;		sec_size = pe_shared->pe32.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].size;	} else {		sec_rva = pe_shared->pe64.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].address;		sec_size = pe_shared->pe64.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].size;	}	if (!sec_rva || !sec_size) return NULL;	ht_pe_resource_viewer *t=new ht_pe_resource_viewer();	t->init(b, DESC_PE_RESOURCES);	void *root;	String fn;/* get resource directory offset */	/* 1. get resource directory rva */	FileOfs iofs;	uint32 irva;	if (pe32) {		irva=pe_shared->pe32.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].address;//		uint32 isize=pe_shared->pe32.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].size;	} else {		irva=pe_shared->pe64.header_nt.directory[PE_DIRECTORY_ENTRY_RESOURCE].address;	}	/* 2. transform it into an offset */	if (!pe_rva_to_ofs(&pe_shared->sections, irva, &iofs)) goto pe_read_error;	LOG("%y: PE: reading resource directory at offset 0x%08qx, rva %08x", &file->getFilename(fn), iofs, irva);	peresource_file = file;	peresource_dir_ofs = iofs;	peresource_tree = t;	peresource_section_headers = &pe_shared->sections;	root=t->add_child(0, "pe resources");	read_resource_dir(root, 0, 0);	t->adjust(root, true);	t->update();	pe_shared->v_resources = t;	return t;pe_read_error:	errorbox("%y: PE resource directory seems to be corrupted.", &file->getFilename(fn));	t->done();	delete t;	return NULL;}format_viewer_if htperesources_if = {	htperesources_init,	0};/* *	CLASS ht_pe_resource_viewer */void ht_pe_resource_viewer::init(Bounds *b, const char *desc){	ht_static_treeview::init(b, desc);	VIEW_DEBUG_NAME("ht_pe_resource_viewer");}void ht_pe_resource_viewer::done(){	ht_static_treeview::done();}void ht_pe_resource_viewer::handlemsg(htmsg *msg){	switch (msg->msg) {		case msg_vstate_restore:			vstate_restore((Object*)msg->data1.ptr);			clearmsg(msg);			return;	}	ht_static_treeview::handlemsg(msg);}void ht_pe_resource_viewer::select_node(void *node){	static_node *s=(static_node*)node;	if (s->data) {		ht_group *vr_group=group;		while (strcmp(vr_group->desc, VIEWERGROUP_NAME)) vr_group=vr_group->group;		ht_view *c=vr_group->getfirstchild();		ht_format_viewer *hexv = NULL;		while (c) {			if (c->desc && (strcmp(c->desc, DESC_HEX)==0)) {				hexv=(ht_format_viewer*)c;				break;			}			c=c->next;		}		if (hexv) {			vstate_save();			hexv->goto_offset(((ht_pe_resource_leaf*)s->data)->offset, false);			hexv->pselect_set(((ht_pe_resource_leaf*)s->data)->offset,				((ht_pe_resource_leaf*)s->data)->offset+((ht_pe_resource_leaf*)s->data)->size);			app->focus(hexv);		}	}}class ht_pe_resource_viewer_vstate: public Object {public:	void *node;};Object *ht_pe_resource_viewer::vstate_create(){	ht_pe_resource_viewer_vstate *v = new ht_pe_resource_viewer_vstate();	v->node = get_cursor_node();	return v;}bool ht_pe_resource_viewer::vstate_save(){	Object *vs = vstate_create();	if (vs) {		htmsg m;		m.msg = msg_vstate_save;		m.type = mt_empty;		m.data1.ptr = vs;		m.data2.ptr = this;		app->sendmsg(&m);		return true;	}	return false;}void ht_pe_resource_viewer::vstate_restore(Object *d){	ht_pe_resource_viewer_vstate *v = new ht_pe_resource_viewer_vstate();	goto_node(v->node);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国模套图日韩精品一区二区 | 亚洲午夜电影网| 久久九九全国免费| 欧美成人一区二区| 99久久婷婷国产综合精品电影| 一区二区三区四区不卡在线| 欧美精品粉嫩高潮一区二区| 成人看片黄a免费看在线| 国产一区二区主播在线| 亚洲国产精品久久人人爱| 国产精品入口麻豆九色| 波多野结衣视频一区| 国产激情偷乱视频一区二区三区| 久久成人久久鬼色| 日日噜噜夜夜狠狠视频欧美人| 樱花草国产18久久久久| 老司机午夜精品99久久| 国产一区激情在线| 欧美精品色综合| 日韩欧美激情四射| 欧美日韩在线播放三区| 色综合欧美在线视频区| 免费成人在线播放| 美女网站一区二区| 欧美日韩午夜影院| 菠萝蜜视频在线观看一区| av激情成人网| 亚洲123区在线观看| 日韩精品一区二区三区在线播放 | 91在线观看成人| 亚洲v中文字幕| 久久精品视频一区二区| 99久久亚洲一区二区三区青草| 无码av免费一区二区三区试看 | 99精品视频中文字幕| 肉丝袜脚交视频一区二区| 国产亚洲自拍一区| 欧美三级韩国三级日本三斤| 盗摄精品av一区二区三区| 亚洲午夜精品一区二区三区他趣| 久久亚区不卡日本| 欧美久久免费观看| 色综合网色综合| 丰满亚洲少妇av| 久久成人免费网| 亚洲成人免费视| 自拍偷在线精品自拍偷无码专区| 欧美不卡一区二区三区四区| 成年人午夜久久久| 国产精品69久久久久水密桃| 日韩中文字幕一区二区三区| 国产精品久久一卡二卡| 久久久另类综合| 日韩一区二区免费视频| 欧美日韩国产在线播放网站| 99国产精品99久久久久久| 国产福利一区在线| 国内精品国产成人国产三级粉色| 日韩精品亚洲专区| 午夜天堂影视香蕉久久| 亚洲高清视频的网址| 亚洲美女偷拍久久| 中文字幕亚洲成人| 亚洲国产精品二十页| 国产亚洲一区二区三区在线观看| 日韩精品一区二区三区三区免费| 欧美精品丝袜中出| 欧美日韩另类一区| 欧美电影一区二区| 欧美一区二区三区在线电影| 69精品人人人人| 3d成人动漫网站| 日韩一二三区不卡| 欧美一区二区三区在线观看 | 欧美一二三四区在线| 欧美精品免费视频| 欧美日韩美少妇| 91精品国产一区二区| 欧美一区二区成人6969| 欧美电视剧免费观看| 日韩欧美123| 国产无遮挡一区二区三区毛片日本| 久久久影院官网| 中文字幕一区三区| 亚洲综合一区二区三区| 亚洲在线免费播放| 蜜臀91精品一区二区三区| 久久激情五月婷婷| 国产乱码精品一区二区三区av| 国产精品18久久久久久久网站| 福利一区二区在线| 一本大道久久a久久精二百| 欧美视频日韩视频在线观看| 91精品国产综合久久久蜜臀图片| 9191成人精品久久| 精品久久久久香蕉网| 久久久www成人免费毛片麻豆| 国产视频一区在线播放| 中文字幕一区二区三区在线观看 | 日韩成人一级大片| 国产麻豆精品视频| 99免费精品视频| 欧美午夜精品久久久久久超碰 | 欧美日韩国产区一| 久久综合五月天婷婷伊人| 国产精品美女久久久久久久久| 亚洲天天做日日做天天谢日日欢| 亚洲国产一区二区三区 | 国产网站一区二区| 亚洲欧美色一区| 免费观看日韩av| 成人午夜在线免费| 欧美午夜免费电影| 欧美mv日韩mv国产网站app| 中文字幕中文字幕一区| 丝袜美腿亚洲综合| eeuss鲁片一区二区三区在线看| 色视频成人在线观看免| 日韩精品中午字幕| 亚洲一区二三区| 亚洲国产另类av| 色吊一区二区三区| 亚洲欧美成人一区二区三区| 亚洲成人免费影院| 欧美一二三区精品| 99视频精品免费视频| 日韩免费高清视频| 成人免费福利片| 日韩国产欧美三级| 亚洲欧美偷拍卡通变态| 91女神在线视频| 欧美怡红院视频| 18成人在线视频| 精品国产不卡一区二区三区| 日本久久一区二区| 成人av免费观看| 国产乱淫av一区二区三区| 天天色 色综合| 亚洲激情自拍视频| 亚洲视频一二区| 国产精品成人免费在线| 国产亚洲制服色| 日韩精品一区二区在线观看| 欧美日韩亚洲综合在线 | 日韩一区二区三区在线观看| 成人国产精品免费观看动漫| 国产成人av电影| 成人免费视频一区二区| 国产大陆亚洲精品国产| 国产一区二区毛片| 国产成人免费视频网站高清观看视频| 亚洲va韩国va欧美va| 亚洲一区在线电影| 亚洲一区二区三区不卡国产欧美| 亚洲天堂av老司机| 亚洲乱码一区二区三区在线观看| 中文字幕一区二区三| 亚洲伦在线观看| 午夜欧美一区二区三区在线播放| 五月激情六月综合| 美女视频网站黄色亚洲| 国模无码大尺度一区二区三区| 国产在线精品一区二区| 国产成a人亚洲精品| 成人夜色视频网站在线观看| 97精品超碰一区二区三区| 一本大道久久a久久精二百 | 欧美理论片在线| 欧美一级xxx| 久久久久久久综合日本| 亚洲色图制服诱惑| 日韩av网站在线观看| 精品综合免费视频观看| 丁香五精品蜜臀久久久久99网站| 91在线porny国产在线看| 欧美日韩三级一区| 精品第一国产综合精品aⅴ| 国产精品婷婷午夜在线观看| 一区二区三区欧美亚洲| 蜜臀国产一区二区三区在线播放 | 天天综合网 天天综合色| 免费看欧美美女黄的网站| 国产成a人亚洲| 在线精品亚洲一区二区不卡| 欧美成人乱码一区二区三区| 久久久精品tv| 亚洲国产精品一区二区久久恐怖片| 美女在线视频一区| 91视频你懂的| 久久久久国产成人精品亚洲午夜| 亚洲美女一区二区三区| 精品一区二区三区影院在线午夜| 99re这里只有精品首页| 欧美成人猛片aaaaaaa| 亚洲一区二区在线播放相泽| 国产成人免费在线视频| 欧美大片拔萝卜| 亚洲大片免费看| 99re热视频精品| 国产欧美一区二区精品性色|