0

我正在研究安卓手机取证。我想使用 open() 和 read() linux 调用访问 android 手机内部存储器。我使用 NDK 在 c 中实现了这些调用。这是我的本机 C 代码:

jint fd;
jlong ReadMemory(jbyte* buf, jint bufflength){

    jlong size=0;
    system("su");
    fd=open("/dev/block/mmcblk0",O_RDONLY);
    size=read(fd,buf,bufflength);
    return size;//fd;

}

所以当我试图打开内存时,fd 得到了 -1 的值。请帮助我克服这种情况。

4

1 回答 1

0

这是一个文件系统特殊块设备。您可以从系统内部(在设备上,在外壳中)读取它。您可以使用 Linux 命令:

cat /dev/block/mmcblk0 | gzip > /emmc/copy

要复制整个文件系统,使用 gzip 对其进行压缩,然后将挂载的 /emmc 文件夹放入名为“copy”的文件中。

您可以选择压缩图像的文件夹和文件名。请注意,在 700MHz 设备上,读取和压缩整个文件系统可能需要很长时间(几个小时)。

于 2013-10-31T02:08:02.597 回答