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

📄 javadis.h

📁 功能较全面的反汇编器:反汇编器ht-2.0.15.tar.gz
💻 H
字号:
/*  *	HT Editor *	javadis.h * *	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. */#ifndef __JAVADIS_H__#define __JAVADIS_H__#include "asm.h"#include "javaopc.h"/* x86-specific styles *///#define X86DIS_STYLE_EXPLICIT_MEMSIZE	0x00000001		/* IF SET: mov uint16 ptr [0000], ax 	ELSE: mov [0000], ax *///#define X86DIS_STYLE_OPTIMIZE_ADDR		0x00000002		/* IF SET: mov [eax*3], ax 			ELSE: mov [eax+eax*2+00000000], ax *//*#define X86DIS_STYLE_USE16			0x00000004#define X86DIS_STYLE_USE32			0x00000008*/struct javadis_insn {	bool invalid;	int size;	int opcode;	uint32 addr;	bool wideopcode;	const char *name;	java_insn_op op[JAVAINSN_MAX_PARAM_COUNT];};/* *	CLASS x86dis */typedef int (*java_token_func)(char *result, int maxlen, uint32 token, void *context);class javadis: public Disassembler {protected:	javadis_insn insn;	char insnstr[1024];	/* initme! */	unsigned char *codep, *ocodep;	int maxlen;	java_token_func token_func;	void *context;	uint32 addr;	/* new */		void decode_insn(javaopc_insn *insn);		void decode_op(int optype, bool wideopc, java_insn_op *op);		byte getbyte();		uint16 getword();		uint32 getdword();		void invalidate();		void str_format(char **str, const char **format, const char *p, const char *n, char *op[3], int oplen[3], char stopchar, int print);	virtual	void str_op(char *opstr, int *opstrlen, javadis_insn *insn, java_insn_op *op);public:	javadis(BuildCtorArg&a): Disassembler(a) {};	javadis(java_token_func token_func, void *context);	void initialize(java_token_func token_func, void *context);	/* overwritten */	virtual dis_insn *decode(byte *code, int maxlen, CPU_ADDR addr);	virtual dis_insn *duplicateInsn(dis_insn *disasm_insn);	virtual void getOpcodeMetrics(int &min_length, int &max_length, int &min_look_ahead, int &avg_look_ahead, int &addr_align);	virtual const char *getName();	virtual byte getSize(dis_insn *disasm_insn);	virtual ObjectID getObjectID() const;	virtual const char *str(dis_insn *disasm_insn, int options);	virtual const char *strf(dis_insn *disasm_insn, int options, const char *format);	virtual bool validInsn(dis_insn *disasm_insn);};#endif /* __JAVADIS_H__ */

⌨️ 快捷键说明

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