【技术实现步骤摘要】
检测程序是否运行于金山安全沙箱系统环境的方法及系统
本专利技术涉及计算机系统通信
、软件安全、游戏外挂检测领域,特别是一种检测程序是否运行于金山安全沙箱系统环境的方法及系统。
技术介绍
金山安全沙箱又名金山隔离沙箱,是金山软件公司开发的安全产品。金山安全沙箱通过虚拟化技术创建虚拟化的隔离系统环境。针对运行于金山安全沙箱创建的虚拟化系统环境中的应用程序,金山安全沙箱会记录它们的文件读写、注册表更改等行为。另外,运行于金山安全沙箱系统环境中的应用程序进行的高系统权限操作(如更改操作系统文件,控制系统驱动程序等)会被金山安全沙箱通过挂钩系统函数、文件重定向等技术重定向到虚拟化的操作系统环境中,即金山安全沙箱系统环境中的应用程序对真实系统无任何影响并且可以随时删除和还原。程序运行在沙箱环境中好比在用沙做图,随时一抹就平,不会留下痕迹。由于具有隔离真实操作系统环境的功能,金山安全沙箱被广泛应用于病毒行为分析领域,但同时也被恶意地用于软件逆向破解领域、非法多开游戏客户端、非法绕过应用程序的自保护模块等领域,间接损害了相关人 ...
【技术保护点】
1.一种检测程序是否运行于金山安全沙箱系统环境的方法,其特征在于:所述方法为:/n遍历操作系统中运行的所有进程,检测是否匹配到一个进程名或进程的主模块的模块名为“ksandbox.exe”的进程;是,则操作系统存在特征一ksandbox.exe;否,则不存在;/n遍历操作系统中运行的所有进程,检测是否匹配到一个加载了动态链接库“kislog.dll”的进程;是,则操作系统存在特征二kislog.dll;否,则不存在;/n检测在应用程序的内存空间中是否发现加载动态链接库“KisDcom.dll”的痕迹;是,则操作系统存在特征三KisDcom.dll;否,则不存在;获取三个特征 ...
【技术特征摘要】
1.一种检测程序是否运行于金山安全沙箱系统环境的方法,其特征在于:所述方法为:
遍历操作系统中运行的所有进程,检测是否匹配到一个进程名或进程的主模块的模块名为“ksandbox.exe”的进程;是,则操作系统存在特征一ksandbox.exe;否,则不存在;
遍历操作系统中运行的所有进程,检测是否匹配到一个加载了动态链接库“kislog.dll”的进程;是,则操作系统存在特征二kislog.dll;否,则不存在;
检测在应用程序的内存空间中是否发现加载动态链接库“KisDcom.dll”的痕迹;是,则操作系统存在特征三KisDcom.dll;否,则不存在;获取三个特征的检测结果;
通过设定的精确判定模式或者模糊判定模式的对应方式对检测结果做出分析,并返回分析结果,即能判断应用程序是否运行于金山安全沙箱系统环境中;
所述模糊判定模式的对应方式是只要应用程序检测到系统环境中存在金山安全沙箱系统三个特征中的任意一个,则判定应用程序当前运行的操作系统环境为金山安全沙箱系统环境;
所述精确判定模式的对应方式是当且仅当检测到系统环境中存在金山安全沙箱系统特征三时,则判定应用程序当前运行的操作系统环境为金山安全沙箱系统环境。
2.根据权利要求1所述的检测程序是否运行于金山安全沙箱系统环境的方法,其特征在于:所述方法中三个特征均以字符串的形式被存储于程序文件中;应用程序A启动运行,应用程序A开始执行特征检测,应用程序A定义并初始化3个默认值为0的DWORD类型的数据变量,分别命名为Feature_1、Feature_2、Feature_3,其中Feature_1、Feature_2、Feature_3各自对应特征一、特征二、特征三是否被检测到。
3.根据权利要求2所述的检测程序是否运行于金山安全沙箱系统环境的方法,其特征在于:所述方法进一步包括如下步骤:
步骤2.1、应用程序A申请一第一内存空间,将此第一内存空间命名为Buffer_Pid,用于存储所有进程的PID数组,应用程序A申请一第二内存空间,将此第二内存空间命名为Buffer_Module,用于存储进程的所有模块的句柄数组,应用程序A申请一第三内存空间,将此第三内存空间命名为Buffer_Path,用于存储进程的文件路径;
步骤2.2、应用程序A调用WindowsAPIEnumProcesses枚举当前操作系统中所有进程的PID,并将枚举的结果以DWORD数组的形式存储于内存空间Buffer_Pid中,同时从EnumProcesses的返回结果中获得返回的PID数量,将此PID数量命名为Proc_Account;
步骤2.3、应用程序A遍历Proc_Account次,每次从Buffer_Pid中取出一个数据,第N轮遍历则取出Buffer_Pid中存储的第N个PID,记录为Pid_Tmp;如果遍历满Proc_Account次或满足计算条件(Feature_1+Feature_2)>0,则退出循环,进入步骤2.9;
步骤2.4、应用程序A调用WindowsAPIOpenProcess并且传入参数PROCESS_QUERY_INFORMATION和PROCESS_VM_READ,打开PID为Pid_Tmp的进程,获取该进程的进程句柄Handle_Proc;
步骤2.5、应用程序A调用WindowsAPIEnumProcessModules并且传入参数Handle_Proc,枚举PID为Pid_Tmp的进程的所有模块的模块句柄信息,并将枚举的结果以DOWRD数组的形式存储于内存空间Buffer_Module中,同时从EnumProcessModules的返回结果中获得返回的模块数量,将此模块数量命名为Modules_Account;
步骤2.6、应用程序A遍历Modules_Account次,每次从Buffer_Module中取出一个数据,第N轮遍历则取出Buffer_Module中存储的第N个模块句柄,记录为ModuleHandle_Tmp;
步骤2.7、应用程序A调用WindowsAPIGetModuleFileNameEx查询模块句柄为ModuleHandle_Tmp的模块的模块名Path,API调用完成后Path会以字符串的形式存储至内存空间Buffer_Path中;
步骤2.8、应用程序A通过字符串比较,查看Buffer_Path存储的字符串是否包含主模块的模块名特征字符串“ksandbox.exe”和模块名特征字符串“kislog.dll”,如果两次字符串比较均未匹配,则进入下一轮循环;否则,如果匹配“ksandbox.exe”成功,则将Feature_1赋值为1;如果匹配“kislog.dll”成功,则将Feature_2赋值为1;
步骤2.9、应用程序A调用WindowsAPIGetModuleHandle,传入参数“KisDcom.dll”,若返回值不为0,则可判定在应用程序A的内存空间中发现加载动态链接库“KisDcom.dll”的痕迹,即应用程序A被金山安全沙箱软件注入了动态链接库“KisDcom.dll”,在这种情况下,将Feature_3赋值为1。
4.根据权利要求3所述的检测程序是否运行于金山安全沙箱系统环境的方法,其特征在于:所述方法中通过设定的精确判定模式或者模糊判定模式的对应方式对检测结果做出分析,并返回分析结果,具体包括如下步骤:
步骤3.1、应用程序A定义一个DWORD类型的数据,命名为Result,用来计算判定权值,计算方式为Result=1*(Feature_1+Feature_2)+3*Feature_3;
步骤3.2、应用程序A根据业务需要进行逻辑判断,即如果需要避免应用程序被运行于金山安全沙箱系统环境中,则采用模糊判定模式;如果要保证数据精准性,则采用精确判定模式;
步骤3.3、应用程序A定义一个BOOL类型的数据用于返回结果,命名为Return_Vaule,如果应用程序A采用精确判定模式,当Result大于等于3时Return_Value赋值为TRUE,否则赋值为FALSE;如果应用程序A采用模糊判定模式,当Result大于等于1时Return_Value赋值为TRUE,否则赋值为FALSE;
步骤3.4、如果Return_Value为TRUE,则判定应用程序当前运行于金山安全沙箱系统环境中,如果Return_Value为FALSE,则判定当前应用程序运行于正常的操作系统环境中。
5.一种检测程序是否运行于金山安全沙箱系统环境的系统,其特征在于:所...
【专利技术属性】
技术研发人员:刘德建,任佳伟,陈宏展,
申请(专利权)人:福建天晴在线互动科技有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。