【技术实现步骤摘要】
一种初始化unidbg模拟执行环境的方法、设备及介质
[0001]本申请涉及逆向调试
,尤其涉及一种初始化
unidbg
模拟执行环境的方法
、
设备及介质
。
技术介绍
[0002]目前,
unidbg
是一个标准的
java
项目,是一款基于
unicorn
和
dynamic
的逆向工具,可以直接黑盒调用安卓软件中的
so
文件,在脱机协议逆向中,无论是直接模拟执行算法,还是进行白盒
trace
分析都是一款利器
。
[0003]在使用
unidbg
的过程中,模拟执行依赖上下文或者设备环境信息的
so
文件时,往往需要进行补环境以及
so
文件的加载初始化
。
对于环境不复杂的情况,一般会进行
hook
操作
、patch
操作或者文件重定向操作,实现
uni ...
【技术保护点】
【技术特征摘要】
1.
一种初始化
unidbg
模拟执行环境的方法,其特征在于,所述方法包括:确定出待分析软件及所述待分析软件对应的待执行代码,并基于所述待执行代码的中段特性,在所述待执行代码的中段执行触发时,将所述待分析软件对应的执行进程挂起;确定出内存数据的实时获取需求,并对内存区域中所述实时获取需求对应的内存数据进行转储,以保存对应的多个转储文件;针对每个转储文件进行遍历,并通过
unidbg
中对应的接口对遍历得到的内存块进行内存申请,以确定所述内存申请对应的内存上下文环境;将所述内存上下文环境写入至所述
unidbg
中,执行所述内存上下文环境,并接收执行过程中的错误日志;根据所述错误日志中的缺失内存地址,获取对应的缺失内存块,将所述缺失内存块添加至所述内存上下文环境中,并在
unidbg
中执行添加后的内存上下文环境,以实现
unidbg
模拟执行环境的模拟调用
。2.
根据权利要求1所述的一种初始化
unidbg
模拟执行环境的方法,其特征在于,所述针对每个转储文件进行遍历,并通过
unidbg
中对应的接口对遍历得到的内存块进行内存申请,以确定所述内存申请对应的内存上下文环境,具体包括:针对每个转储文件,对所述转储文件进行遍历,并确定出所述转储文件对应的起始地址和结束地址;根据所述起始地址和结束地址,确定所述转储文件所要申请内存块对应的容量,并通过
unidbg
中对应的申请接口,对所述容量的内存块进行内存申请;确定出所申请到的多个内存块,并根据所述多个内存块,确定所述内存申请对应的内存上下文环境
。3.
根据权利要求1所述的一种初始化
unidbg
模拟执行环境的方法,其特征在于,所述接收执行过程中的错误日志,具体包括:将所述内存上下文环境与所述
unidbg
所需的执行环境进行相似度比较,并找到所述
unidbg
的执行环境对应的缺失内存块;将所述缺失内存块对应的错误日志进行抛出,并接收所述错误日志
。4.
根据权利要求1所述的一种初始化
unidbg
模拟执行环境的方法,其特征在于,所述根据所述错误日志中的缺失内存地址,获取对应的缺失内存块,将所述缺失内存块添加至所述内存上下文环境中,具体包括:在所述错误日志中的缺失内存块是未进行申请的情况下,确定出错误日志中缺失内存块对应的缺失内存地址,并根据所述对应的缺失内存地址,在所述待分析软件的执行进程中找到未进行申请的缺失内存块;对所述未进行申请的缺失内存块进行转储,并将转储后的所述未进行申请的缺失内存块添加至所述内存上下文环境中,以将添加后的内存上下文环境再次写入至所述
unidbg
中
。5.
根据权利要求4所述的一种初始化
unidbg
模拟执行环境的方法,其特征在于,所述根据所述错误日志中的缺失内存地址,获取对应的缺失内存块,将所述缺失内存块添加至所述内存上下文环境中,具体包括:在所述错误日志中的缺失内存块是内存访问出错的情况下,确定出错误日志中内存访
问出错的缺失内存块对应的缺失内存地址;通过
unidbg
中对应的接口,并根据所述缺失内存地址,在遍历多个转储文件得到的内存块中获取所述内存访问出错的缺失内存...
【专利技术属性】
技术研发人员:徐万鹏,单震,谢传家,
申请(专利权)人:浪潮卓数大数据产业发展有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。