1、接口设计方案一、设计方案由甲方调用监控模块,控制监控模块启停、设置策略等,经过甲方调用监控模块DLL接口将监控策略通知监控模块,由监控模块监控相关操作行为,并依据策略配置调用甲方提供文件内容检验模块,对相关文件进行文件内容筛查,来确定文件是否是涉密文件。同时经过甲方程序调用乙方监控模块DLL接口获取监控结果。甲方文件内容检验模块甲方程序监控监控模块DLL一、接口部分(监控模块DLL,乙方提供)*Function:InitDescription:初始化操作Input:无Output:无Return:true:成功,false:失败Other:*1、bool Init();*Function:Se
2、tRuleDescription:设置监控规则Input:char* pRule:监控规则,XML格式,见附1Output:无Return:true:成功,false:失败Other:*2、bool SetRule(char* pRule);*Function:StartDescription:设置完规则,开启监控规则生效Input:无Output:无Return:true:成功,false:失败Other:*3、bool Start();*Function:WaitDataDescription:实时等候获取监控数据能够是一条能够是多条。返回监控结果见附2Input:无Output:int
3、&nCount返回总条数,char*&pData返回数据。Return:-1.异常0.成功获取数据1.结束 / 停止(其它地方调用Stop接口停止)Other:提议乙方内部实现用信号、内核事件等处理方法。*4、int WaitData(int &nCount, char*& pData);甲方调用伪代码:ThreadFunc()/实时线程While(TRUE) char* pData = NULL; int nCount = 0; int nRet = WaitData(nCount,pData);/等候一条或多条数据时返回,没有数据就等候。 switch(nRet) -1.异常continu
4、e;0.成功获取数据 pData0、pData1、1.结束 / 停止(其它地方调用Stop停止) Return;FreeData(pData);*Function:FreeDataDescription:释放数据内存接口,对应WaitData函数Input:int nCount 要释放元素数量,char*要释放数据Output:无Return:无Other:*5、FreeData (int nCount ,char* pData);*Function:StopDescription:停止监控,监控规则失效Input:无Output:无Return:true:成功,false:失败Other:*
5、6、bool Stop();*Function:UnInitDescription:程序退出Input:无Output:无Return:true:成功,false:失败Other:*7、UnInit();二、文件检验模块/*接口说明*/创建文件检验实例void (*PCreateFileCheckerObject)(IFileChecker *pObject);/释放文件检验实例void (*PReleaseFileCheckerObject)(IFileChecker *pObject);多规则多个关键字组合,则创建多个实例- IFileChecker-/初始化void Init(const
6、 char *pName, const char *pKeyWords);pName:实例名称随意。但多个实例并行时不能反复;pKeyWords: 关键词组。格式:机密;秘密;绝密;/结束调用void UnInit();/获取文件信息bool GetFileInfo(const char *pFilePath, TipsFileBlock *pTFB);pFilePath:文件路径pTFB:返回数据结构/释放文件信息void FreeFileInfo(TipsFileBlock * pTFB);pTFB:需要释放数据结构/停止目前文件检验void StopCheck();*/-(.h)头文件以
7、下-#pragmaoncestructTipsFileBlockchar *pKeyWords;/关键字char *pSecretLevel;/密级:秘密、机密、绝密中一个char*pFileBlock;/片段;classIFileCheckerpublic:virtualvoidInit(constchar *pKeyWords) = 0;virtualboolGetFileInfo(constchar *pFilePath, TipsFileBlock *pTFB) = 0;virtualvoidFreeFileInfo(TipsFileBlock * pTFB) = 0;virtualv
8、oidUnInit() = 0;virtualvoidStopCheck() = 0;typedefvoid (*PCreateFileCheckerObject)(IFileChecker *pObject);typedefvoid (*PReleaseFileCheckerObject)(IFileChecker *pObject);/-头文件 end-/示例/-获取接口类-HMODULE hDll = LoadLibrary(_T(TipsFileChecker.dll);if (NULL =hDll) return;PCreateFileCheckerObjectpCreateFile
9、Checker = (PCreateFileCheckerObject)GetProcAddress(hDll,CreateFileCheckerObject);PReleaseFileCheckerObjectpReleaseFileChecker = (PReleaseFileCheckerObject)GetProcAddress(hDll,ReleaseFileCheckerObject);if (NULL = pCreateFileChecker | NULL = pReleaseFileChecker) return;IFileChecker* pFileChecker = NUL
10、L;pCreateFileChecker(&pFileChecker);/-初始化提供关键字-CStringAstrName = FeiMi1;/多个实例名称任意,但不一样。比如:FeiMi2、FeiMi3、CStringAstrKeyWords = 秘密;机密;绝密; ;pFileChecker-Init(strName,strKeyWords);/-文件命中片段提取-CStringAstrFilePath = C:123.docx;TipsFileBlockfb;pFileChecker-GetFileInfo(strFilePath,&fb);/.pFileChecker-FreeFil
11、eInfo(&fb);/-结束释放-pFileChecker-StopCheck();pFileChecker-UnInit();pReleaseFileChecker(&pFileChecker);FreeLibrary(hDll);三、附附1:规则XML:解释:TipsType Type = Rule为规则xmlIsMon:是否监控 1监控 0不监控MonPath:监控文件夹,采取分号拼接,假如为空表示全盘监控MonFileType:监控文件类型,采取分号拼接,假如为空表示不限类型IsBan:是否拦截 1拦截 0不拦截FileNameWords:文件名检验关键字,假如为空表示不检验ContentWords:文件内容检验关键字,假如为空表示不检验WhiteProcess:进程白名单WhitePath:监控路径白名单MonProcess:监控进程,假如为空表示全部监控附2:结果XML:NET操作行为监控举例:Net内容监控举例:
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100