我正在研究Android手机取证。我想使用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值。请帮助我克服这种情况。
答案 0 :(得分:0)
这是一个文件系统特殊块设备。您可以从系统内部(在设备上,在shell中)读取它。您可以使用Linux命令:
cat /dev/block/mmcblk0 | gzip > /emmc/copy
复制整个文件系统,使用gzip压缩它并将已安装 / emmc文件夹放入名为“copy”的文件中。
您可以选择压缩图像的文件夹和文件名。请注意,在700MHz设备上,读取和压缩整个文件系统可能需要很长时间(几个小时)。