[17:54:14 796] INFO [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:1114) - stat64 pathname=/data/system, LR=RX@0x1201990d[libksse.so]0x1990d [17:54:14 798] INFO [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:1114) - stat64 pathname=/data/data/, LR=RX@0x1201990d[libksse.so]0x1990d [17:54:14 798] INFO [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:1114) - stat64 pathname=/data/data/com.android.shell, LR=RX@0x1201990d[libksse.so]0x1990d [17:54:14 799] INFO [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:1114) - stat64 pathname=/data/system/install_sessions, LR=RX@0x1201990d[libksse.so]0x1990d [17:54:14 799] INFO [com.github.unidbg.linux.ARM32SyscallHandler] (ARM32SyscallHandler:1114) - stat64 pathname=/data/data/com.google.android.webview, LR=RX@0x1201990d[libksse.so]0x1990d JNIEnv->FindClass(java/lang/String) was called from RX@0x12037b87[libksse.so]0x37b87 JNIEnv->GetMethodID(java/lang/String.<init>([BLjava/lang/String;)V) => 0x782c535e was called from RX@0x12037b9d[libksse.so]0x37b9d JNIEnv->NewByteArray(19) was called from RX@0x12037bb3[libksse.so]0x37bb3 JNIEnv->SetByteArrayRegion([B@0x00000000000000000000000000000000000000, 0, 19, RW@0x12223040) was called from RX@0x12037bc7[libksse.so]0x37bc7 JNIEnv->NewStringUTF("utf-8") was called from RX@0x12037bd5[libksse.so]0x37bd5 JNIEnv->NewObjectV(class java/lang/String, <init>([B@0x6e6e6e7c6e6e6e7c6e6e6e7c6e6e6e7c6e6e6e, "utf-8") => "nnn|nnn|nnn|nnn|nnn") was called from RX@0x12018283[libksse.so]0x18283 jniCommand call result: nnn|nnn|nnn|nnn|nnn
居然跟Frida hook 的结果不一样!返回的结果,同样是通过竖杠分割的五部分,但每部分都是nnn。但是通过 INFO 信息可知,存在对五个文件夹的访问,具体库函数是stat64。它是用于获取文件属性的系统调用
1
intstat(constchar *path, struct stat *buf);
stat 结构体如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
structstat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for file system I/O */ blkcnt_t st_blocks; /* number of 512B blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ };