admin管理员组

文章数量:1567522

2024年7月9日发(作者:)

SYS SECURITY

系统安全

手机APP逆向分析在电子数据取证工作中的应用

张静文 廖

张 鹏 邹儒将 周南京

摘要:近年来,手机恶意APP威胁信息安全的问题愈发突出,因而恶意APP程序的检测和电子数据取证

工作在新的形势下变得更加重要,逆向分析作为恶意程序取证的重要方法之一,已经成为业界的一个热门工

作。论文通过一个实际案例,展示了逆向分析在手机恶意APP电子数据取证过程中的常用解决思路和具体操作

方法。

关键词:手机APP;逆向分析;电子数据取证

一、前言

信息化在全球的不断普及,使人们在使用手机APP

让生活便利的同时,也面临着恶意程序侵害的风险——

有的伪装成合法的程序、有的带欺骗性的恶意链接、有

的隐秘窃取个人用户隐私信息……。因此,如何通过有

效方法对智能手机的APP恶意程序开展电子物证检测,

显得尤为重要。而在手机APP恶意程序的电子物证检验

工作中,逆向分析是最为重要手段之一,可以通过其识

别恶意程序的恶意代码,了解其如何进行攻击

[1]

会完整的记录恶意程序的所有恶意行为。沙箱按照空间

类型被分为用户空间沙箱以及内核空间沙箱,典型的内

核空间沙箱如 TainDroi等。通过静态检测技术和动态检

测技术相结合,就可以较为全面地实现恶意APP源码分

析和恶意APP的行为分析。将恶意程序关键数据提取出

来,并固定其中的相关数据,从而掌握恶意程序实施恶

意行为的关键证据。

三、手机APP逆向分析取证实例

下面以某涉及手机个人隐私窃取的“X约.apk”程

序为例,探讨手机APP逆向分析是如何实践应用于电子

数据取证。

(一) 静态检测过程。首先启动工作台,对工作环

境用杀毒软件进行检测,然后导入所要检测的目标文件。

接着通过jadx-gui-0.9.0反编译工具解开“X约.apk”文

件,得到该文件的内部代码结构。将解开的文件统一存

放到规定位置,并计算MD5值,以用于证据固定。其中

是安卓平台与APK程序执行交互的

接口文件,该文件提供了APK的所有申请权限和所有的

组件。选中文件,该文件内包含APK

向Android平台申请的所有权限,包括“写入外部存储”、

“读取联系方式”、“读取短信”、“访问精确位置”

等敏感权限。

打开H5框架,调用核心业务程序的入口文件

”,可见“X约.apk”首先执行的是index.

html文件,该文件打开之后,有唯一的“确定”按钮,

二、 APP逆向分析

(一)逆向工程。逆向工程也称为反向工程(Reverse 

Engineering)

[2]

,其含义是根据已有的应用程序,通过逆

向工程来得到其源码,进而分析其设计方案

[3]

。目前有很

多公司和司法鉴定机构用这个方法分析恶意程序,该方

法可以将手机恶意APP通过反汇编的手段来分析APP相

关功能,找到程序中存在的具体恶意行为,从而得到违

法行为的证据或线索。

(二)分析方法。最常采用的分析方法有静态检测

分析法和动态检测分析法。静态分析法,是在程序没有

运行的情况下通过逆向工程来提取程序的特征,然后再

对这些特征进行分析判断,看APP程序是否具有恶意行

为。静态分析的优势是速度快效率高,但是缺点是面对

易混淆代码和多态技术时力不从心,尤其是包含一定社

工攻击的恶意程序。动态分析法,主要是指在虚拟机或

者沙箱环境中执行APP程序,在执行过程中,取证系统

图1 apk向Android平台申请的权限

42

信息系统工程 │ 2020.9.20

点击即调用aa()方法,该方法检查输入的手机号和邀请

码,继而getPermission方法申请读取联系人权限,如

果没有申请到权限,弹出消息框告知用户:“请您同

意弹出的权限,便可实用程序!如果未弹出,请前往

“手机设置”里的“权限管理”找到本应用,并打开通

信录权限,方可使用。”;如果申请到权限,则调用

successCallBack方法,在successCallBack方法中调用

huoqu(sjh,yqm)方法,该方法的代码为代码

的406至439行,如图2所示。

图2 huoqu(sjh,yqm)方法代码

huoqu(sjh,yzm)方法执行逻辑为:第一步:将手机号

码、邀请码和address变量中存储的手机的厂商和型号赋

予con变量;第二步:调用dcloud的H5框架接口获取通

信录数据信息;第三步:将获取的所有联系人名字和手

机号数据存储在con变量;第四步:将数据信息发送到服

务器,服务器地址存放在apiserver变量。最后,调用了

translatePoint方法,该方法将获取的定位数据发送到服务

器。发送成功后,如果服务器返回数据是“获取成功”,

则调用RequestPermission方法,最后再设置30秒一次的定

时器,定时调用RequestPermission方法。RequestPermission

方法是获取短信信息,代码121行至129行是将获取的短

信信息发送到指定的服务器。如图3所示。

图3 translatePoint方法代码

SYS SECURITY

系统安全

(二)动态检测过程。将“X约.apk”文件拷贝到

专用取证电脑,首先进行检材固定,计算其MD5值,接

着运行模拟器Genymotion for personal use  Custom Phone 

6.0.0,将“X约.apk”软件拖放进模拟器,界面弹框包含

“要允许夜约访问您设备上的照片、媒体内容和文件吗?”

的文字信息,“拒绝”和“允许”两个按钮。点击“允许”

按钮,而在后续的“X约.apk”界面上有“填写邀请码”

的按钮,点击该按钮,即进入 “填写邀请码”的对话框,

进而收取用户的个人有关信息。

在动态检测过程中发现,手机号和邀请码只输入其

中之一,点击“确定”按钮,程序提示:“输入正确手

机号和邀请码”;若输入手机号和邀请码,多次尝试输

入1-6位随机数字,结果程序没有反应。

(三)分析结果。综上所述,“X约.apk”程序具

有获取手机型号、手机通信录、定位信息和短信信息功能,

及将获取的信息上传到服务器的功能。没有其他的社交、

聊天等即时通信功能。具有每隔30秒定时获取短信功能。

未发现除上述功能外的其他功能。同时,在程序运行过

程中几乎没有隐私政策、用户注册协议、免责声明等隐

私协议,是一款典型的用于窃取用户隐私的“钓鱼”软件。

上述检验分析的相关代码证据文件,按照司法鉴定流程

可用为电子数据证据加以固定,作为法庭取信之用。

四、结语

本文通过对一款特定恶意APP进行分析取证,展示

了逆向分析在电子数据取证工作中的基本方法,通过该

方法,可以针对手机APP恶意程序进行取证分析。而现

实案例证明,手机恶意程序千变万化,在实际数据取证

研究中,必须结合多种方法,灵活地进行电子数据取证,

才能为净化网络环境创造条件。

H

参考文献

[1] 边悦,戴航,慕德俊.Android 恶意软件特征研究[J].计算

机技术与发展,2014 (11):178-182.

[2] Eldad Eilam.逆向工程揭秘[M].北京:电子工业出版

社,2007:4-16.

[3] 丰生强. Android 软件安全与逆向技术[M]. 北京:人民邮

电出版社,2013:94-156.

[4]吴俊昌, 骆培杰, 程绍银, 等. 基于权限分类的 Android 应

用程序的静态分析[A]. 北京: 中国信息安全测评中心,2011:41-4.

(作者单位:南京拓界信息技术有限公司)

信息系统工程 │ 2020.9.20

43

本文标签: 分析逆向数据