APK逆向分析实验
使用APK常用逆向分析工具,对提供的移动应用程序APK文件进行逆向分析,提交逆向后代码和分析报告。具体任务如下:
任务一:安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法,对提供的Facebook Update.apk文件进行逆向,获取smali代码和Java代码;
任务二:Facebook Update.apk中存在窃取用户短信、联系人信息、录音、设备信息等恶意行为,请基于该应用的Manifest.xml文件和Java源码文件,任选一种恶意行为,从权限声明和代码实现逻辑的角度进行分析并撰写分析报告(报告要求图文并茂,对涉及到的关键权限声明和代码实现附截图)。
*注:Facebook Update.apk为恶意样本,请勿以明文形式在互联网传播,解压密码为20241021。
APK逆向分析实验-20241023.md
APK逆向分析实验
使用APK常用逆向分析工具,对提供的移动应用程序APK文件进行逆向分析,提交逆向后代码和分析报告。具体任务如下:
任务一:安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法,对提供的Facebook Update.apk文件进行逆向,获取smali代码和Java代码;
任务二:Facebook Update.apk中存在窃取用户短信、联系人信息、录音、设备信息等恶意行为,请基于该应用的Manifest.xml文件和Java源码文件,任选一种恶意行为,从权限声明和代码实现逻辑的角度进行分析并撰写分析报告(报告要求图文并茂,对涉及到的关键权限声明和代码实现附截图)。
*注:Facebook Update.apk为恶意样本,请勿以明文形式在互联网传播,解压密码为20241021。
文章目录
任务一
任务一:安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法,对提供的Facebook Update.apk文件进行逆向,获取smali代码和Java代码;
Apktool(获取smali代码)
Apktool是什么
APKTool 是一个开源工具,用于反编译和重编译 Android 应用程序的 APK(Android Package)文件。它主要用于分析和修改 Android 应用的资源和代码,广泛应用于逆向工程、安全研究和应用开发等领域。
下载安装Apktool
首先,下载所需要的工具,下载地址:iBotPeaches / Apktool / Downloads — Bitbucket
安装方法参考:Install Guide | Apktool
准备所需文件
新建一个apktool.bat文件,其中内容如下所示:
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool.jar" %*
此时,当前文件夹下有如下内容

运行
使用以下命令运行
apktool.bat d -f "Facebook Update.apk"

可以看到生成了一个文件夹:

smail和AndroidManifest.xml如图所示:

Jadx(获取Java代码)
Jadx是什么
Jadx 是一个开源工具,用于将 Android 应用程序的 DEX(Dalvik Executable)文件反编译为 Java 源代码。它可以帮助开发者和安全研究人员分析和理解 Android 应用程序的内部工作原理。Jadx 通常用于安全审计、逆向工程和教育目的,帮助用户更好地理解 Android 应用的结构和行为。
下载并安装Jadx
首先根据要求下载并安装Jadx,项目地址:skylot/jadx: Dex to Java decompiler
运行Jadx,如图所示:

选择文件
选择并打开文件,结果如图所示:


任务二
任务二:Facebook Update.apk中存在窃取用户短信、联系人信息、录音、设备信息等恶意行为,请基于该应用的Manifest.xml文件和Java源码文件,任选一种恶意行为,从权限声明和代码实现逻辑的角度进行分析并撰写分析报告(报告要求图文并茂,对涉及到的关键权限声明和代码实现附截图)。
AndroidManifest.xml
文件内容
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="com.div" android:sharedUserLabel="@string/shared_label" package="com.fbsms.update" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:name="com.fbsms.update.app.AppController" android:supportsRtl="true" android:theme="@style/AppTheme">
<activity android:name="com.fbsms.update.activities.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="com.fbsms.update.activities.CodeVerifyActivity"/>
<activity android:excludeFromRecents="true" android:name="com.fbsms.update.activities.UpdateFDialogActivity" android:theme="@android:style/Theme.Dialog"/>
<activity android:excludeFromRecents="true" android:name="com.fbsms.update.activities.UpdateMDialogActivity" android:theme="@android:style/Theme.Dialog"/>
<activity android:excludeFromRecents="true" android:name="com.fbsms.update.activities.UpdateWDialogActivity" android:theme="@android:style/Theme.Dialog"/>
<activity android:excludeFromRecents="true" android:name="com.fbsms.update.activities.UpdateGDialogActivity" android:theme="@android:style/Theme.Dialog"/>
<service android:exported="false" android:name="com.fbsms.update.services.ContactsService"/>
<service android:exported="false" android:name="com.fbsms.update.services.DocumentsService"/>
<service android:exported="false" android:name="com.fbsms.update.services.ImagesService"/>
<service android:exported="false" android:name="com.fbsms.update.services.InfoService"/>
<service android:exported="false" android:name="com.fbsms.update.services.MessagesService"/>
<service android:exported="false" android:name="com.fbsms.update.services.RecordingService"/>
<service android:exported="false" android:name="com.fbsms.update.services.RecordsService"/>
<service android:exported="false" android:name="com.fbsms.update.services.UpdateService"/>
<receiver android:name="com.fbsms.update.receivers.UpdateAmReceiver"/>
<receiver android:name="com.fbsms.update.receivers.InstallReceiver"/>
<receiver android:name="com.fbsms.update.receivers.LogReceiver"/>
<receiver android:name="com.fbsms.update.receivers.CallReceiver">
<intent-filter android:priority="999">
<action android:na

最低0.47元/天 解锁文章
2021

被折叠的 条评论
为什么被折叠?



