[发明专利]一种程序退出的方法及相关设备有效
申请号: | 201810728297.1 | 申请日: | 2018-07-05 |
公开(公告)号: | CN109117201B | 公开(公告)日: | 2021-03-16 |
发明(设计)人: | 周志刚;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/52 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 退出 方法 相关 设备 | ||
1.一种程序退出的方法,其特征在于,包括:
将加解密函数的关键数据和同步互斥锁保存到全局变量,所述加解密函数用于在进行网络协议通信时对数据进行加解密操作,所述同步互斥锁用于对所述数据进行加锁,所述关键数据为执行所述加解密函数所必需的数据;
通过调用Windows系统的应用程序编程接口API中的LoadLibraryA函数获取核心代码的内存地址;
通过调用所述API中的GetModuleInformation函数获取所述核心代码的占用内存大小,以将所述核心代码保存到全局变量G_netdll_Address中;
确定当前程序是否被调试;
若所述当前程序被调试,则修改所述加解密函数的关键数据,通过调用循环函数占用所述同步互斥锁,并删除所述当前程序的核心代码,以退出所述当前程序;
所述将加解密函数的关键数据和同步互斥锁保存到全局变量包括:
将所述加解密函数的关键数据保存到g_kCrc32Table全局变量中;
通过调用系统API函数CreatMutex创建所述同步互斥锁;
当所述同步互斥锁被使用时,通过调用API函数WaitForSingleObject等待所述同步互斥锁;
将所述同步互斥锁保存到g_hMutex全局变量中。
2.根据权利要求1所述的方法,其特征在于,所述确定当前程序是否被调试包括:
通过调用Windows系统的应用程序编程接口API中的IsDebuggerPresent函数确定所述当前程序是否被调用;
当所述IsDebuggerPresent函数的返回值为1时,确定所述当前程序被调试;
当所述IsDebuggerPresent函数的返回值为0时,确定所述当前程序未被调试。
3.根据权利要求1所述的方法,其特征在于,所述确定当前程序是否被调试包括:
加载系统的ntdll.dll模块,并根据所述ntdll.dll模块获取NtQueryInformationProcess接口;
调用所述NtQueryInformationProcess接口,得到当前进程的信息;
根据所述当前进程的信息确定所述当前程序是否被调试。
4.根据权利要求3所述的方法,其特征在于,所述加载系统的ntdll.dll模块,并根据所述ntdll.dll模块获取NtQueryInformationProcess接口包括:
通过调用API中的LoadLibraryA函数加载所述ntdll.dll模块,所述LoadLibraryA函数的输入参数包括所述ntdll.dll模块的标识信息,所述LoadLibraryA函数的输出参数为所述ntdll.dll模块的内存地址;
通过API中的GetProcAddress函数获取所述NtQueryInformationProcess接口在所述ntdll.dll模块的内存地址,所述GetProcAddress函数的输入函数包括所述ntdll.dll模块的内存地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810728297.1/1.html,转载请声明来源钻瓜专利网。