[发明专利]一种函数执行环境构建方法、装置、电子设备及存储介质在审
申请号: | 201911195297.0 | 申请日: | 2019-11-28 |
公开(公告)号: | CN112860224A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 段锦涛 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F9/448 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 王茹 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 函数 执行 环境 构建 方法 装置 电子设备 存储 介质 | ||
本公开提供了一种函数执行环境构建方法、装置、电子设备及存储介质,相比传统的在安卓系统环境下的漏洞发现方法来说,在模拟环境运行库文件可以在执行分析过程中方便的修改寄存器和内存参数,动态修改指令执行路径和动态添加执行指令,提高执行分析的效率。
技术领域
本公开涉及软件技术领域,尤其涉及一种函数执行环境构建方法。
背景技术
近年来,手机应用产业急速发展,每年产量呈指数型增长,据统计,我国主要应用商店中的应用软件数量已累计超过1000万。手机应用在给大众生活带来方便的同时,也给不法分子提供了可乘之机。
目前来说,针对安卓系统应用进行漏洞发掘时,主要是在安卓系统环境下对库文件进行执行分析,这种执行分析需要多次运行库文件中相同的代码片段,且在安卓环境中,若需要执行时动态修改内存参数,添加执行指令,步骤十分繁琐,分析效率较低。
发明内容
针对上述技术问题,本公开实施例提供一种函数执行环境构建方法,技术方案如下:
根据本公开实施例的第一方面,提供一种函数执行环境构建方法,包括:
解析目标库文件以获取目标函数代码块,执行所述目标函数;
若接收到执行过程中产生的调用信号,则根据所述调用信号的类型,通过对应的实现接口获取针对本次调用的实现逻辑,基于所述实现逻辑获取所述调用信号所需的返回值,以继续本次模拟执行流程;
若接收到执行过程中产生的调用错误信息,则停止本次执行流程,并根据所述调用错误信息,在执行环境中添加针对本次调用的实现逻辑,在添加完毕后重新开始本次执行流程;
若本次执行流程正常执行至结束,且执行过程未接收到调用错误信息,则判定所述目标函数的执行环境构建完成。
可选的,所述获取解析目标库文件以获取目标函数代码块,执行所述目标函数,包括:
根据预先编写的库文件解析逻辑对目标库文件进行解析,根据解析结果在所述目标库文件中提取出目标函数代码块,所述解析结果至少包括所述目标库文件的符号表和依赖树;
将所述目标函数代码块映射到内存中,通过读取所述内存对目标函数代码块进行执行。
可选的,所述执行所述目标函数后,还包括:
接收到执行过程中产生的对相关库文件的依赖信号后,在预先封装的库文件集合中查找本次依赖的库文件;
若查找到本次依赖的库文件,则加载并执行所述本次依赖的库文件,以继续目标函数的执行环境构建流程;
若未查找到本次依赖的库文件,则上报错误信息,以根据所述错误信息在预先封装的库文件集合中增加本次依赖的库文件。
可选的,所述根据所述调用信号的类型在对应的实现接口获取针对本次调用的实现逻辑,基于所述实现逻辑获取所述调用信号的返回值,包括:
判断本次调用信号的调用类型,若所述调用类型为系统调用,则继续判断本次系统调用为通用型系统调用或文件读写型系统调用;
在所述调用类型为通用型系统调用的情况下,在通用系统调用逻辑集合中获取并返回本次调用所需的调用结果,所述通用系统调用逻辑集合预先通过hook方式封装;
在所述调用类型为文件读写型系统调用的情况下,将本次调用信号上报给Java开发工具,通过java开发工具设置的文件读写接口获取针对本次文件读写的实现逻辑,并基于所述实现逻辑返回所需的调用结果。
可选的,所述根据所述调用信号的类型在对应的实现接口获取针对本次调用的实现逻辑,基于所述实现逻辑获取所述调用信号的返回值,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911195297.0/2.html,转载请声明来源钻瓜专利网。