Android Phone Forensic Analysis – Unleash Hidden Evidence

2024-02-28 10:20

本文主要是介绍Android Phone Forensic Analysis – Unleash Hidden Evidence,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载地址:http://www.dataforensics.org/android-phone-forensics-analysis/

ANDROID FILE SYSTEMS

There is no singularly defined file system for Android. Android is developed on Linux kernel and Linux supports many file systems. Each file system are the implementation of VFS (Virtual File System). VFS is the abstract layer of Kernel through which an application’s file and directory operations flows. Each of the file system has separate Kernel module that supports operations. Hence adding a new file system means adding a new kernel module. This implies that Kernel configuration file defines which all file systems should be compiled and hence files systems that are supported by Android varies with devices.
The Android File Systems that are supported by Android Phones can be classified as flash memory file systems and media based file systems. Let’s proceed with Android Phone Forensics:

FLASH MEMORY ANDROID FILE SYSTEMS:

  1. YAFFS2 (Yet Another Flash File System V2)
    It was the default AOSP (Android Open Source Project) flash file system for kernel version 2.6.32. This file system is not supported in the newer kernel versions. But mobile vendors continues support for this file system.
  2. JFFS2 (The Journal Flash File System V2)
    Since Ice Cream Sandwich it is the default flash file system for the AOSP kernels.
  3. F2FS (Flash-Friendly File System)
    An Open Source file Linux system introduced by Samsung
  4. exFAT (extended File Allocation Table)
    It’s the proprietary file system of Microsoft for flash memories. It is not a part of standard Linux Kernel due to licensing requirements.

MEDIA-BASED ANDROID FILE SYSTEMS:

  1. EXT2 / EXT3 / EXT4 (Extended File System)
    It is the standard Linux File system. It is often used as internal memory file system instead of YAFFS2 & JFFS2.
  2. MSDOS
    The FAT12, FAT16 & FAT32 file systems
  3. VFAT
    It is not actually a file system, which are extensions to FAT12, FAT16 & FAT32

ROOTING ANDROID DEVICE

Rooting is the process of attain privileged control of an android devices. It gives yourself the root permission on your device. Rooting Android device helps to overcome the limitations of the devices put by the manufacturers. With a rooted phone we can run apps that require certain system access, flash custom ROMs which adds more features. Rooting can be done through command prompt development interface ADB or using special rooting applications. We can’t access the system files and database files of an un-rooted device as they are encrypted. So analysis of Android systems files are possible only if the device is rooted.

ANDROID FILE SYSTEM STRUCTURE: PARTITIONS

Android uses more than one file system and multiple partitions to organize files and folders in the device. In the file system partitions are represented by directories. There are mainly six partitions used by android devices. They are boot, system, recovery, data, cache, misc. Each of these partitions has its own functionalities. There may be other partitions which differ in each model such as sdcard, sd-ext.

android phone forensics

android mobile forensics
We can check which all partitions are available in a device along with its total, used and free size using adb command in the below image.

android phone forensics analysis

  1. /boot
    It is the boot partition of the android device which includes the android kernel and ramdisk. The device cannot boot without this partition. If we wipe this partition we need to install new ROM which includes /boot partition to boot the system again.
  2. /system
    This partition contain the entire OS including Android GUI and pre-installed system applications. We can enter the recovery or boot loader mode even if we wipe this partition.
  3. /recovery
    This partition is specially designed for backup purpose. It is considered as an alternative boot partition that lets the device to boot in a recovery console.
  4. /data
    This partition is to store user data. It contain all the user data like sms, contacts, settings and all data related to installed applications. When you are doing a factory reset, it actually wipe out data partition.
  5. /cache
    Cache partition stores frequently accessed application and data components. Even if we wipe this partition, it gets automatically rebuilt as you continue using the device.
  6. /misc
    This partition contains miscellaneous system settings. It includes hard ware settings, USB configuration etc. If we wipe this partition, device’s features will not function normally.
  7. /sdcard
    This partition is for the SD card, not for the internal memory. It is used to store any type of data such as media, documents, ROM etc. The SD card can be internal or external SD card depending on the device.
  8. /sd-ext
    This partition is commonly used by custom ROMs and not a standard Android partition. It is an additional partition on SD card that act as data partition in some custom ROMs that have the features like app2sd to get additional storage for installing their apps.
ANDROID LOGS : File Location & Related Artifact Forensic Analysis

The default location of Android log file can be find at /dev/log. We can see the logs if we execute logcat command from terminal inside Android. The logcat command executed using ADB.exe and dumped into text file are shown below. The command to export logs into PC using adb.exe:

adb logcat -v time > E:\log.txt

analysis android mobile forensics

ANDROID COMMON APPLICATION ANALYSIS

Few of most commonly using android applications selected here for analysis are:

  1. Google Chrome
  2. Whatsapp
  3. Android Contacts
  4. Telephony
  5. Bluetooth
  6. WiFi

GOOGLE CHROME

Location: \data\com.android.chrome\app_chrome\Default


DB FILE: COOKIES

  1. Table: cookies – Contains cookiesandroid phone forensics

DB FILE: HISTORY

  1. Table: keyword_search_terms – Contains keyword searched
    android file system
  2. Table: urls – Contains URLs of visited pages
    android file structure

DB FILE: TOP SITES

  1. Table: thumbnails – Contains URLs of websites which are directly entered in tab
    WHATSAPP
    Location: \data\com.whatsapp\databases

DB FILE: AXOLOTL.DB

  1. Table: identities – Contains the contacts (phone number) to which the chat is done
    rooting android phone

DB FILE: MSGSTORE.DB

  1. Table: messages – Contains all messages (both group and individual)
    • The status column indicates message status values (applicable if there atleast single contact in a group satisfies these):
      1. 0 – received message
      2. 13 – sent message seen (blue tick)
      3. 5 – sent message unseen (double tick but not blue tick)
      4. 4 – sent message to Whatsapp server, but not received in recipient Whatsapp app(single tick)
      5. 6 – sent/received calls (key_from_me column specifies whether sent or received call)
    • key_from_me column has values 0 or 1:
      • Value 0 – Not from me (contact’s)
      • Value 1- From me (WhatsApp current user)
    • recipient_count column has 2 kind of values : value 0 for individual chats or shows group member count if it is message in a group
    • read_device_timestamp is empty if message is not seen by everyone in a group
    • media_name column contains name of the media storing in Whatsapp folder, which are sent
    • media_name column contains caption of the media we provided during sending
    • media_url gives location of the media in WhatsApp server
      android log file location
  2. Table: chat_list – Contains all contacts (subject column is empty) and groups (has value in subject column) where chat has been done (both sent & receive).
    • Group has column creation showing creation date
    • message_table_id column field values maps to docid column values in the messages_fts_content table (contains all messages), which says last message (sent/received).
      android phone forensicsandroid phone forensics analysis
  3. Table: group_participants – Contains participants in the group
    • gjid colum contains group id
    • jid column contains group participants id (creator does not has this field)
    • admin colum has values 0 or 1:
      • Value 0 – user
      • Value 1 – admin
        android file structure

DB FILE: WA.DB

  1. Table: wa_contacts – Contains contact’s name display name, phone number and their status
    android phone forensics
    Whatsapp stores profile picture in the location \data\com.whatsapp\files\Avatars with extension [.j]. These can be renamed with extension [.jpg], the images will appear. The files are identified by name which are phone numbers.
    android file system & structure

CONTACTS
Location: data\com.android.providers.contacts\databases


DB FILE: CONTACTS2.DB

  1. Table: data – Contains phone number and name
  2. Table: sync_state – Contains which all accounts has been synced with phone
    DB FILE: CONTACTS2.DB
  3. Table: calls – Contain full call log details.
    calls

    • The column ‘duration’ stores the duration of the call in seconds.
    • ‘type’ column:
      • 1 for incoming call
      • 2 for outgoing call
      • 2 with ‘duration’=0 for outgoing missed call.
      • 3 for incoming missed call
  4. Table: contacts – Contain contact details in the phone and SIM
    Table contacts

    • times_contacted indicate how many times contacted to that number and last_time_contacted is the time stamp of recent contact.
    • has_phone_number field will be 1 if the phone number is provided while saving the contact and else it will be 0.
    • photo_file_id value indicate which photo is given to the contact. The photo with that file name can be obtained from com.android.providers.contacts\files\photos.
    • The photo file details can be found in table photo_files.
      rooting android phone
      img19
    • custom_ringtone indicate the URI of the ringtone for a contact if assigned.
      img20
    • indicate_phone_or_sim_contact column will be -1 if the contact is saved in phone memory and will be 1 if it is saved in SIM memory.
      img21
  5. Table: raw_contacts – Contains a person’s data coming from a single account type and account name.
    1. The column deleted will be 0 for non-deleted contacts and 1 for deleted contacts.
      android mobile forensics
      TELEPHONY
      Location: data\com.android.providers.telephony\databases

DB FILE: TELEPHONY.DB

  1. Table: siminfo – Contains sims which have been inserted

DB FILE: MMSSMS.DB

  1. Table: siminfo – Contains service provider, messages, phone numbers and roaming status
  2. Table: accounts – Contains which all accounts are created – Lcal phone acc., SIM acc., Google, Whatsapp, Viber etc
    android mobile forensics
  3. Table: canonical_addresses – Contains all numbers through which SMS contact took place
    android phone forensics
  4. Table: sms – Contains phone number, size timestamp, message body, service center etc.
    img25

BLUETOOTH

Location: data\com.android.bluetooth\databases


DB FILE: SHARE.DB

  1. Table: btopp – Contains information about Bluetooth transfer
    • Column uri shows the URI of the transferred files
    • Column hint shows the name of the file transferred
    • Column _data shows the location of the received file stored
    • Column direction says whether the file is sent/received and it has 2 values – 0 and 1:
      • Value 0 – Sent
      • Value 1 – Received
    • Column destination shows MAC address of Bluetooth device connected
      android phone forensics

WIFI

Location: \data\misc\bluetooth


FILE NAME: DYNAMIC_AUTO_PAIRING.CONF

The dynamic_auto_pairing.conf file contains basic information about the phone and required details about the WiFi networks which are connected. WiFi details includes:

1. SSID name
2. PSK in plain text
3. Connection/ encryption type
4. Connection priority

这篇关于Android Phone Forensic Analysis – Unleash Hidden Evidence的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/755209

相关文章

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到