[发明专利]函数调用方法、装置及计算机可读存储介质有效
申请号: | 202011576432.9 | 申请日: | 2020-12-28 |
公开(公告)号: | CN112559097B | 公开(公告)日: | 2021-12-28 |
发明(设计)人: | 孙吉平;李伟伟 | 申请(专利权)人: | 上海纬百科技有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 侯宪志;喻嵘 |
地址: | 201203 上海市浦东新区自由贸易试*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 调用 方法 装置 计算机 可读 存储 介质 | ||
本申请公开了一种函数调用方法、装置及计算机可读存储介质,其中,该方法包括:以重定位方式记录函数的第一地址;随机确定地址空间;响应于所记录的第一地址导入地址空间,在所述地址空间中随机配置并记录用于进行函数调用的第二地址,在多个函数的情况下,多个第二地址与多个第一地址的顺序不同;响应于基于第二地址调用函数的指令进行函数调用。该函数调用方法记录了作为函数的实际地址的第一地址,在第一地址并未导入调取函数的指令所指向的地址空间的情况下,调取函数的指令与函数的第一地址并未形成调用关系,能够防止通过静态分析方式查看函数调用逻辑;在将所记录的第一地址写入地址空间以形成第二地址后,能够保证程序的正常运行。
技术领域
本申请涉及应用程序保护技术领域,特别涉及一种函数调用方法、装置及计算机可读存储介质。
背景技术
静态库是指在应用程序中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。以静态库方式发布的产品是软件厂商的常见需求之一,在组成静态库的目标文件中,函数调用通过重定位实现,函数调用关系清晰可见,通过静态分析方式即可清晰的查看函数调用逻辑,破解应用程序。
发明内容
有鉴于现有技术中存在的上述问题,本申请提供了一种函数调用方法、装置及计算机可读存储介质,本申请实施例采用的技术方案如下:
函数调用方法,包括:
以重定位方式记录函数的第一地址;
随机确定地址空间;
响应于所记录的第一地址导入地址空间,在所述地址空间中随机配置并记录用于进行函数调用的第二地址,在多个函数的情况下,多个第二地址与多个第一地址的顺序不同;
响应于基于第二地址调用函数的指令进行函数调用。
在一些实施例中,所述以重定位方式记录函数的第一地址,包括:
构建第一地址表,记录以重定位方式处理后每个被引用过的函数的第一地址。
在一些实施例中,所述随机确定地址空间,包括:
至少随机获取不包含初始内容的地址空间,用于构建第二地址表,该地址空间不小于能够容纳所述第一地址的数量的空间。
在一些实施例中,所述响应于所记录的第一地址导入地址空间,在所述地址空间中随机配置并记录用于进行函数调用的第二地址,包括:
按照与所述第一表中不同的顺序将第一地址随机导入所述第二地址表,配置包含在所述第二地址表中的第二地址;
所述方法还包括:
配置基于所述第二地址表中的第二地址调用函数的指令。
在一些实施例中,所述响应于基于第二地址调用函数的指令进行函数调用,包括:
响应于基于第三地址调用函数的指令进行函数调用,所述第三地址为所述第二地址的实际地址。
在一些实施例中,所述第三地址包括内存地址。
在一些实施例中,所述按照与所述第一表中不同的顺序将第一地址随机导入所述第二地址表,包括:
对导入操作进行防解析处理,防止函数被分析出算法内容;所述防解析处理包括:将与导入操作相关的函数通过混淆和/或虚拟化进行更改。
函数调用装置,包括:
第一配置模块,其配置为用于以重定位方式记录函数的第一地址;
第二配置模块,其配置为用于随机确定地址空间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海纬百科技有限公司,未经上海纬百科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011576432.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种晶片夹具及其清洗方法
- 下一篇:一种防辐射防护铅玻璃装置