利索能及
我要发布
收藏
专利号: 2018107282859
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-09-26
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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

编写while循环函数,所述while循环函数用于调用系统内存分配函数持续分配内存,所述系统内存分配函数包括分配的内存的大小;

编写for循环函数,所述for循环函数用于在所述分配的内存中插入随机数据;

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

若所述当前程序被调试,则在编写的所述while循环函数中调用Windows系统的应用程序编程接口API中的系统内存分配函数malloc分配内存;

通过调用所述API中的rand函数生成所述随机数据;

根据所述for循环函数将所述随机数据插入所述分配的内存中,直至分配内存失败以退出所述当前程序。

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模块的内存地址。

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

编写单元,用于编写while循环函数,所述while循环函数用于调用系统内存分配函数持续分配内存,所述系统内存分配函数包括分配的内存的大小;编写for循环函数,所述for循环函数用于在所述分配的内存中插入随机数据;

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

调用单元,若所述判断单元确定所述当前程序被调试,用于则在编写的所述while循环函数中调用Windows系统的应用程序编程接口API中的系统内存分配函数malloc分配内存;

通过调用所述API中的rand函数生成所述随机数据;

插入单元,用于根据所述for循环函数将所述随机数据插入所述分配的内存中,直至分配内存失败以退出所述当前程序。

6.根据权利要求5所述的程序退出设备,其特征在于,所述判断单元包括包括:获取模块,用于通过调用Windows系统的应用程序编程接口API中的IsDebuggerPresent函数确定所述当前程序是否被调用;

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

7.根据权利要求5所述的程序退出设备,其特征在于,所述判断单元包括:所述获取模块,用于加载系统的ntdll.dll模块,并根据所述ntdll.dll模块获取NtQueryInformationProcess接口;调用所述NtQueryInformationProcess接口,得到所述当前进程的信息;

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

8.根据权利要求7所述的程序退出设备,其特征在于,所述获取模块具体用于:通过调用API中的LoadLibraryA函数加载所述ntdll.dll模块,所述LoadLibraryA函数的输入参数包括所述ntdll.dll模块的标识信息,所述LoadLibraryA函数的输出参数为所述ntdll.dll模块的内存地址;通过API中的GetProcAddress函数获取所述NtQueryInformationProcess接口在所述ntdll.dll模块的内存地址,所述GetProcAddress函数的输入函数包括所述ntdll.dll模块的内存地址。

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

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