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

📄 cfunctype.h

📁 将exe等可执行文件转化成c程序的反编译程序,先到汇编再到c
💻 H
字号:
// Copyright(C) 1999-2005 LiuTaoTao,bookaa@rorsoft.com

#ifndef	CFuncType_H
#define CFuncType_H

enum enum_CallC
{	//	0 for invalid or unknown
	enum_unknown=	0,
	enum_cdecl	=	1,
	enum_stdcall,
	enum_pascal,
	enum_fastcall,
};	//	calling convention

enum_CallC if_CallC(PSTR p);

class CFuncType
{
public:
	enum_CallC	m_callc;
	VarTypeID	m_retdatatype_id;	//	返回值的数据类型
	BOOL		m_extern_c;
	BOOL		m_varpar;			//	为TRUE表明它参数可变
	int			m_args;				//	参数个数。如果m_varpar==TRUE,则这是最少个数
									//	not include last "..."
	VarTypeID*	m_partypes;			//	指向一个m_args大小的数组,是各个参数的数据类型
									//	VarTypeID[m_args] *
	PSTR*		m_parnames;			//	指向一个m_args大小的数组,是各个参数的name,比如argc,argv
									//	PSTR[m_args] *
	PSTR		m_pname;
	PSTR		m_internal_name;	//can be "_printf", "printf$CRS"
	class Class_st*	m_class;			//	if not null, means this func is a subfunc of this class

	CFuncType();
	~CFuncType();

	void create_internal_funcname();
	CFuncType* ft_clone();

	BYTE get_stack_purge();
    UINT para_total_size();
    VarTypeID SearchPara(UINT off);
};
    

typedef CList<CFuncType*,CFuncType*> FuncTypeList;


void func_1(CFuncType* pfunc,PSTR p);
void func_define_2(CFuncType* pfunc,PCSTR &p);


//	--------------------------------------------------------

CFuncType* Get_FuncDefine_from_internal_name(PCSTR pmyinternalname);
CFuncType* Get_FuncDefine_from_name(PCSTR pmyinternalname);
//	对库函数,是用internal_name,对api,则是用func_name


#endif	//	CFuncType_H

⌨️ 快捷键说明

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