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

📄 fghook.h

📁 文件加密的过滤驱动程序源代码.
💻 H
字号:
// FGHOOK.h - include file for VxD FGHOOK.

#include <vtoolscp.h>
#include <vxdntlib.h>
#include <kustring.h>
#include <util.h>

#define DEVICE_CLASS		FGHookDevice
#define FGHOOK_DeviceID		UNDEFINED_DEVICE_ID
#define FGHOOK_Init_Order	UNDEFINED_INIT_ORDER
#define FGHOOK_Major		1
#define FGHOOK_Minor		1

#define FG_VXD

#include "..\HookShr\ComDef.h"
#include "..\HookShr\HookError.h"
#include "HookVxD.h"
#include "..\HookShr\KProtectedFileList.h"
#include "KHandleTable.h"
#include "KHotKey.h"

// Partial ifsreq structure.
typedef struct 
{
    ioreq            ifsir;
    struct hndlfunc  *ifs_hndl;		//undocumented tail.
    ULONG            reserved[10];
} ifsreq, *pifsreq;

#define FG_FILE_FLAG_HAS_STAR	1		//path has '*'
#define FG_FILE_FLAG_HAS_QUERYMARK	2  //path has '?'

#define BUF_LEN  1024

/////////////////////////////////////////////////////////////////
class FGHookDevice : public VDevice
{
public:
	virtual BOOL OnSysDynamicDeviceInit();
	virtual BOOL OnSysDynamicDeviceExit();
	virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams);
	virtual VOID PM_API_Entry(VMHANDLE hVM, CLIENT_STRUCT* pRegs);
};

class FGHookVM : public VVirtualMachine
{
public:
	FGHookVM(VMHANDLE hVM);
};

class FGHookThread : public VThread
{
public:
	FGHookThread(THREADHANDLE hThread);
};

int _cdecl HookProc(pIFSFunc pfn, int fn, int Drive, int ResType, int CodePage, pioreq pir);
WORD DoDeleteProtection(ioreq *pir, int Drive, int CodePage);
BOOL ReadProtectedFileInfo(char *pFileName);
BOOL  AppendBakExtension(const char *pBCSOldName, char *pBCSNewName);
WORD FileRename(char *pBCSOldName);
WORD FileBackupByHandle(pioreq pir, int Drive, int ResType, int CodePage,const char *pBCSName);
WORD FileBackup(char *pBCSName);
void  UniToBCSPathEx(PUCHAR pBCSPath, PathElement* pUniPath, int Driver, DWORD maxLength, int charSet, _QWORD* pResult);
BOOL GetFullNameByHandle(pioreq pir,int &Drive, int ResType, int CodePage,path_t pPPath, BOOL bFindHandle);
void SetLastError(WORD errorCode);
WORD GetLastError();
BOOL SaveProtectedFileInfo(char *pFileName);     
void __stdcall MsgCallBack(DWORD ResponseCode,PVOID Refdata);
BOOL ShellUnloadDevice();
BOOL ShellPostError(DWORD err, int severity);
int wstrlen(unsigned short *uniString);
int StringUpper(WCHAR *s, int len);
BOOL BCSToFSDPath(FSD_PATH *fp, const char *pBCSPath);
BOOL FSDPathMatch(FSD_PATH *pPattern, FSD_PATH *pMatcher);

#ifdef DEBUG
void PrintUni(WCHAR *p, unsigned int len=MAX_PATH);
#endif
//BOOL SaveOneItem(HANDLE hIniFile,PROTECTED_FILE *pProtFile);

⌨️ 快捷键说明

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