2012-07-25 135 views
12

我试图用Android 2.1在模拟器上分析Android恶意软件。我想分析可疑应用程序执行后的文件权限和指纹。我知道,我可以使用adb shell来获取这些信息,但是我认为我不能相信执行后的信息。一个rootkit。 我认为防止rootkit隐藏的唯一方法是直接安装图像或? 我有以下文件:安装Android模拟器图像

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

如何才能安装/ Ubuntu上提取(读访问就够了)?

使用unyaffs我可以提取system.img和userdata.img文件。 simg2img对所有文件返回“不好的魔法”。

感谢亚历克斯

编辑:用户数据,qemu.img工作unyaffs2

回答

15

你已经回答了你自己的问题,但我会扩大一点。 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/ 

的其他图像文件,其被描述为其实就是yaffs2文件。据我所知,它们不能直接安装,但可以使用两个工具unyaffsunyaffs2进行提取。

$ 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

7

如果有人在这里结束了寻找更多的信息,对使用simg2img

这是我需要安装文件:

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

这就是我如何能够安装它:

  1. 安装的先决条件(Ubuntu的/ Debian的):

    sudo apt-get install build-essential git zlib1g-dev 
    
  2. 下载并编译来源:

    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 
    
  3. 解压缩稀疏图像文件到原始图像文件:

    ./simg2img /path/to/factoryfs.img /path/to/factoryfs.raw.img 
    
  4. 山的原始图像文件。在Ubuntu中,最简单的方法是通过右键单击文件应用程序中的文件→打开Disk Image Mounter。或者使用命令行:

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


这不会boot.img的工作,这是一个特殊情况: How to extract boot.img?

1

我想解压缩非稀疏ext4的图像Windows上的文件。 simg2img适用于稀疏的ext4。根据定义,Ext4不是稀疏的,这只是一个选项,但对于这个过程的每一个描述都是以这个假设为出发点。无论如何,在我浪费了大量时间来解决这个问题之后,DiskTool为我做了零工作。它不会安装任何无关垃圾,并且它在Windows 10上运行良好:

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