[发明专利]一种使用随机密码保护代码的方法及装置有效
申请号: | 201811157565.5 | 申请日: | 2018-09-30 |
公开(公告)号: | CN109145533B | 公开(公告)日: | 2021-11-26 |
发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F21/60 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 徐松 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 随机 密码保护 代码 方法 装置 | ||
1.一种使用随机密码保护代码的方法,其特征在于,包括:
提升进程的权限得到具有调试权限的进程,所述具有调试权限的进程用于访问程序的目标代码,所述目标代码包括核心代码和非核心代码;
生成随机加密函数,所述随机加密函数用于使用随机密码对所述核心代码进行加密;
调用所述随机加密函数对所述目标代码进行随机加密,得到一级加密代码,所述一级加密代码包括随机加密后的核心代码和未加密的非核心代码;
调用预置系统加密函数对所述一级加密代码进行普通加密,得到二级加密代码,所述二级加密代码包括所述随机加密后的核心代码和普通加密后的非核心代码,或者包括普通加密后的一级加密代码;
其中,调用所述随机加密函数对所述目标代码进行随机加密,得到一级加密代码之前,所述方法还包括:
生成异常处理函数,所述异常处理函数用于捕获解密时产生的异常;
执行所述二级加密代码;通过所述异常处理函数捕获解密时产生的当前异常;对所述当前异常进行处理,其中,对所述当前异常进行处理包括:确定所述当前异常的类型;根据所述当前异常的类型判断是否触发了内存访问的异常;若触发了内存访问的异常,则从所述当前异常的上下文中获取当前指令的访问地址;根据所述当前指令的访问地址判断所述当前异常是否为执行了非法的指令;若是,则对所述二级加密代码进行解密并执行,并消除所述当前异常;
生成新的随机密码;根据所述新的随机密码对解密后的核心代码重新进行随机加密。
2.根据权利要求1所述的方法,其特征在于,所述提升进程的权限得到具有调试权限的进程,所述具有调试权限的进程用于访问程序的目标代码,所述目标代码包括核心代码和非核心代码包括:
调用函数GetCurrentProcess获取当前程序的句柄;
调用函数OpenProcessToken打开进程相关联的访问令牌;
调用函数LookupPrivilegeValue获取调试权限的值;
调用函数AdjustTokenPrivileges将所述进程的当前权限调整为调试权限,得到具有调试权限的进程,所述具有调试权限的进程用于访问所述目标代码,所述目标代码包括核心代码和非核心代码。
3.根据权利要求1-2任一所述的方法,其特征在于,在所述提升进程的权限得到具有调试权限的进程,所述具有调试权限的进程用于访问程序的目标代码,所述目标代码包括核心代码和非核心代码之后,所述方法还包括:
设置调试寄存器,所述调试寄存器用于获取内存的访问地址。
4.一种使用随机密码保护代码的装置,其特征在于,包括:
提升单元,用于提升进程的权限得到具有调试权限的进程,所述具有调试权限的进程用于访问程序的目标代码,所述目标代码包括核心代码和非核心代码;
第一生成单元,用于生成随机加密函数,所述随机加密函数用于使用随机密码对所述核心代码进行加密;
第一加密单元,用于调用所述随机加密函数对所述目标代码进行随机加密,得到一级加密代码,所述一级加密代码包括随机加密后的核心代码和未加密的非核心代码;
第二加密单元,用于调用预置系统加密函数对所述一级加密代码进行普通加密,得到二级加密代码,所述二级加密代码包括所述随机加密后的核心代码和普通加密后的非核心代码,或者包括普通加密后的一级加密代码;
其中,在所述第一加密单元调用所述随机加密函数对所述目标代码进行随机加密,得到一级加密代码之前,还包括:
生成异常处理函数,所述异常处理函数用于捕获解密时产生的异常;
执行所述二级加密代码;通过所述异常处理函数捕获解密时产生的当前异常;对所述当前异常进行处理,其中,对所述当前异常进行处理包括:确定所述当前异常的类型;根据所述当前异常的类型判断是否触发了内存访问的异常;若触发了内存访问的异常,则从所述当前异常的上下文中获取当前指令的访问地址;根据所述当前指令的访问地址判断所述当前异常是否为执行了非法的指令;若是,则对所述二级加密代码进行解密并执行,并消除所述当前异常;
生成新的随机密码;根据所述新的随机密码对解密后的核心代码重新进行随机加密。
5.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-3任意一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811157565.5/1.html,转载请声明来源钻瓜专利网。