利索能及
我要发布
收藏
专利号: 2018107282971
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:无效专利
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种程序退出的方法,其特征在于,包括:

将加解密函数的关键数据和同步互斥锁保存到全局变量,所述加解密函数用于在进行网络协议通信时对数据进行加解密操作,所述同步互斥锁用于对所述数据进行加锁,所述关键数据为执行所述加解密函数所必需的数据;

通过调用Windows系统的应用程序编程接口API中的LoadLibraryA函数获取核心代码的内存地址;

通过调用所述API中的GetModuleInformation函数获取所述核心代码的占用内存大小,以将所述核心代码保存到所述全局变量;

确定当前程序是否被调试;

若所述当前程序被调试,则修改所述加解密函数的关键数据,通过调用循环函数占用所述同步互斥锁,并删除所述当前程序的核心代码,以退出所述当前程序。

2.根据权利要求1所述的方法,其特征在于,所述将加解密函数的关键数据和同步互斥锁保存到全局变量包括:将所述加解密函数的关键数据保存到g_kCrc32Table全局变量中;

通过调用系统API函数CreatMutex创建所述同步互斥锁;

当所述同步互斥锁被使用时,通过调用API函数WaitForSingleObject等待所述同步互斥锁;

将所述同步互斥锁保存到g_hMutex全局变量中。

3.根据权利要求1或2所述的方法,其特征在于,所述确定当前程序是否被调试包括:通过调用Windows系统的应用程序编程接口API中的IsDebuggerPresent函数确定所述当前程序是否被调用;

当所述IsDebuggerPresent函数的返回值为1时,确定所述当前程序被调试;

当所述IsDebuggerPresent函数的返回值为0时,确定所述当前程序未被调试。

4.根据权利要求1或2所述的方法,其特征在于,所述确定当前程序是否被调试包括:加载系统的ntdll .dll模 块,并 根据所述ntdll .dll模块获取NtQueryInformationProcess接口;

调用所述NtQueryInformationProcess接口,得到所述当前进程的信息;

根据所述当前进程的信息确定所述当前程序是否被调试。

5.根据权利要求4所述的方法,其特征在于,所述加载系统的ntdll.dll模块,并根据所述ntdll.dll模块获取NtQueryInformationProcess接口包括:通过调用API中的LoadLibraryA函数加载所述ntdll.dll模块,所述LoadLibraryA函数的输入参数包括所述ntdll.dll模块的标识信息,所述LoadLibraryA函数的输出参数为所述ntdll.dll模块的内存地址;

通过API中的GetProcAddress函数获取所述NtQueryInformationProcess接口在所述ntdll.dll模块的内存地址,所述GetProcAddress函数的输入函数包括所述ntdll.dll模块的内存地址。

6.一种程序退出设备,其特征在于,包括:

保存单元,用于将加解密函数的关键数据和同步互斥锁保存到全局变量,所述加解密函数用于在进行网络协议通信时对数据进行加解密操作,所述同步互斥锁用于对所述数据进行加锁,所述关键数据为执行所述加解密函数所必需的数据;

获取单元,用于通过调用Windows系统的应用程序编程接口API中的LoadLibraryA函数获取核心代码的内存地址;通过调用所述API中的GetModuleInformation函数获取所述核心代码的占用内存大小,以将所述核心代码保存到所述全局变量;

判断单元,用于确定当前程序是否被调试;

执行单元,用于若所述当前程序被调试,则修改所述加解密函数的关键数据,通过调用循环函数占用所述同步互斥锁,并删除所述当前程序的核心代码,以退出所述当前程序。

7.根据权利要求6所述的程序退出设备,其特征在于,所述保存单元包括:保存模块,用于将所述加解密函数的关键数据保存到g_kCrc32Table全局变量中;

第一调用模块,用于通过调用系统API函数CreatMutex创建所述同步互斥锁;当所述同步互斥锁被使用时,通过调用API函数WaitForSingleObject等待所述同步互斥锁;

所述保存模块还用于将所述同步互斥锁保存到g_hMutex全局变量中。

8.根据权利要求6所述的程序退出设备,其特征在于,所述获取单元包括:第二调用模块,用于通过调用Windows系统的应用程序编程接口API中的LoadLibraryA获取所述核心代码的内存地址;通过调用API中的GetModuleInformation获取所述核心代码的占用内存大小。

9.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-5任意一项所述的方法。

10.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求1-5任意一项所述的方法。