演示视频放在阿里云云盘里 链接:https://www.aliyundrive.com/s/dCXoj1tRnV5
花了一个周末两天时间,完成了基于Jnitrace日志自动生成unidbg代码的功能(终于实现了大约1月前在群里吹的牛,自动补Unidbg代码)
可以自动生成本项目中的四个文件
XXService
业务逻辑代码
XXServiceWorker
多线程Worker
XXController
对外暴露http接口访问
XXTest
单元测试文件
我是用java写的,会跟这个项目集成度更好,如果是个人也想基于这个思路自己写,建议用python,会更好实现些。
难点主要在于 XXService
业务逻辑代码。分别以MT和PDD的两份为例,只展示核心业务逻辑部分
注意我只补过美团,所以相比较来说,美团基本上可用性更高,PDD可能还缺大部分,整体解析逻辑都可以了,补全也问题不大,就是个时间问题了
为了让我的付出有点意义,以及获得大家的认同,所以不打算无偿开源。准备三选一,满足任何一个条件都可。
注意,三选一条件不是绑架,本意是获得大家的认同及传播,同时技术难点几乎没有,原理也说了,就是基于jnitrace的log做的,纯粹是耗费时间而已。如果有大佬一激动手撸一个并无条件开源那更好。也欢迎。
MT.java
package com.anjia.unidbgserver.service;
import com.anjia.unidbgserver.config.UnidbgProperties;
import com.anjia.unidbgserver.utils.TempFileUtils;
import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Emulator;
import com.github.unidbg.EmulatorBuilder;
import com.github.unidbg.Module;
import com.github.unidbg.arm.backend.DynarmicFactory;
import com.github.unidbg.file.FileResult;
import com.github.unidbg.file.IOResolver;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver;
import com.github.unidbg.linux.android.dvm.*;
import com.github.unidbg.linux.android.dvm.api.ApplicationInfo;
import com.github.unidbg.linux.android.dvm.array.ArrayObject;
import com.github.unidbg.linux.android.dvm.array.ByteArray;
import com.github.unidbg.linux.android.dvm.wrapper.DvmInteger;
import com.github.unidbg.linux.android.dvm.wrapper.DvmLong;
import com.github.unidbg.linux.file.ByteArrayFileIO;
import com.github.unidbg.linux.file.SimpleFileIO;
import static com.anjia.unidbgserver.utils.PrintUtils.*;
import com.github.unidbg.memory.Memory;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.util.*;
@Slf4j
public class MeiTuanService extends AbstractJni implements IOResolver {
private final AndroidEmulator emulator;
private final VM vm;
private final Module module;
private final static String BASE_MEITUAN_PATH = "data/apks/meituan";
private final static String MEITUAN_APK_PATH = BASE_MEITUAN_PATH + "/meituan.apk";
private final UnidbgProperties unidbgProperties;
// private final static String LIBTT_ENCRYPT_LIB_PATH = "data/apks/so/libttEncrypt.so";
@SneakyThrows MeiTuanService(UnidbgProperties unidbgProperties) {
this.unidbgProperties = unidbgProperties;
// 创建模拟器实例,要模拟32位或者64位,在这里区分
EmulatorBuilder<AndroidEmulator> builder = AndroidEmulatorBuilder.for32Bit().setProcessName("com.xxxxx");
// 动态引擎
if (unidbgProperties.isDynarmic()) {
builder.addBackendFactory(new DynarmicFactory(true));
}
emulator = builder.build();
// 模拟器的内存操作接口
final Memory memory = emulator.getMemory();
// 设置系统类库解析
memory.setLibraryResolver(new AndroidResolver(23));
// 创建Android虚拟机
// vm = emulator.createDalvikVM(); // 只创建vm,用来读so,不加载apk
vm = emulator.createDalvikVM(TempFileUtils.getTempFile(MEITUAN_APK_PATH));
// 设置是否打印Jni调用细节
vm.setVerbose(unidbgProperties.isVerbose());
vm.setJni(this);
emulator.getSyscallHandler().addIOResolver(this);
// 加载libttEncrypt.so到unicorn虚拟内存,加载成功以后会默认调用init_array等函数,这是直接读so文件
// DalvikModule dm = vm.loadLibrary(TempFileUtils.getTempFile(LIBTT_ENCRYPT_LIB_PATH), false);
// 这是搜索加载apk里的模块名,比如 libguard.so 那么模块名一般是guard
DalvikModule dm = vm.loadLibrary("模块名", false);
// 手动执行JNI_OnLoad函数
dm.callJNI_OnLoad(emulator);
// 加载好的libttEncrypt.so对应为一个模块
module = dm.getModule();
dm.callJNI_OnLoad(emulator);
// TTEncryptUtils = vm.resolveClass("com/bytedance/frameworks/core/encrypt/TTEncryptUtils");
}
/**
* unidbg 模拟调用
*
* @param param 入参
* @return 结果
*/
public Object doWork(Object param) {
return null;
}
@Override public DvmObject<?> callStaticObjectMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
printArgs(vm,"callStaticObjectMethodV", signature, vaList);
switch (signature) {
case "android/os/SystemProperties->get(Ljava/lang/String;)Ljava/lang/String;":
//时间:31595 ms,参数:{jstring=hex:726f2e6275696c642e6964, string:ro.build.id},样例:GenericRequest
return new StringObject(vm, "GenericRequest");
//时间:33124 ms,signature:android/os/SystemProperties->get(Ljava/lang/String;)Ljava/lang/String;,参数:{jstring=hex:706572736973742e7379732e7573622e636f6e666967, string:persist.sys.usb.config},样例:adb
//时间:34114 ms,signature:android/os/SystemProperties->get(Ljava/lang/String;)Ljava/lang/String;,参数:{jstring=hex:7379732e7573622e636f6e666967, string:sys.usb.config},样例:adb
//时间:35052 ms,signature:android/os/SystemProperties->get(Ljava/lang/String;)Ljava/lang/String;,参数:{jstring=hex:7379732e7573622e7374617465, string:sys.usb.state},样例:adb
case "com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;":
//时间:6242 ms,参数:{},样例:jobject : 0x19
return new StringObject(vm, "jobject : 0x19");
//时间:13872 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x25
//时间:16987 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x19
//时间:18955 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x11
//时间:20948 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x15
//时间:27523 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x19
//时间:28997 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x11
//时间:36537 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x11
//时间:37502 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x59
//时间:39271 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x29
//时间:43497 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x31
//时间:44908 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x59
//时间:48264 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x41
//时间:48313 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:61200 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x15 { java/io/File }
//时间:69707 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:69830 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:69915 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:69962 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:70000 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70046 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:
//时间:70095 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:70145 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70194 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70347 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70386 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70431 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:
//时间:70468 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70512 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:
//时间:70550 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
//时间:70594 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:70642 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:
//时间:70781 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x51
//时间:71877 ms,signature:com/meituan/android/common/mtguard/NBridge->getClassLoader()Ljava/lang/ClassLoader;,参数:{},样例:jobject : 0x55
case "java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;":
//时间:9722 ms,参数:{jint=1, jobjectArray=0x0},样例:com.sankuai.meituan
return new StringObject(vm, "com.sankuai.meituan");
//时间:18395 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=4, jobjectArray=0x0},样例:ms_com.sankuai.meituan
//时间:20344 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=5, jobjectArray=0x0},样例:ppd_com.sankuai.meituan.xbt
//时间:22080 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=2, jobjectArray=0x0},样例:
//时间:28530 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=6, jobjectArray=0x0},样例:5.2.10
//时间:29961 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=3, jobjectArray=0x0},样例:jobject : 0x0 { de/robv/android/xposed/XposedBridge }
//时间:38354 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=3, jobjectArray=0x0},样例:
//时间:39312 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=8, jobjectArray=0x0},样例:
//时间:47169 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=40, jobjectArray=0x0},样例:
//时间:50520 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=8, jobjectArray=0x0},样例:
//时间:90586 ms,signature:java/lang/Class->main2(I[Ljava/lang/Object;)Ljava/lang/Object;,参数:{jint=32, jobjectArray=0x0},样例:
case "java/lang/Long->valueOf(J)Ljava/lang/Long;":
//时间:41495 ms,参数:{jlong=1631241713924},样例:jobject : 0x89 { java/lang/Long }
return DvmLong.valueOf(vm, vaList.getLongArg(0));
//时间:59660 ms,signature:java/lang/Long->valueOf(J)Ljava/lang/Long;,参数:{jlong=1631241725638},样例:jobject : 0x85 { java/lang/Long }
case "java/lang/String->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;":
//时间:43624 ms,参数:{jstring=hex:25313178, string:%11x, jobjectArray=0x99},样例:17bcd953904
return new StringObject(vm, String.format(vaList.getObjectArg(0).getValue().toString(), vaList.getIntArg(1)));
//时间:87572 ms,signature:java/lang/String->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;,参数:{jstring=hex:25313178, string:%11x, jobjectArray=0x95},样例:17bcd9566c6
case "java/lang/System->getProperty(Ljava/lang/String;)Ljava/lang/String;":
//时间:15105 ms,参数:{jstring=hex:687474702e70726f7879486f7374, string:http.proxyHost},样例:jobject : 0x0 { de/robv/android/xposed/XposedBridge }
return new StringObject(vm, "jobject : 0x0 { de/robv/android/xposed/XposedBridge }");
//时间:16512 ms,signature:java/lang/System->getProperty(Ljava/lang/String;)Ljava/lang/String;,参数:{jstring=hex:68747470732e70726f7879486f7374, string:https.proxyHost},样例:jobject : 0x0 { de/robv/android/xposed/XposedBridge }
case "java/util/UUID->randomUUID()Ljava/util/UUID;":
//时间:40169 ms,参数:{},样例:jobject : 0x61
return vm.resolveClass("java/util/UUID").newObject(UUID.randomUUID());
//时间:51574 ms,signature:java/util/UUID->randomUUID()Ljava/util/UUID;,参数:{},样例:jobject : 0x69
default:
return super.callStaticObjectMethod(vm, dvmClass, signature, vaList);
}
}
@Override public long callStaticLongMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
printArgs(vm,"callStaticLongMethodV", signature, vaList);
switch (signature) {
case "java/lang/System->currentTimeMillis()J":
//时间:41080 ms,参数:{},样例:1631241713924
return System.currentTimeMillis();
//时间:53598 ms,signature:java/lang/System->currentTimeMillis()J,参数:{},样例:1631241725638
default:
return super.callStaticLongMethodV(vm, dvmClass, signature, vaList);
}
}
@Override public int getIntField(BaseVM vm, DvmObject<?> dvmObject, String signature) {
switch (signature) {
case "android/content/pm/PackageInfo->versionCode:I":
//时间:27256 ms,样例:1100130207
return 1100130207;
default:
return super.getIntField(vm, dvmObject, signature);
}
}
@Override public DvmObject<?> getStaticObjectField(BaseVM vm, DvmClass dvmClass, String signature) {
switch (signature) {
case "android/os/Build$VERSION->RELEASE:Ljava/lang/String;":
//时间:35693 ms,样例:9
return new StringObject(vm, "9");
case "android/os/Build->BRAND:Ljava/lang/String;":
//时间:30368 ms,样例:xiaomi
return new StringObject(vm, "xiaomi");
case "android/os/Build->HARDWARE:Ljava/lang/String;":
//时间:31937 ms,样例:mt6765
return new StringObject(vm, "mt6765");
case "android/os/Build->MODEL:Ljava/lang/String;":
//时间:32233 ms,样例:Redmi 6A
return new StringObject(vm, "Redmi 6A");
case "android/os/Build->TAGS:Ljava/lang/String;":
//时间:35393 ms,样例:release-keys
return new StringObject(vm, "release-keys");
case "android/os/Build->TYPE:Ljava/lang/String;":
//时间:30675 ms,样例:user
return new StringObject(vm, "user");
default:
return super.getStaticObjectField(vm, dvmClass, signature);
}
}
@Override public DvmObject<?> getObjectField(BaseVM vm, DvmObject<?> dvmObject, String signature) {
switch (signature) {
case "android/content/pm/ApplicationInfo->sourceDir:Ljava/lang/String;":
//时间:24182 ms,样例:/data/app/com.sankuai.meituan-1POrADLXYch5YRE6dgT4FQ==/base.apk
return new StringObject(vm, "/data/app/com.sankuai.meituan-1POrADLXYch5YRE6dgT4FQ==/base.apk");
case "android/content/pm/PackageInfo->versionName:Ljava/lang/String;":
//时间:25833 ms,样例:DecodeJob
return new StringObject(vm, "DecodeJob");
default:
return super.getObjectField(vm, dvmObject, signature);
}
}
@Override public boolean callBooleanMethodV(BaseVM vm, DvmObject<?> dvmObject, String signature, VaList vaList) {
printArgs(vm,"callBooleanMethodV", signature, vaList);
switch (signature) {
case "0x35->canRead()Z":
//时间:11308 ms,参数:{},样例:false
return false;
case "java/lang/Object->canRead()Z":
//时间:69207 ms,参数:{},样例:false
return false;
default:
return super.callBooleanMethodV(vm, dvmObject, signature, vaList);
}
}
@Override public DvmObject<?> newObjectV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
printArgs(vm,"newObjectV", signature, vaList);
switch (signature) {
case "java/lang/String-><init>([BLjava/lang/String;)V":
//时间:8810 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x39},样例:jobject : 0x51
return super.newObjectV(vm, dvmClass, signature, vaList);
case "java/io/File-><init>(Ljava/lang/String;)V":
//时间:10812 ms,参数:{jstring=0x25},样例:jobject : 0x35
return dvmClass.newObject(vaList.getObjectArg(0).getValue().toString());
//时间:13051 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:64652e726f62762e616e64726f69642e78706f7365642e58706f736564427269646765, string:de.robv.android.xposed.XposedBridge, jbyteArray=0x21},样例:jobject : 0x41
//时间:14823 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:687474702e70726f7879486f7374, string:http.proxyHost, jbyteArray=0x31},样例:jobject : 0x59
//时间:16114 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:68747470732e70726f7879486f7374, string:https.proxyHost, jbyteArray=0x35},样例:jobject : 0x55
//时间:17671 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x39},样例:jobject : 0x51
//时间:19695 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x35},样例:jobject : 0x59
//时间:21435 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x31},样例:jobject : 0x55
//时间:23727 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2e73616e6b7561692e6d65697475616e, string:com.sankuai.meituan, jbyteArray=0x61},样例:jobject : 0x89
//时间:27991 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x35},样例:jobject : 0x51
//时间:29435 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x31},样例:jobject : 0x59
//时间:31292 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:726f2e6275696c642e6964, string:ro.build.id, jbyteArray=0x35},样例:jobject : 0x55
//时间:32828 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:706572736973742e7379732e7573622e636f6e666967, string:persist.sys.usb.config, jbyteArray=0x39},样例:jobject : 0x51
//时间:33801 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:7379732e7573622e636f6e666967, string:sys.usb.config, jbyteArray=0x35},样例:jobject : 0x59
//时间:34745 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:7379732e7573622e7374617465, string:sys.usb.state, jbyteArray=0x31},样例:jobject : 0x55
case "java/lang/Integer-><init>(I)V":
//时间:36110 ms,参数:{jint=0},样例:jobject : 0x29
return DvmInteger.valueOf(vm, vaList.getIntArg(0));
//时间:37401 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x39},样例:jobject : 0x51
//时间:38322 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x95
//时间:40201 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d7454656c6570686f6e794d616e61676572, string:com/meituan/android/common/locate/api/MtTelephonyManager, jbyteArray=0x49},样例:jobject : 0x69
//时间:41840 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:6d74675f6775617264, string:mtg_guard, jbyteArray=0x71},样例:jobject : 0x99
case "java/lang/Class-><init>(Landroid/content/Context;Ljava/lang/String;)V":
//时间:42265 ms,参数:{jstring=0x99, jobject=0x15 { java/lang/Object }},样例:jobject : 0x85
return super.newObjectV(vm, dvmClass, signature, vaList);
//时间:43044 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:25313178, string:%11x, jbyteArray=0xb9},样例:jobject : 0xd1
//时间:44600 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d744c6f636174696f6e4d616e61676572, string:com/meituan/android/common/locate/api/MtLocationManager, jbyteArray=0x51},样例:jobject : 0x79
//时间:46001 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x95
//时间:46612 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:6d74675f6775617264, string:mtg_guard, jbyteArray=0x81},样例:jobject : 0xa9
//时间:47030 ms,signature:java/lang/Class-><init>(Landroid/content/Context;Ljava/lang/String;)V,参数:{jstring=0xa9, jobject=0x21 { java/lang/Object }},样例:jobject : 0x95
//时间:49353 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x79},样例:jobject : 0x91
//时间:49393 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d74576966694d616e61676572, string:com/meituan/android/common/locate/api/MtWifiManager, jbyteArray=0x69},样例:jobject : 0x89
case "0x51-><init>([BLjava/lang/String;)V":
//时间:51357 ms,参数:{jstring=0xa1, jbyteArray=0x91},样例:jobject : 0xb9
return super.newObjectV(vm, dvmClass, signature, vaList);
//时间:51778 ms,signature:java/lang/Class-><init>(Landroid/content/Context;Ljava/lang/String;)V,参数:{jstring=0xb9, jobject=0x35 { java/lang/Object }},样例:jobject : 0xa5
//时间:64420 ms,signature:java/io/File-><init>(Ljava/lang/String;)V,参数:{jstring=0x25},样例:jobject : 0x35 { java/lang/Object }
case "0x25-><init>([BLjava/lang/String;)V":
//时间:74721 ms,参数:{jstring=0x45, jbyteArray=0x35},样例:jobject : 0x59 { java/lang/Object }
return super.newObjectV(vm, dvmClass, signature, vaList);
//时间:79694 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:25313178, string:%11x, jbyteArray=0xb5},样例:jobject : 0xd9
//时间:82023 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:82806 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x91
//时间:82962 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:83054 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83214 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x91
//时间:83280 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:83343 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83392 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83562 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x95
//时间:83615 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83667 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:83726 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83788 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:83839 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x95
//时间:83887 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:83936 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x79},样例:jobject : 0x91
//时间:84063 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x75},样例:jobject : 0x99
//时间:84323 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x71},样例:jobject : 0x99
//时间:85012 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge, jbyteArray=0x79},样例:jobject : 0x99
//时间:90542 ms,signature:java/lang/String-><init>([BLjava/lang/String;)V,参数:{jstring=hex:6a6176612e696f2e746d70646972, string:java.io.tmpdir, jbyteArray=0x39},样例:jobject : 0x59 { java/lang/Object }
default:
return super.newObjectV(vm, dvmClass, signature, vaList);
}
}
@Override public DvmObject<?> callObjectMethodV(BaseVM vm, DvmObject<?> dvmObject, String signature, VaList vaList) {
printArgs(vm,"callObjectMethodV", signature, vaList);
switch (signature) {
case "0x19->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:9345 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x31 { java/lang/Class }
return new StringObject(vm, "jobject : 0x31 { java/lang/Class }");
case "0x25->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:13957 ms,参数:{jstring=hex:64652e726f62762e616e64726f69642e78706f7365642e58706f736564427269646765, string:de.robv.android.xposed.XposedBridge},样例:jobject : 0x0 { de/robv/android/xposed/XposedBridge }
return new StringObject(vm, "jobject : 0x0 { de/robv/android/xposed/XposedBridge }");
//时间:18206 ms,signature:0x19->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x31 { java/lang/Class }
case "0x11->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:20156 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x39 { java/lang/Class }
return new StringObject(vm, "jobject : 0x39 { java/lang/Class }");
case "0x15->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:21895 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x35 { java/lang/Class }
return new StringObject(vm, "jobject : 0x35 { java/lang/Class }");
case "java/lang/Object->getPackageManager()Landroid/content/pm/PackageManager;":
//时间:22952 ms,参数:{},样例:jobject : 0x59
return new StringObject(vm, "jobject : 0x59");
case "0x59->getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;":
//时间:23953 ms,参数:{jstring=hex:636f6d2e73616e6b7561692e6d65697475616e, string:com.sankuai.meituan, jint=0},样例:jobject : 0x71 { android/content/pm/ApplicationInfo }
return new StringObject(vm, "jobject : 0x71 { android/content/pm/ApplicationInfo }");
//时间:25058 ms,signature:java/lang/Object->getPackageManager()Landroid/content/pm/PackageManager;,参数:{},样例:jobject : 0x49
case "0x49->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;":
//时间:25447 ms,参数:{jstring=, jint=0},样例:jobject : 0x51 { android/content/pm/PackageInfo }
return new StringObject(vm, "jobject : 0x51 { android/content/pm/PackageInfo }");
//时间:26521 ms,signature:java/lang/Object->getPackageManager()Landroid/content/pm/PackageManager;,参数:{},样例:jobject : 0x45
case "0x45->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;":
//时间:26888 ms,参数:{jstring=, jint=0},样例:jobject : 0x55 { android/content/pm/PackageInfo }
return new StringObject(vm, "jobject : 0x55 { android/content/pm/PackageInfo }");
//时间:28378 ms,signature:0x19->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x39 { java/lang/Class }
//时间:29813 ms,signature:0x11->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x35 { java/lang/Class }
//时间:38075 ms,signature:0x11->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x31 { java/lang/Class }
case "0x59->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:39018 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x79 { java/lang/Class }
return new StringObject(vm, "jobject : 0x79 { java/lang/Class }");
case "0x61->toString()Ljava/lang/String;":
//时间:40519 ms,参数:{},样例:jobject : 0x79
return new StringObject(vm, "jobject : 0x79");
case "0x29->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:40834 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d7454656c6570686f6e794d616e61676572, string:com/meituan/android/common/locate/api/MtTelephonyManager},样例:jobject : 0x41 { java/lang/Class }
return new StringObject(vm, "jobject : 0x41 { java/lang/Class }");
case "0x31->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:45458 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d744c6f636174696f6e4d616e61676572, string:com/meituan/android/common/locate/api/MtLocationManager},样例:jobject : 0x55 { java/lang/Class }
return new StringObject(vm, "jobject : 0x55 { java/lang/Class }");
//时间:46819 ms,signature:0x59->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x75 { java/lang/Class }
case "0x41->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:50140 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6c6f636174652f6170692f4d74576966694d616e61676572, string:com/meituan/android/common/locate/api/MtWifiManager},样例:jobject : 0x61 { java/lang/Class }
return new StringObject(vm, "jobject : 0x61 { java/lang/Class }");
case "0x51->loadClass(Ljava/lang/String;)Ljava/lang/Class;":
//时间:50181 ms,参数:{jstring=hex:636f6d2f6d65697475616e2f616e64726f69642f636f6d6d6f6e2f6d7467756172642f4e427269646765, string:com/meituan/android/common/mtguard/NBridge},样例:jobject : 0x71 { java/lang/Class }
return new StringObject(vm, "jobject : 0x71 { java/lang/Class }");
case "0x69->toString()Ljava/lang/String;":
//时间:52003 ms,参数:{},样例:jobject : 0x71
return new StringObject(vm, "jobject : 0x71");
//时间:85743 ms,signature:0x15->loadClass(Ljava/lang/String;)Ljava/lang/Class;,参数:{jstring=0x45},样例:jobject : 0x39 { java/lang/Class }
default:
return super.callObjectMethodV(vm, dvmObject, signature, vaList);
}
}
@SneakyThrows @Override
public FileResult resolve(Emulator emulator, String pathname, int oflags) {
switch (pathname) {
default:
printFileResolve(pathname);
return null;
}
}
public void destroy() throws IOException {
emulator.close();
}
}
PDD.java
import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Emulator;
import com.github.unidbg.Module;
import com.github.unidbg.file.FileResult;
import com.github.unidbg.file.IOResolver;
import com.github.unidbg.linux.android.dvm.*;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.util.UUID;
import static com.anjia.unidbgserver.utils.PrintUtils.printArgs;
import static com.anjia.unidbgserver.utils.PrintUtils.printFileResolve;
/**
* @author AnJia
* @since 2021-07-26 17:42
*/
@Slf4j
public class PDD extends AbstractJni implements IOResolver {
private AndroidEmulator emulator;
private VM vm;
private Module module;
@Override public DvmObject<?> callStaticObjectMethodV(BaseVM vm, DvmClass dvmClass, String signature, VaList vaList) {
printArgs(vm, "callStaticObjectMethodV", signature, vaList);
switch (signature) {
case "java/lang/String->randomUUID()Ljava/util/UUID;":
//时间:4634 ms,参数:{},样例:jobject : 0x19
return new StringObject(vm, "jobject : 0x19");
//时间:4850 ms,signature:java/lang/String->randomUUID()Ljava/util/UUID;,参数:{},样例:jobject : 0x11
case "java/net/NetworkInterface->getNetworkInterfaces()Ljava/util/Enumeration;":
//时间:33381 ms,参数:{},样例:jobject : 0x95
return new StringObject(vm, "jobject : 0x95");
case "java/util/UUID->randomUUID()Ljava/util/UUID;":
//时间:4816 ms,参数:{},样例:jobject : 0x11
return vm.resolveClass("java/util/UUID").newObject(UUID.randomUUID());
default:
return super.callStaticObjectMethod(vm, dvmClass, signature, vaList);
}
}
@Override public int getIntField(BaseVM vm, DvmObject<?> dvmObject, String signature) {
switch (signature) {
case "java/util/Enumeration->densityDpi:I":
//时间:30565 ms,样例:440
return 440;
case "java/util/Enumeration->widthPixels:I":
//时间:31271 ms,样例:1080
return 1080;
case "java/util/Enumeration->heightPixels:I":
//时间:31966 ms,样例:2160
return 2160;
default:
return super.getIntField(vm, dvmObject, signature);
}
}
@Override public DvmObject<?> getStaticObjectField(BaseVM vm, DvmClass dvmClass, String signature) {
switch (signature) {
case "android/content/Context->TELEPHONY_SERVICE:Ljava/lang/String;":
//时间:2968 ms,样例:
return new StringObject(vm, "");
//时间:14668 ms,signature:android/content/Context->TELEPHONY_SERVICE:Ljava/lang/String;,样例:
case "android/content/Context->WINDOW_SERVICE:Ljava/lang/String;":
//时间:26781 ms,样例:
return new StringObject(vm, "");
case "android/content/Intent->ACTION_BATTERY_CHANGED:Ljava/lang/String;":
//时间:86293 ms,样例:
return new StringObject(vm, "");
case "android/os/Build->SERIAL:Ljava/lang/String;":
//时间:1518 ms,样例:unknown
return new StringObject(vm, "unknown");
//时间:84198 ms,signature:android/os/Build->SERIAL:Ljava/lang/String;,样例:
case "android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;":
//时间:9624 ms,样例:
return new StringObject(vm, "");
//时间:9730 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:15560 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:21954 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:24841 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:26800 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:28112 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:30801 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:31999 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:34759 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:36016 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:38406 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:39271 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:42172 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:44843 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:58291 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:58340 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:58831 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:59335 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:63406 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:64093 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
//时间:82737 ms,signature:android/provider/Settings$Secure->ANDROID_ID:Ljava/lang/String;,样例:
case "java/lang/String->ANDROID_ID:Ljava/lang/String;":
//时间:1719 ms,样例:
return new StringObject(vm, "");
//时间:1904 ms,signature:java/lang/String->ANDROID_ID:Ljava/lang/String;,样例:
//时间:1937 ms,signature:java/lang/String->ANDROID_ID:Ljava/lang/String;,样例:
case "java/util/UUID->MANUFACTURER:Ljava/lang/String;":
//时间:4534 ms,样例:
return new StringObject(vm, "");
default:
return super.getStaticObjectField(vm, dvmClass, signature);
}
}
@Override public DvmObject<?> getObjectField(BaseVM vm, DvmObject<?> dvmObject, String signature) {
switch (signature) {
case "0x55->signatures:[Landroid/content/pm/Signature;":
//时间:6903 ms,样例:
return new StringObject(vm, "");
case "android/content/pm/PackageInfo->signatures:[Landroid/content/pm/Signature;":
//时间:15792 ms,样例:
return new StringObject(vm, "");
default:
return super.getObjectField(vm, dvmObject, signature);
}
}
@Override public DvmObject<?> callObjectMethodV(BaseVM vm, DvmObject<?> dvmObject, String signature, VaList vaList) {
printArgs(vm, "callObjectMethodV", signature, vaList);
switch (signature) {
case "java/lang/String->getBytes()[B":
//时间:3558 ms,参数:{},样例:jobject : 0x35
return new StringObject(vm, "jobject : 0x35");
//时间:3738 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:3771 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
case "0x39->getBytes()[B":
//时间:5355 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
case "0x19->toString()Ljava/lang/String;":
//时间:5463 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
case "0x11->toString()Ljava/lang/String;":
//时间:5660 ms,参数:{},样例:jobject : 0x25
return new StringObject(vm, "jobject : 0x25");
//时间:5696 ms,signature:0x11->toString()Ljava/lang/String;,参数:{},样例:jobject : 0x29
case "0x29->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;":
//时间:6356 ms,参数:{jstring=},样例:4678d22159bc4d1ca230957d0778e442
return new StringObject(vm, "4678d22159bc4d1ca230957d0778e442");
case "0x25->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;":
//时间:6539 ms,参数:{jstring=},样例:487ec5ab1ca7475dac8a90726e606783
return new StringObject(vm, "487ec5ab1ca7475dac8a90726e606783");
//时间:6577 ms,signature:0x29->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;,参数:{jstring=},样例:aa86eb8b22e64e7ba711fc46aa883e05
case "0xb9b52d74->getBytes()[B":
//时间:8283 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
case "0xaaefad74->getBytes()[B":
//时间:8508 ms,参数:{},样例:jobject : 0x25
return new StringObject(vm, "jobject : 0x25");
case "0xa9b3ad74->getBytes()[B":
//时间:8580 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
case "0x49->getBytes()[B":
//时间:11291 ms,参数:{},样例:jobject : 0x39
return new StringObject(vm, "jobject : 0x39");
//时间:11422 ms,signature:0x49->getBytes()[B,参数:{},样例:jobject : 0x39 { android/app/ActivityThread }
case "0xaaefa484->getBytes()[B":
//时间:13094 ms,参数:{},样例:jobject : 0x21
return new StringObject(vm, "jobject : 0x21");
case "0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;":
//时间:13231 ms,参数:{jobject=0x29 { objec }},样例:
return new StringObject(vm, "");
case "0xa9b3a484->getBytes()[B":
//时间:13248 ms,参数:{},样例:jobject : 0x29 { objec }
return new StringObject(vm, "jobject : 0x29 { objec }");
//时间:14585 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:15710 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:16940 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getImei(I)Ljava/lang/String;":
//时间:17400 ms,参数:{jint=0},样例:
return new StringObject(vm, "");
//时间:17893 ms,signature:0x15->getImei(I)Ljava/lang/String;,参数:{jint=1},样例:
//时间:18094 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getMeid(I)Ljava/lang/String;":
//时间:18421 ms,参数:{jint=0},样例:
return new StringObject(vm, "");
//时间:18937 ms,signature:0x15->getMeid(I)Ljava/lang/String;,参数:{jint=1},样例:
//时间:19252 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getDeviceId(I)Ljava/lang/String;":
//时间:19501 ms,参数:{jint=0},样例:
return new StringObject(vm, "");
//时间:20018 ms,signature:0x15->getDeviceId(I)Ljava/lang/String;,参数:{jint=1},样例:
//时间:20392 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getDeviceId()Ljava/lang/String;":
//时间:20599 ms,参数:{},样例:
return new StringObject(vm, "");
case "0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;":
//时间:20667 ms,参数:{jobject=0x45 { objec }},样例:
return new StringObject(vm, "");
//时间:21068 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { android/content/SharedPreferences }},样例:
//时间:21486 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getSubscriberId(I)Ljava/lang/String;":
//时间:22748 ms,参数:{jint=0},样例:
return new StringObject(vm, "");
//时间:22898 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0xbc5c9448->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;":
//时间:23031 ms,参数:{jobject=0x49 { objec }},样例:
return new StringObject(vm, "");
//时间:23446 ms,signature:0x15->getSubscriberId(I)Ljava/lang/String;,参数:{jint=1},样例:
case "0x41->getBytes()[B":
//时间:23600 ms,参数:{},样例:jobject : 0x39
return new StringObject(vm, "jobject : 0x39");
//时间:23635 ms,signature:0xbc5c9448->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "java/lang/String->getSimSerialNumber()Ljava/lang/String;":
//时间:24100 ms,参数:{},样例:
return new StringObject(vm, "");
//时间:24527 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0x15->getSimSerialNumber(I)Ljava/lang/String;":
//时间:24858 ms,参数:{jint=0},样例:
return new StringObject(vm, "");
//时间:25224 ms,signature:0xa9b3ad74->getBytes()[B,参数:{},样例:jobject : 0x25
case "android/provider/Settings$Secure->getSimSerialNumber(I)Ljava/lang/String;":
//时间:25571 ms,参数:{jint=1},样例:
return new StringObject(vm, "");
//时间:25903 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x45 { android/content/Context }},样例:
//时间:26249 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:26730 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:26847 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35
//时间:28185 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:29031 ms,signature:0xaaefad74->getBytes()[B,参数:{},样例:jobject : 0x21
//时间:29066 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x39
//时间:29559 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x49 { java/lang/String }},样例:
//时间:30513 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:30751 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:30821 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:31340 ms,signature:0xa9b3a484->getBytes()[B,参数:{},样例:jobject : 0x25
//时间:32955 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:32989 ms,signature:0xb9b52d74->getBytes()[B,参数:{},样例:jobject : 0x25
//时间:33096 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35
//时间:33447 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x41 { objec }},样例:
//时间:34380 ms,signature:0xbc5c9548->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:34501 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x39
//时间:35299 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:35404 ms,signature:0xaaefa484->getBytes()[B,参数:{},样例:jobject : 0x21 { objec }
case "java/lang/Object->getName()Ljava/lang/String;":
//时间:36054 ms,参数:{},样例:jobject : 0xa5
return new StringObject(vm, "jobject : 0xa5");
case "0xab95ad74->getBytes()[B":
//时间:36722 ms,参数:{},样例:jobject : 0x21
return new StringObject(vm, "jobject : 0x21");
case "0xbc5c9508->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;":
//时间:36849 ms,参数:{jobject=0x45 { java/lang/String }},样例:
return new StringObject(vm, "");
//时间:37260 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:37746 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:37840 ms,signature:0xbc5c9508->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:37893 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa1
//时间:38440 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35
case "0xb9b52484->getBytes()[B":
//时间:39463 ms,参数:{},样例:jobject : 0x25
return new StringObject(vm, "jobject : 0x25");
//时间:39551 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa9
//时间:39928 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:40660 ms,signature:0xa9b3ad74->getBytes()[B,参数:{},样例:jobject : 0x21
//时间:40723 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35 { android/content/ContentResolver }
//时间:41120 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa5
//时间:41488 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31 { java/util/Map }
//时间:42054 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:42736 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa1
case "0xab95a484->getBytes()[B":
//时间:42771 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
//时间:43556 ms,signature:0xaaefad74->getBytes()[B,参数:{},样例:jobject : 0x29
//时间:44063 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:44231 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:44250 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa9
//时间:45430 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa5
//时间:45626 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:45820 ms,signature:0xa9b3a484->getBytes()[B,参数:{},样例:jobject : 0x29 { objec }
//时间:46580 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:46664 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa1
//时间:47154 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:47671 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0xa9
//时间:47856 ms,signature:0xaaefa484->getBytes()[B,参数:{},样例:jobject : 0x29
//时间:48319 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "java/lang/Object->getHardwareAddress()[B":
//时间:48335 ms,参数:{},样例:jobject : 0xa5
return new StringObject(vm, "jobject : 0xa5");
//时间:49087 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:49155 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:49806 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
//时间:49872 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:50488 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:50726 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:51650 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:52819 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:53642 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
//时间:55161 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:55470 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:57227 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:57328 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:57531 ms,signature:0xbc5c9508->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x45 { objec }},样例:
//时间:58046 ms,signature:0xbc5c9508->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:58490 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
//时间:59051 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:59945 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:60230 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35
//时间:60313 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:
//时间:60810 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x39
//时间:60843 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:61266 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x35
//时间:61365 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
case "0xad768d74->getBytes()[B":
//时间:62045 ms,参数:{},样例:
return new StringObject(vm, "");
case "0xbab7cd74->getBytes()[B":
//时间:62061 ms,参数:{},样例:
return new StringObject(vm, "");
case "0xb992fd74->getBytes()[B":
//时间:62555 ms,参数:{},样例:jobject : 0x29
return new StringObject(vm, "jobject : 0x29");
//时间:62571 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
//时间:62709 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
case "0xbd782d74->getBytes()[B":
//时间:62882 ms,参数:{},样例:jobject : 0x25
return new StringObject(vm, "jobject : 0x25");
//时间:63991 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:64179 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:66121 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:66363 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31 { java/util/Map }
//时间:67019 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x29 { objec }},样例:
//时间:67371 ms,signature:java/lang/String->getBytes()[B,参数:{},样例:jobject : 0x31
//时间:68646 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
case "0xb992f484->getBytes()[B":
//时间:69775 ms,参数:{},样例:jobject : 0x21
return new StringObject(vm, "jobject : 0x21");
//时间:70254 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x25 { objec }},样例:
case "0xbd782484->getBytes()[B":
//时间:70651 ms,参数:{},样例:jobject : 0x21
return new StringObject(vm, "jobject : 0x21");
//时间:71140 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:72047 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:72406 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:73368 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:73620 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
//时间:74722 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:74773 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:75737 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:76173 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:76901 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x81
//时间:77438 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:78065 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x89
//时间:78788 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:79255 ms,signature:java/lang/Object->getName()Ljava/lang/String;,参数:{},样例:jobject : 0x85
//时间:80099 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:81468 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:82884 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:84243 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
case "0xa5->trim()Ljava/lang/String;":
//时间:85095 ms,参数:{},样例:jobject : 0x81
return new StringObject(vm, "jobject : 0x81");
//时间:85341 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:86750 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
//时间:87965 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
case "android/content/Intent->getExtras()Landroid/os/Bundle;":
//时间:88014 ms,参数:{},样例:jobject : 0x115
return new StringObject(vm, "jobject : 0x115");
case "0x115->keySet()Ljava/util/Set;":
//时间:88617 ms,参数:{},样例:jobject : 0x109
return new StringObject(vm, "jobject : 0x109");
//时间:89165 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
case "0x109->toArray()[Ljava/lang/Object;":
//时间:89388 ms,参数:{},样例:jobject : 0x121
return new StringObject(vm, "jobject : 0x121");
//时间:90495 ms,signature:0xbb772bfc->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x21 { objec }},样例:
case "0x115->get(Ljava/lang/String;)Ljava/lang/Object;":
//时间:90790 ms,参数:{jstring=},样例:jobject : 0x139 { java/lang/Object }
return new StringObject(vm, "jobject : 0x139 { java/lang/Object }");
//时间:90846 ms,signature:0xbc5c9508->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;,参数:{jobject=0x45 { java/lang/String }},样例:
default:
return super.callObjectMethodV(vm, dvmObject, signature, vaList);
}
}
public void destroy() throws IOException {
emulator.close();
}
@SneakyThrows @Override
public FileResult resolve(Emulator emulator, String pathname, int oflags) {
printFileResolve(pathname);
return null;
}
}