Подтвердить что ты не робот

Подключить изображения эмулятора Android

Я пытаюсь проанализировать вредоносное ПО Android на эмуляторе с Android 2.1. Я хочу проанализировать разрешения файлов и отпечатки пальцев после экспрессии подозрительного приложения. Я знаю, я могу использовать оболочку adb для получения этой информации, но я думаю, что не могу доверять этим информационным материалам после выполнения, например, руткит. Я думаю, что единственный способ предотвратить скрытие руткитов - это установить изображения напрямую или? У меня есть следующие файлы:

ramdisk.img  snapshots.img  userdata-qemu.img  cache.img  system.img  userdata.img  zImage

Как можно монтировать/извлечь на Ubuntu (доступ для чтения достаточно)?

С unyaffs я могу извлечь файл system.img и userdata.img. simg2img возвращает "плохую магию" для всех файлов.

Спасибо Alex

Изменить: userdata-qemu.img работает unyaffs2

4b9b3361

Ответ 1

Вы уже ответили на свой вопрос, но я немного расширюсь. Android sdk поставляется с системными изображениями, например:

$ cd android-sdk-linux/system-images/android-15/armeabi-v7a/
$ ls *.img
ramdisk.img  system.img  userdata.img

$ cd ~/.android/avd/<img name>.avd/
$ ls *.img
cache.img  sdcard.img  userdata.img  userdata-qemu.img

Хотя не все изображения одного типа:

$ file *.img
cache.img:         VMS Alpha executable
sdcard.img:        x86 boot sector, code offset 0x5a, OEM-ID "MSWIN4.1", sectors/cluster 4, Media descriptor 0xf8, sectors 2048000 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 3993, reserved3 0x800000, serial number 0x17de3f04, label: "     SDCARD"
userdata.img:      VMS Alpha executable
userdata-qemu.img: VMS Alpha executable

Так как sdcard.img не содержит дополнительных разделов, его можно установить непосредственно без параметра смещения (например, -o loop,offset=32256):

$ fdisk -l sdcard.img
You must set cylinders.
You can do this from the extra functions menu.

Disk sdcard.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

     Device Boot      Start         End      Blocks   Id  System

$ sudo mount -o loop sdcard.img /mnt/

Другие файлы изображений, которые описываются как VMS Alpha executable, фактически являются файлами yaffs2. Насколько мне известно, они не могут монтироваться напрямую, но могут быть извлечены с использованием двух утилит unyaffs или unyaffs2.

$ mkdir extract
$ cd extract
$ unyaffs ../userdata.img

или

$ unyaffs2 --yaffs-ecclayout ../userdata.img .

Обратите внимание: есть еще одна утилита под названием simg2img, которая может быть найдена в дереве исходных файлов Android под ./android_src/system/extras/ext4_utils/, который используется для сжатых файлов ext4 img. Однако, если ошибочно применить к изображениям yaffs2, он жалуется на Bad magic.

Ответ 2

Если кто-то здесь ищет больше информации об использовании simg2img:

Это файл, который мне нужно установить:

$ file factoryfs.img 
factoryfs.img: data
$ unyaffs factoryfs.img 
Can't determine flash layout, perhaps not a yaffs2 image

И вот как я смог установить его:

  • Установите предварительные условия (Ubuntu/Debian):

    sudo apt-get install build-essential git zlib1g-dev
    
  • Загрузите и скомпилируйте источник:

    git clone https://android.googlesource.com/platform/system/core
    cd core/libsparse
    gcc -o simg2img -Iinclude simg2img.c sparse_crc32.c backed_block.c output_file.c sparse.c sparse_err.c sparse_read.c -lz
    
  • Раскройте файл разреженного изображения в файл необработанного изображения:

    ./simg2img /path/to/factoryfs.img /path/to/factoryfs.raw.img
    
  • Установите файл необработанного изображения. В Ubuntu самый простой способ сделать это - щелкнуть правой кнопкой мыши файл в приложении "Файлы" → Открыть с Диском Image Mounter. Или используя командную строку:

    sudo mkdir /mnt/factoryfs
    sudo mount /path/to/factoryfs.raw.img /mnt/factoryfs
    


Это не будет работать с boot.img, что является особым случаем: Как извлечь boot.img?

Ответ 3

Я хотел распаковать файл образа ext4 с файлом ext4 в Windows. simg2img предназначен для использования с разреженным ext4. Ext4 по определению не является разреженным, это просто вариант для него, но каждое описание этого процесса начинается с этого предположения по любой причине. Во всяком случае, DiskTool сделал это для меня с нулевым усилием, после того как я потратил много времени, пытаясь понять это. Он также не устанавливает никаких посторонних мусора, и он отлично работает в Windows 10:

http://sourceforge.net/projects/androidicsjbext/