[发明专利]一种程序退出的方法及相关设备有效
| 申请号: | 201810728285.9 | 申请日: | 2018-07-05 |
| 公开(公告)号: | CN110750782B | 公开(公告)日: | 2022-05-13 |
| 发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F9/445 |
| 代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 刘杰 |
| 地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 程序 退出 方法 相关 设备 | ||
本发明实施例公开了一种程序退出的方法及相关设备,用于在检测到程序被调试后,强行退出程序以提高程序的安全性。本发明实施例方法包括:编写while循环函数,所述while循环函数用于调用系统内存分配函数持续分配内存,所述系统内存分配函数包括分配的内存的大小;编写for循环函数,所述for循环函数用于在所述分配的内存中插入随机数据;确定当前程序是否被调试;若所述当前程序被调试,则在编写的所述while循环函数中调用Windows系统的应用程序编程接口API中的系统内存分配函数malloc分配内存;通过调用所述API中的rand函数生成所述随机数据;根据所述for循环函数将所述随机数据插入所述分配的内存中,直至分配内存失败以退出所述当前程序。
技术领域
本发明涉及控制技术领域,尤其涉及一种程序退出的方法及相关设备。
背景技术
目前,对于Windows平台开发的一部分软件来说,需要对软件的安全性进行保护,例如一些只有注册才能使用的软件、电影游戏程序或者收费软件等,这些软件都希望能安全的运行与用户电脑上,另外,最重要的则是防止黑客破解软件中的收费功能,或者破解软件的安全算法,以避免软件开发厂商的损失。对于黑客来说,通常首先是通过对软件的破解,然后才是利用破解的漏洞来获得利益。而黑客破解软件则是先通过使用一些调试器来调试程序,从而弄清楚软件的安全策略以及实现原理。
因此,对于任何客户端软件来说,检测当前客户端程序是否有被调试是比较重要的,能阻止黑客进行调试,保护软件不被破解。故,如何检测软件是否被调试,同时如何在检测到被调试后强行退出程序以防止黑客进一步调试是一个急需解决的问题。
发明内容
本发明实施例提供了一种程序退出的方法及相关设备,用于在检测到程序被调试后,强行退出程序以提高程序的安全性。
本发明实施例的第一方面提供了一种程序退出的方法,包括:编写while循环函数,所述while循环函数用于调用系统内存分配函数持续分配内存,所述系统内存分配函数包括分配的内存的大小;编写for循环函数,所述for循环函数用于在所述分配的内存中插入随机数据;确定当前程序是否被调试;若所述当前程序被调试,则在编写的所述while循环函数中调用Windows系统的应用程序编程接口API中的系统内存分配函数malloc分配内存;通过调用所述API中的rand函数生成所述随机数据;根据所述for循环函数将所述随机数据插入所述分配的内存中,直至分配内存失败以退出所述当前程序。本发明实施例中,通过检测当前程序是否被调试,当检测到该当前程序确定被调试时,会不断的分配内存,当内存耗尽时,导致内存分配失败,使得在写入随机数据时导致当前程序异常,产生崩溃,起到了退出当前程序的目的,提高了程序的安全性。
在一种可能的实施例中,所述确定当前程序是否被调试包括:通过调用Windows系统的应用程序编程接口API中的IsDebuggerPresent函数确定所述当前程序是否被调用;当所述IsDebuggerPresent函数的返回值为1时,确定所述当前程序被调试;当所述IsDebuggerPresent函数的返回值为0时,确定所述当前程序未被调试。本实现方式中,提供了确定当前程序是否被调度的具体方法,包括通过调用Windows系统的应用程序编程接口API中的IsDebuggerPresent函数确定所述当前程序是否被调用,若返回值为1,则表示当前程序被调试;若返回值为0,则表示当前程序未被调试;使得本发明实施例更加具有可操作性。
在一种可能的实施例中,所述确定当前程序是否被调试包括:加载系统的ntdll.dll模块,并根据所述ntdll.dll模块获取NtQueryInformationProcess接口;调用所述NtQueryInformationProcess接口,得到所述当前进程的信息;根据所述当前进程的信息确定所述当前程序是否被调试。本实现方式中,提供了确定当前程序是否被调度的另一种方法,包括调用Windows系统的API中的NtQueryInformationProcess来获取当前进程的信息;根据所述当前进程的信息确定所述当前程序是否被调试,增加了本发明实施例的可实现方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810728285.9/2.html,转载请声明来源钻瓜专利网。





