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

📄 record.h

📁 数据加密算法
💻 H
字号:
#pragma once

#define DEBUG_MSG 0 
#define EXTRA_MSG 1
#define HOOK_MSG 2
#define UNKNOWN_MSG -1

#define UPDATE_INTERVAL 20
#define UPDATE_INTERVAL_TIME 3000

struct Type ;

// record for all paramters decoded
struct ParamBlock
{
	LPBYTE m_pBlock ;
	DWORD m_dwSize ;
	BOOL m_bFunction ;
	BOOL m_bStruct ;

	CString m_strMsg ;
	CPtrArray m_arStruct ;

public :
	ParamBlock ( ) ;
	~ParamBlock ( ) ;

	void Present ( CTreeCtrl& ctrl , HTREEITEM hParent ) ;
} ;

// record register information
struct Register
{
	DWORD Eax ;
	DWORD Ebx ;
	DWORD Ecx ;
	DWORD Edx ;
	DWORD Ebp ;
	DWORD Esp ;
	DWORD Esi ;
	DWORD Edi ;
	DWORD Flags ;
} ;

// record for detail information about a hooked calling
struct Dispatch
{
	// attribute
	DWORD m_dwTime1 , m_dwTime2 ;
	DWORD m_dwDepth ;
	DWORD m_dwReturn ;
	BOOL m_bPending ;
	DWORD m_dwListItem ;

	CString m_strFunction ;
	BOOL m_bHasName ;
	WORD m_wOrdinal ;

	BOOL m_bExport ;
	BOOL m_bPostInvalid ;
	BOOL m_bWillDeleted ;

	CString m_strImportName ;
	CString m_strExportName ;
	CString m_strImportPathName ;
	CString m_strExportPathName ;

	Register* m_pReg ;
	Register* m_pRegPost ;

	ParamBlock* m_pParamBlock ;
	ParamBlock* m_pParamBlockPost ;

	Type* m_pType ;

public :
	Dispatch ( ) ;
	~Dispatch ( ) ;
} ;

// basic record
struct Record
{
	UINT m_nType ;
	UINT m_nIconID ;
	DWORD m_dwTime ;

	CString m_strMsg ;

	Dispatch* m_pDispatch ;

public :
	Record ( ) ;
	~Record ( ) ;
	void Present ( CString& msg ) ;
	void Present2 ( CString& msg ) ;
} ;

class CDancerDoc ;

// manager for performing results recording
class CRecordManager
{
public :
	// attribute
	CPtrArray m_arRecord ;
	DWORD m_dwUpdated ;
	DWORD m_dwUpdated2 ;
	DWORD m_dwBaseTime ;

	FILE* m_pFile ;

	CDancerDoc* m_pDancerDoc ;
	CRITICAL_SECTION m_csSync ;

public :
	CRecordManager ( ) ;
	~CRecordManager ( ) ;

	// operation
	void Start ( ) ;
	void Stop ( ) ;
	void AttachTo ( CDancerDoc* pDancerDoc ) ; // attach to a document
	void Dispose ( ) ;
	void ClearAll ( ) ;

	void AddDebugMsg ( const CString& msg , UINT nIcon ) ;
	void AddExtraMsg ( const CString& msg , UINT nIcon ) ;
	Record* AddHookMsg ( Dispatch* pDispatch ) ;
	void CompleteMsg ( Dispatch* pDispatch ) ; // called when a call finished

	void Update ( ) ;

private :
	void Dump ( Record* pRecord ) ; // dump to log file
	void Dump ( ) ;

	void AddMsg ( Record* pRecord ) ;
} ;

⌨️ 快捷键说明

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