【电子数据取证】取证图片EXIF数据揭晓位置秘密

文章关键词:电子数据取证、手机取证、介质取证、逆向分析

一、前言

随着智能手机和互联网技术的发展,各种终端应用软件应运而生。本文研究了APK结构、提取方式、逆向分析工具等,并通过实际案例,按照电子数据取证流程从静态分析和动态分析两方面研究了手机APK的取证方法。

二、案件背景

Android平台因其开放性和高效性的特点,深受用户青睐,成为各种恶意应用和手机病毒主要攻击对象,各种安卓安装包(APK)给用户带来便利的同时,也给移动网络安全带来很大隐患,为犯罪分子提供了可乘之机。

Android手机在使用一段时间后,会莫名多出一些APK件,运行速度也越来越慢,有些恶意手机木马会将用户手机上的通讯录等信息进行上传,泄露用户隐私,有些扣费木马会通过发送短信进行自动扣费,有些木马会拦截用户短信从而窃取银行卡密码等。

 

三、APK逆向分析

Android APK的逆向分析是指将APK程序用反编译工具进行反汇编,通过分析反汇编的代码来理解应用程序的功能,该技术是目前对恶意代码类案件进行检验的重要手段。

3.1APK的提取方式

提取Android手机应用(APK)的方法主要分为三种:

1. 网络提取:通过网络链接获取APK,比如从百度网盘下载或者通过短信中的链接下载。这种方式依赖于应用的在线存储和传输,可以在用户主动下载应用时进行提取。

2. 手机内提取:从手机内部获取APK,可以通过直接查找安装文件进行提取。使用ADB命令也是一种有效的方式,通过连接手机进行文件提取。即使应用被删除,专用数据恢复软件可以在手机镜像中进行恢复提取。如果从网盘获悉某可疑APK的下载信息,但链接失效,可以通过全盘镜像搜索,查找用户是否曾安装过该应用并留存在镜像中。

3. 第三方工具提取:利用第三方工具如360手机助手等软件,连接电脑和手机后,从手机中找到目标文件,然后导出成APK格式的文件。这种方式相对简便,适合不具备专业技术背景的用户。

这三种提取方式各有优势和适用场景,具体选择取决于调查者的需求、条件和技术能力。

3.2逆向分析工具

APK反编译有四种方法,一是在JAVA环境下可以用Apktool、dex2jar、jd-gui等工具将APK文件进行反编译。其中Apktool工具,能查看res文件下xml文件、AndroidManifest.xml和图片;dex2jar工具将APK反编译成Java源码(classes.dex转化成jar文件);jd-gui工具作用是查看APK中classes.dex转化成的jar文件,即源码文件。这是一种比较传统的反编译方法,用此办法反编译得到的源码结构清晰,可读性好,适合有一定反编译基础的取证人员使用。

二是使用jadx-gui bat工具(前提是配置好JAVA环境),该工具操作非常简单,反编译能力强,代码结构友好,只要将需要反编译的APK文件拖到工具界面中即可反编译,它将APK的XML资源也一并反编译,jadx能让我们在找到关键代码的同时,找到在哪些地方调用或者引用了它,还能一键导出Gradle工程,搜索功能也非常方便,而且支持多平台操作。虽然大于50M的文件出现卡顿现象,但可以满足大部分取证工作中反编译的需求。

三是使用Android killer工具,它是一款免费可视化安卓反编译软件箱,其实是对第一种方法提到的操作进行一系列的封装,功能强大,使用起来简单方便,能快速分析出一个复杂的APP执行的流程,也可以进行搜索,但只能在windows平台下使用。Android killer也是电子取证工作中的一种常用工具。

四是使用IDA pro工具,它是一款世界顶级的交互式反汇编工具,是一款收费软件,不存在任何注册机、注册码和破解码,具有更好的反汇编、深层分析的能力。

3.3获取的权限

对安卓应用程序来说,AndroidManifest.xml是最重要的信息源,同时也是侦查破案工作中分析的重点,Manifest中包含有该APK能够获取的权限等信息,一个恶意木马APK往往会拥有许多权限[9]。如果拥有短信权限(编辑短信、发送短信、读写短信、拦截短信)、手机权限(获取手机号码、搜集用户IMEI号、系统版本号、拨打电话、拦截电话)、通讯录权限(读取通讯录、删除通讯录)、相机权限、位置权限(获取位置、发送位置)、访问网络等过于隐私的权限,应该对此APK文件进行重点分析。

3.4逆向工具分析APK文件(以Jadx-gui工具为例)

首先在win11操作系统电脑上配置安装好JDK8环境,启动Jadx-gui工具。加载APK应用程序,如图1所示,加载后可以看到源代码、资源文件、证书三大类。双击证书可以查看证书内容,证书中包含我们需要关注的公钥信息、签名信息等。双击资源文件里的AndroidManifest.xml可以对AndroidManifest.xml进行查看分析,看到AndroidManifest.xml的获取权限如图1所示。

在Jadx-gui工具下,利用Jadx-gui的搜索功能,能更快捷地找到线索。如通过搜索关键词“@”,查找APK的回传邮箱,搜索关键词“http”,查找APK中链接或者回传网络地址,搜索"Password”“sms”“cnontact”等关键词,可以在代码中查找有关的短信、联系人的代码函数,如图2所示。

图二 利用搜索关键词获取信息

然后再具体分析源代码,找到功能函数,进一步分析出APK文件的功能,找到回传地址和手机号。

四、实战分析取证

案例情况:在某开发区,一家企业老板收到一条陌生短信,内容包含一个链接。好奇心驱使下,老板点击了链接进行查看。几天后,老板在手机上接到一条似乎来自熟人的短信,内容是请求借款,金额高达30余万元。出于信任,老板迅速完成了汇款,但事后发现自己被骗。为了调查此事件,取证人员在老板的手机中发现了一个疑似APK文件,决定对其进行详细分析。

4.1静态分析

使用Apktool工具对APK文件进行反编译,在生成的文件中,对AndroidManifest.xml进行查看分析,然后使用jd-gui工具打开classes-dex2jar.Jar查看具体代码。

AndroidManifest.xml的权限主要有:android.permission.READ_CONTACTS:允许应用访问联系人通讯录信息;

android.permission.READ_SMS:读取短信内容;android.permission.WRITE_EXTERNAL_STORAGE:允许程序写入外部存储,如SD卡上写文件;

android.permission.INTERNET:访问网络连接,可能产生GPRS流量。

可以看出AndroidManifest.xml主要有接收、读取、写入、回传等功能。通过阅读分析主要函数的代码,找到了getMail()、getNber()、getPass()这三个函数以及回传邮箱函数代码如图3所示。

图三 获取回传邮箱代码

通过分析:邮箱函数返回值pkeyc+pkeye+pkeyl+pkeyk+pkeyg为:shi* * 449@yeah.net;电话号码返回值pkeyh+pkeya+pkeyi+pkeyf为:131526* * 121;密码函数返回值pkeyb+pkeyi+pkeyd为:sish* * *。由此通过取证得到攻击者手机号为131526* * 121(归属地为广西南宁市),回传邮箱地址为shi* * 449@yeah.net,密码为sish* * *。我们登录此邮箱进行验证,发现收件箱有受害者发送的邮件,验证了此邮箱的确为嫌疑人回传邮箱。

仔细分析源代码,发现程序通过getTelNum()函数来获取手机号码,以及手机的型号、版本等信息,通过getSmsInPhone()获取手机里的短信,通过getPeopleNameFromPerson()获取个人通讯录等,然后将获取到的短信等信息发送到指定邮箱,并将短信、通讯录回传至木马携带的手机号。也可以从DuanXinReceiver()这个类入手,它实现接收信息并广播发送给接收者,最终将获取到的信息通过smsAndMail()函数、SendDXMail()等函数发送至指定邮箱。SendDXMail()调用了getMail()和getPass()函数,如图4所示,右击查看函数引用,同样能获取到回传邮件地址和密码。

图四 函数代码截图

经代码分析,得知该APK文件主要功能为获取用户的通讯录、短信,将数据回传至木马携带的邮箱地址,实时拦截短信,并将短信回传至木马携带的手机号。此次取证分析及时有效,有力地为案件侦查提供了线索,从而使案件得以快速侦破。

4.2动态仿真模拟

1.安卓模拟器模拟

下载安卓模拟器-逍遥模拟器,将APK文件在逍遥模拟器中进行安装。安装完毕,可以看到此APK图标为word格式图标,大小1.84MB,同时查看其权限,如图5所示:这些权限跟AndroidManifest.xml里的权限是一致的。

2.采用Fiddler抓包测试

通过运行Fiddler软件,对该APK进行抓包测试。首先打开Fiddler软件,对逍遥模拟器进行设置代理,对安装好APK软件的逍遥模拟器进行激发,触发此木马APK的行为,从而进行抓包获取其网络行为。通过此办法测试出涉案APK多次对邮箱进行登录,并发送通讯录、短信等信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++多态的定义和原理

目录 1、多态的定义和实现 1.多态的构成条件 2.虚函数 3.虚函数的重写(覆盖) 4.虚函数重写的两个例外 5.c11 override和final 6.重载,覆盖(重写)和隐藏(重定义) 2、抽象类 概念 接口继承和实现继承 3、多态的原理 1.虚函数表 2.多态的原理 4、多继承中的虚…

MessageBox与HubSpot:企业沟通与客户管理的双重利器

今天咱们来聊聊两个超实用的工具——MessageBox和HubSpot。它们就像是你的超级助手,让你和客户沟通起来更顺畅,管理起来也更轻松。 先说说MessageBox吧 想象一下,你正在忙着工作,突然客户发来个消息,你嗖的一下就收到…

【面试题】MySQL(第三篇)

目录 1. MySQL中如何处理死锁? 2. MySQL中的主从复制是如何实现的? 3. MySQL中的慢查询日志是什么?如何使用它来优化性能? 4.存储过程 一、定义与基本概念 二、特点与优势 三、类型与分类 四、创建与执行 五、示例 六、总…

常见网页问题解决

用edge浏览器打印功能时,出现瞬间或加载几秒后突然闪退情况,本来以为是浏览器出了问题,去重置设置也没有,后来又下载了Chrome浏览器,没想到还是一样!!!!!想着…

超级源点/汇点(算法篇)

算法之超级源点/汇点 超级源点/汇点 概念: 超级源点/汇点是模拟出来的虚拟点,多用于图中: 同时有多个源点和多个汇点,建立超级源点和超级汇点同时有多个源点和一个汇点,建立超级源点同时有多个汇点和一个源点&#x…

windows安装Docker Desktop及国内镜像

简介 Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。通过Docker工具,简化了应用的部署、配置和管理过程,提高…

2024年五款企业加密软件(企业加密软件排行最新)

关键是数字化时代,企业数据安全至关重要。一般来说信息技术快速发展,企业数据泄露风险上升。你知道的加密软件保护企业核心数据和商业机密,不可或缺。对我而言介绍几款企业加密软件,帮助选择适合需求的解决方案。 固信加密软件ht…

性价比高充电宝有哪些?充电宝十大最佳品牌大盘点!

在如今这个高度数字化的时代,我们的生活离不开各种电子设备,而充电宝作为保障电子设备续航的重要工具,其地位日益凸显。然而,面对市场上琳琅满目的充电宝品牌和产品,要挑选到一款性价比高的充电宝并非易事。在这篇盘点…

C++20中的指定初始化器(designated initializers)

指定初始化器(designated initializers, 指定初始值设定项)语法如下:C风格指定初始化器语法,初始化数据成员的一种便捷方式 T object { .des1 arg1, .des2 { arg2 } ... }; T object { .des1 arg1, .des2 { arg2 } ... }; 说明: 1.每个指…

2024做TEMU跨境电商,全托管/半托管模式怎么选?

如果说2023年,“全托管”是跨境圈的热词,那2024年一定少不了“半托管”。 自2024年1月,速卖通首次推出半托管模式后,引发了众跨境卖家的热议;而TEMU随后在3月也推出半托管模式,便迅速使得半托管这一模式开始…

盲人出行好帮手:蝙蝠避障让走路变简单

在一片无光的世界里,每一步都承载着探索与勇气。我是众多盲人中的一员,每天的出行不仅是从A点到B点的物理移动,更是一场心灵的征程。我的世界,虽然被剥夺了视觉的馈赠,却因科技的力量而变得宽广…

WEB DEVELOPMENT AND APPLICATIONSB DW4213

TASK 1. Pick a topic. o Decide on a product to sell. It can be any product that can be sold online. You may refer to websites such as Lazada or Shopee to get some inspiration. o Example: − Computer Store − Smartphone Store − Vitamins &am…

Visual Studio 2019 (VS2019) 中使用 CMake 配置 OpenCV 库(快捷版)

2024.07.11 测试有效 最近需要用一下 opencv 处理图像,简单配置了一下Cmake下的 opencv 库。 没有编译 opencv ,也不知道他们为什么要自己编译 opencv 。 一、下载并安装 OpenCV 1.前往 OpenCV 官方网站 下载适用于您的系统的 OpenCV 安装包。 2.点击直接…

Java高级重点知识点-23-网络编程

文章目录 网络编程入门软件结构网络通信协议协议分类网络编程三要素 TCP通信程序通信步骤Socket类ServerSocket类简单的TCP网络程序 文件上传【拓展】 网络编程入门 软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。B/S结构 &…

AI Earth——2020年中国建筑物高度CNBH数据产品(10m)

数据介绍: 复旦大学生命科学学院GC3S团队(吴万本博士、赵斌教授等)利用多源地球观测数据和机器学习技术,构建了中国第一个10米分辨率的建筑高度估计模型(CNBH-10m)。基于此模型建立了中国10米分辨率的建筑高度数据集。此数据集基于全天候地球观测(雷达、光学和夜光图像)…

Iridient Developer:解锁Mac RAW图像处理的极致潜力,打造专业级色彩与细节

Iridient Developer for Mac是一款专为Mac用户设计的RAW图像调整软件,它以其卓越的性能和丰富的功能,赢得了众多摄影师的青睐。以下是对这款软件的详细介绍: 一、强大的RAW图像处理能力 Iridient Developer专为处理RAW图像而设计&#xff0…

使用Python实现深度学习模型:在嵌入式设备上的部署

引言 随着物联网(IoT)和嵌入式系统的发展,将深度学习模型部署到嵌入式设备上变得越来越重要。这不仅可以实现实时数据处理,还能大幅降低数据传输的延迟和成本。本文将介绍如何使用Python将深度学习模型部署到嵌入式设备上&#x…

Android WebView由于重定向造成的goBack()无效的问题解决

当加载重定向Url时,webView不能一级一级goback返回上一页面的问题 override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean {//网页在webView中打开webView.loadUrl(url)return true}override fun onPageStarted(webView: WebView?, s: S…

Jtti:在SQL数据库中怎么实现数据的跨平台传输?

在SQL数据库中实现数据的跨平台传输可以通过以下几种常用的方法。这些方法适用于不同的数据库系统,并可以满足不同的需求和环境。 1. 使用数据库备份和恢复 MySQL 备份数据库: mysqldump -u [username] -p [database_name] > [backup_file].sql 恢复数…

Eel 入门:实现 Python 程序的 Web 前端界面

Eel 入门:实现 Python 程序的 Web 前端界面 Eel 是一个 Python 库,它允许 Python 程序通过简单的 API 与网页进行交互。它使用 WebSocket 协议来实现 Python 后端和 JavaScript 前端之间的实时通信。下面是关于 Eel 的用法、通信原理和使用场景的一篇博…