一种应用程序的脱壳方法、装置、终端设备和介质制造方法及图纸

技术编号:24708424 阅读:22 留言:0更新日期:2020-07-01 00:01
本申请公开了一种应用程序的脱壳方法、装置、终端设备和介质,属于通信技术领域,该方法包括,基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,指定文件中包含OpenMemory方法的签名信息;接收服务器发送的包含OpenMemory方法的签名信息的脱壳脚本,脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据地址信息导出脱壳文件;加载脱壳脚本并运行目标应用,获得脱壳文件。这样,简化了软件脱壳的繁琐操作,兼容性高,适用范围广。

【技术实现步骤摘要】
一种应用程序的脱壳方法、装置、终端设备和介质
本申请涉及通信
,尤其涉及一种应用程序的脱壳方法、装置、终端设备和介质。
技术介绍
随着终端设备的发展,安卓(Android)平台的应用的不断增多,Android平台的恶意软件也在不断增多。用户的隐私和资产安全受到了严重的威胁。由于恶意应用通过加壳技术对恶意代码逻辑进行了隐藏,因此,为分析恶意软件行为,通常需要针对加壳的Android应用进行脱壳操作,从而对获得的脱壳文件进行代码分析。其中,软件加壳是指在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序。软件脱壳是对软件加壳的逆操作,把软件上存在的壳去掉,获取软件的源代码。在Android平台上是指获得加壳前的dex文件。现有技术下,针对Android平台的应用脱壳时,通常采用以下两种方式:第一种方式为:定制Android系统,即在Android系统代码中插入脱壳代码,获取原始的dex文件。但是,采用这种方式,需要对源代码比较熟悉,并且每次修改系统源代码后都需要进行重新编译和刷机,操作步骤繁琐。第二种方式为:采用容器技术动态加载需要脱壳的应用,并通过拦截dex调用的关键方法,获取原始的dex文件。但是,很多加固的应用会检测自身的运行环境,若检测到自身运行在容器中时退出,导致无法脱壳,存在兼容性问题,适用范围较小。
技术实现思路
本申请实施例提供一种应用程序的脱壳方法、装置、终端设备和介质,用以在对应用进行软件脱壳时,简化软件脱壳的复杂步骤,扩大适用范围。一方面,提供一种应用程序的脱壳方法,包括:基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,指定文件中包含OpenMemory方法的签名信息;接收服务器发送的包含OpenMemory方法的签名信息的脱壳脚本,脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据地址信息导出脱壳文件;加载脱壳脚本并运行目标应用,获得脱壳文件。较佳的,加载脱壳脚本并运行目标应用,获得脱壳文件,包括:运行目标应用;根据OpenMemory方法的签名信息,若确定目标应用调用OpenMemory方法,则通过指定的拦截hook应用拦截OpenMemory方法,获得目标应用的脱壳文件的地址信息;根据脱壳文件的地址信息,确定脱壳文件的文件大小;根据脱壳文件的地址信息和文件大小,将脱壳文件从内存导出至指定目录下。较佳的,在基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件之前,进一步包括:获取系统用户权限;安装并运行指定hook应用;通过指定hook应用,建立监听。较佳的,指定hook应用为服务端应用frida-server;脱壳文件的文件类型为dex文件。一方面,一种应用程序的脱壳装置,包括:返回单元,用于基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,指定文件中包含OpenMemory方法的签名信息;接收单元,用于接收服务器发送的包含OpenMemory方法的签名信息的脱壳脚本,脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据地址信息导出脱壳文件;获得单元,用于加载脱壳脚本并运行目标应用,获得脱壳文件。较佳的,获得单元用于:运行目标应用;根据OpenMemory方法的签名信息,若确定目标应用调用OpenMemory方法,则通过指定的拦截hook应用拦截OpenMemory方法,获得目标应用的脱壳文件的地址信息;根据脱壳文件的地址信息,确定脱壳文件的文件大小;根据脱壳文件的地址信息和文件大小,将脱壳文件从内存导出至指定目录下。较佳的,返回单元还用于:获取系统用户权限;安装并运行指定hook应用;通过指定hook应用,建立监听。较佳的,指定hook应用为服务端应用frida-server;脱壳文件的文件类型为dex文件。一方面,提供一种终端设备,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述任一种应用程序的脱壳方法的步骤。一方面,提供一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当程序在终端设备上运行时,使得终端设备执行上述任一种应用程序的脱壳方法的步骤。本申请实施例提供的一种应用程序的脱壳方法、装置、终端设备和介质中,基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,指定文件中包含OpenMemory方法的签名信息;接收服务器发送的包含OpenMemory方法的签名信息的脱壳脚本,脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据地址信息导出脱壳文件;加载脱壳脚本并运行目标应用,获得脱壳文件。这样,直接通过根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据地址信息导出脱壳文件,简化了软件脱壳的繁琐操作,可以应用于不同应用环境,兼容性高,适用范围广。本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请提供的一种应用场景图;图2为本申请实施方式中一种应用程序的脱壳方法的实施流程图;图3为本申请实施方式中一种应用程序的脱壳装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。为了在对应用进行软件脱壳时,简化软件脱壳的复杂步骤,避免兼容性问题,扩大适用范围,本申请实施例提供了一种应用程序的脱壳方法、装置、终端设备和介质。本申请实施例中的应用程序的脱壳方法,可以应用于如图1所示的应用场景,在该应用场景中包括:服务器101和终端设备102。服务器101可以是一台服务器或若干台服务器组成的服务器集群或云计算中心。终端设备102是具备网络通信能力的电子设备,该电子设备可以是智能手机、平板电脑或便携式个人计算机等,主要为采用Android系统的电子设备。终端设备102基于接收的包含指定文件名的文件获取消息,向服务器101返回指定文件,指定文本文档来自技高网...

【技术保护点】
1.一种应用程序的脱壳方法,其特征在于,包括:/n基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,所述指定文件中包含开放内存OpenMemory方法的签名信息;/n接收所述服务器发送的包含所述OpenMemory方法的签名信息的脱壳脚本,所述脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据所述地址信息导出所述脱壳文件;/n加载所述脱壳脚本并运行所述目标应用,获得脱壳文件。/n

【技术特征摘要】
1.一种应用程序的脱壳方法,其特征在于,包括:
基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件,所述指定文件中包含开放内存OpenMemory方法的签名信息;
接收所述服务器发送的包含所述OpenMemory方法的签名信息的脱壳脚本,所述脱壳脚本用于:根据OpenMemory方法的签名信息拦截OpenMemory方法获得目标应用的脱壳文件的地址信息,并根据所述地址信息导出所述脱壳文件;
加载所述脱壳脚本并运行所述目标应用,获得脱壳文件。


2.如权利要求1所述的方法,其特征在于,加载所述脱壳脚本并运行所述目标应用,获得脱壳文件,包括:
运行所述目标应用;
根据所述OpenMemory方法的签名信息,若确定所述目标应用调用OpenMemory方法,则通过指定的拦截hook应用拦截所述OpenMemory方法,获得所述目标应用的脱壳文件的地址信息;
根据所述脱壳文件的地址信息,确定所述脱壳文件的文件大小;
根据所述脱壳文件的地址信息和文件大小,将所述脱壳文件从内存导出至指定目录下。


3.如权利要求2所述的方法,其特征在于,在基于接收的包含指定文件名的文件获取消息,向服务器返回指定文件之前,进一步包括:
获取系统用户权限;
安装并运行所述指...

【专利技术属性】
技术研发人员:李果刘亚国宋小龙罗企葛贤亮
申请(专利权)人:中移杭州信息技术有限公司中国移动通信集团有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1