时间: 2021-02-12 19:21:04
标签:
java
Pointer _ToReflectedMethod = svcMemory.registerSvc(new Arm64Svc() {
@Override
public long handle(Emulator emulator) {
RegisterContext context = emulator.getContext();
UnidbgPointer clazz = context.getPointerArg(1);
UnidbgPointer jmethodID = context.getPointerArg(2);
DvmClass dvmClass = classMap.get(clazz.toIntPeer());
DvmMethod dvmMethod = null;
if (dvmClass != null) {
dvmMethod = dvmClass.getStaticMethod(jmethodID.toIntPeer());
if (dvmMethod == null) {
dvmMethod = dvmClass.getMethod(jmethodID.toIntPeer());
}
}
if (log.isDebugEnabled()) {
log.debug("ToReflectedMethod clazz=" + dvmClass + ", jmethodID=" + jmethodID + ", lr=" + context.getLRPointer());
}
if (dvmMethod == null) {
throw new BackendException();
} else {
if (verbose) {
System.out.printf("JNIEnv->ToReflectedMethod(%s, "%s", %s) was called from %s%n", dvmClass.getClassName(), dvmMethod.methodName, dvmMethod.isStatic ? "is static" : "not static", UnidbgPointer.register(emulator, Arm64Const.UC_ARM64_REG_LR));
}
return addLocalObject(dvmMethod.toReflectedMethod());
}
}
}) ;
最佳答案
这不就是匿名内部类么
说起来
老哥你到底是干啥的啊,这几年下到语法上到AI啥问题都给问了,你说你不是机器人真不信啊