⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htformat.h

📁 功能较全面的反汇编器:反汇编器ht-2.0.15.tar.gz
💻 H
📖 第 1 页 / 共 2 页
字号:
	int cursor_tag_micropos;/* selection*/	FileOfs sel_start;	FileOfs sel_end;/* visual info */	int cursor_visual_xpos;	int cursor_visual_length;/* misc info */	int cursor_tag_class;//	union {		FileOfs cursor_tag_offset;		struct {			LINE_ID id;		} cursor_tag_id;//	};	char cursor_line[1024];/* tag palettes */	palette tagpal;/**/	int xscroll;	bool uf_initialized;	bool isdirty_cursor_line;/* overwritten */	virtual	const char *func(uint i, bool execute);	virtual	bool next_logical_pos(viewer_pos pos, viewer_pos *npos);	virtual	bool next_logical_offset(FileOfs ofs, FileOfs *nofs);	virtual	Object *vstate_create();	virtual	void vstate_restore(Object *view_state);/* new */	int address_input(const char *title, char *buf, int buflen, uint32 histid);	void adjust_cursor_group();	void adjust_cursor_idx();	int center_view(viewer_pos p);	void clear_subs();	bool compeq_viewer_pos(uformat_viewer_pos *a, uformat_viewer_pos *b);	void check_cursor_visibility();	void clear_viewer_pos(uformat_viewer_pos *p);	int cursor_left();	int cursor_right();	int cursor_down(int n);	int cursor_up(int n);	int cursor_home();	int cursor_end();	void cursor_tab();	void cursorline_dirty();	void cursorline_get();	virtual int cursormicro_forward();	virtual int cursormicro_backward();	virtual int cursormicroedit_forward();	bool edit_end();	bool edit_input(byte b);	int edit_input_c2h(byte b);	int edit_input_c2d(byte b);	void edit_input_correctpos();	bool edit_start();	bool edit_update();	bool edit();	bool find_first_tag(uformat_viewer_pos *p, int limit);	bool find_first_edit_tag_with_offset(uformat_viewer_pos *p, int limit, FileOfs offset);	void focus_cursor();	vcp getcolor_tag(uint pal_index);	bool get_current_tag(char **tag);	bool get_current_tag_size(uint32 *size);	vcp get_tag_color_edit(FileOfs tag_offset, uint size, bool atcursoroffset, bool iscursor);	int next_line(uformat_viewer_pos *p, int n);	int prev_line(uformat_viewer_pos *p, int n);	void print_tagstring(int x, int y, int maxlen, int xscroll, char *tagstring, bool cursor_in_line);	virtual bool ref();	bool ref_desc(ID id, FileOfs offset, uint size, bool bigendian);	bool ref_flags(ID id, FileOfs offset);	virtual bool ref_sel(LINE_ID *id);	virtual void reloadpalette();	uint render_tagstring(char *chars, vcp *colors, uint maxlen, char *tagstring, bool cursor_in_line);	void render_tagstring_desc(const char **string, int *length, vcp *tag_color, char *tag, uint size, bool bigendian, bool is_cursor);	uint render_tagstring_single(char *chars, vcp *colors, uint maxlen, uint offset, const char *text, uint len, vcp color);	void scroll_up(int n);	void scroll_down(int n);	void select_mode_off();	void select_mode_on();	void select_mode_pre();	void select_mode_post(bool lastpos);	bool set_cursor(uformat_viewer_pos p);	void update_micropos();	void update_misc_info();	void update_visual_info();	void update_ypos();public:	uint search_caps;			void init(Bounds *b, const char *desc, int caps, File *file, ht_format_group *format_group);	virtual	void done();/* overwritten */	virtual	void clear_viewer_pos(viewer_pos *p);	virtual	void draw();	virtual	bool get_current_offset(FileOfs *offset);	virtual	bool get_current_pos(viewer_pos *pos);	virtual	bool goto_offset(FileOfs offset, bool save_vstate);	virtual	bool goto_pos(viewer_pos pos, bool save_vstate);	virtual	void handlemsg(htmsg *msg);	virtual	ht_search_result *psearch(ht_search_request *search, FileOfs start, FileOfs end);	virtual	void pselect_add(FileOfs start, FileOfs end);	virtual	void pselect_get(FileOfs *start, FileOfs *end);	virtual	void pselect_set(FileOfs start, FileOfs end);	virtual	uint pwrite(FileOfs ofs, void *buf, uint size);	virtual	bool qword_to_offset(uint64 q, FileOfs *ofs);	virtual	ht_search_result *vsearch(ht_search_request *search, viewer_pos start, viewer_pos end);/* new */	virtual	bool compeq_viewer_pos(viewer_pos *a, viewer_pos *b);		void complete_init();	virtual	void insertsub(ht_sub *sub);		void sendsubmsg(int msg);		void sendsubmsg(htmsg *msg);};/* *	CLASS ht_sub *//* search results */#define SR_NOT_FOUND		0#define SR_FOUND			1#define SR_NOT_SUPPORTED		2class ht_sub: public Object {protected:	File *file;public:	ht_uformat_viewer *uformat_viewer;	ht_sub *prev, *next;		void init(File *file);/* new */	virtual	bool convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id);	virtual	bool convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset);	virtual	bool closest_line_id(LINE_ID *line_id);	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void handlemsg(htmsg *msg);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);	virtual	bool ref(LINE_ID *id);	virtual	ht_search_result *search(ht_search_request *search, FileOfs start, FileOfs end);};/* *	CLASS ht_linear_sub */class ht_linear_sub: public ht_sub {protected:	FileOfs fofs;	FileOfs fsize;public:		void init(File *file, FileOfs offset, FileOfs size);/* overwritten */	virtual	void handlemsg(htmsg *msg);	virtual	ht_search_result *search(ht_search_request *search, FileOfs start, FileOfs end);};/* *	CLASS ht_hex_sub */class ht_hex_sub: public ht_linear_sub {protected:	uint disp;	uint line_length;	uint uid;public:		void init(File *file, FileOfs ofs, FileOfs size, uint line_length, uint uid, int disp=-1);		int  get_line_length();		void set_line_length(uint line_length);		int  get_disp();		void set_disp(uint disp);	/* overwritten */	virtual	bool convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id);	virtual	bool convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset);	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);};/* *	CLASS ht_mask_sub */struct ht_mask_ptable {	const char *desc;	const char *fields;}; class ht_mask_sub: public ht_sub {protected:	Array masks;	uint uid;public:		ht_mask_sub(): masks(true) {} 		void init(File *file, uint uid);/* overwritten */	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);/* new */	virtual	void add_mask(const char *tagstr);	virtual	void add_mask_table(char **tagstr);	virtual	void add_staticmask(const char *statictag_str, FileOfs reloc, bool std_bigendian);	virtual	void add_staticmask_table(char **statictag_table, FileOfs reloc, bool std_bigendian);	virtual	void add_staticmask_ptable(ht_mask_ptable *statictag_ptable, FileOfs reloc, bool std_bigendian);};/* *	CLASS ht_layer_sub */class ht_layer_sub: public ht_sub {protected:	ht_sub *sub;	bool own_sub;public:		void init(File *file, ht_sub *sub, bool own_sub = true);	virtual	void done();/* overwritten */	virtual	bool convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id);	virtual	bool convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset);	virtual	bool closest_line_id(LINE_ID *line_id);	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void handlemsg(htmsg *msg);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);	virtual	bool ref(LINE_ID *id);	virtual	ht_search_result *search(ht_search_request *search, FileOfs start, FileOfs end);};/* *	CLASS ht_collapsable_sub */class ht_collapsable_sub: public ht_layer_sub {protected:	char *nodestring;	bool collapsed;	LINE_ID fid;	LINE_ID myfid;public:		void init(File *file, ht_sub *sub, bool own_sub, const char *nodename, bool collapsed);	virtual	void done();/* new */	virtual	bool convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id);	virtual	bool convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset);	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);	virtual	bool ref(LINE_ID *id);	virtual	ht_search_result *search(ht_search_request *search, FileOfs start, FileOfs end);};/* *	CLASS ht_group_sub */class ht_group_sub: public ht_sub {protected:	Container *subs;public:		void init(File *file);	virtual	void done();/* overwritten */	virtual	bool convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id);	virtual	bool convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset);	virtual	void first_line_id(LINE_ID *line_id);	virtual	bool getline(char *line, int maxlen, const LINE_ID line_id);	virtual	void handlemsg(htmsg *msg);	virtual	void last_line_id(LINE_ID *line_id);	virtual	int next_line_id(LINE_ID *line_id, int n);	virtual	int prev_line_id(LINE_ID *line_id, int n);	virtual	bool ref(LINE_ID *id);	virtual	ht_search_result *search(ht_search_request *search, FileOfs start, FileOfs end);/* new */		void insertsub(ht_sub *sub);};ht_search_result *linear_expr_search(ht_search_request *search, FileOfs start, FileOfs end, ht_sub *sub, ht_uformat_viewer *ufv, FileOfs fofs, FileOfs fsize);ht_search_result *linear_bin_search(ht_search_request *search, FileOfs start, FileOfs end, File *file, FileOfs fofs, FileOfs fsize);void clear_line_id(LINE_ID *l);bool compeq_line_id(const LINE_ID &a, const LINE_ID &b);#endif /* __HTFORMAT_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -