frida class里面有哪些属性

  var hook_cls = Java.use(class_name)
                    if (class_name.includes("DynamicCheck")){
                        console.log("==================")
                        console.log(Object.entries(hook_cls.class))
                        console.log("==================")
                    }

得到下面内容

shadow$_monitor_,[object Object],hashCode,function e() {
    [native code]
},shadow$_klass_,[object Object],identityHashCodeNative,function e() {
    [native code]
},wait,function e() {
    [native code]
},notify,function e() {
    [native code]
},notifyAll,function e() {
    [native code]
},equals,function e() {
    [native code]
},clone,function e() {
    [native code]
},identityHashCode,function e() {
    [native code]
},finalize,function e() {
    [native code]
},internalClone,function e() {
    [native code]
},toString,function e() {
    [native code]
},getClass,function e() {
    [native code]
},isLocalClass,function e() {
    [native code]
},classSize,[object Object],isLocalOrAnonymousClass,function e() {
    [native code]
},getField,function e() {
    [native code]
},getGenericInterfaces,function e() {
    [native code]
},getEnclosingMethod,function e() {
    [native code]
},forName,function e() {
    [native code]
},getAnnotation,function e() {
    [native code]
},objectSizeAllocFastPath,[object Object],numReferenceStaticFields,[object Object],getDeclaredField,function e() {
    [native code]
},getPublicDeclaredFields,function e() {
    [native code]
},getNameNative,function e() {
    [native code]
},isInterface,function e() {
    [native code]
},isProxy,function e() {
    [native code]
},getModifiers,function e() {
    [native code]
},getResourceAsStream,function e() {
    [native code]
},getName,function e() {
    [native code]
},getEnumConstantsShared,function e() {
    [native code]
},asSubclass,function e() {
    [native code]
},dexClassDefIndex,[object Object],status,[object Object],getDeclaredConstructor,function e() {
    [native code]
},getConstructors,function e() {
    [native code]
},vtable,[object Object],getClassLoader,function e() {
    [native code]
},getResource,function e() {
    [native code]
},classLoader,[object Object],getFields,function e() {
    [native code]
},accessFlags,[object Object],classNameImpliesTopLevel,function e() {
    [native code]
},getAnnotationsByType,function e() {
    [native code]
},getEnumConstants,function e() {
    [native code]
},getConstructor0,function e() {
    [native code]
},iFields,[object Object],getDeclaredConstructors,function e() {
    [native code]
},ANNOTATION,[object Object],resolveName,function e() {
    [native code]
},methods,[object Object],isPrimitive,function e() {
    [native code]
},getMethod,function e() {
    [native code]
},serialVersionUID,[object Object],getComponentType,function e() {
    [native code]
},name,[object Object],getDeclaredFieldsUnchecked,function e() {
    [native code]
},componentType,[object Object],getDeclaredMethod,function e() {
    [native code]
},getDeclaredConstructorsInternal,function e() {
    [native code]
},getTypeParameters,function e() {
    [native code]
},isDeclaredAnnotationPresent,function e() {
    [native code]
},getAnnotations,function e() {
    [native code]
},getInterfaces,function e() {
    [native code]
},getGenericSuperclass,function e() {
    [native code]
},isEnum,function e() {
    [native code]
},getProtectionDomain,function e() {
    [native code]
},primitiveType,[object Object],ifTable,[object Object],cast,function e() {
    [native code]
},classFlags,[object Object],getEnclosingConstructor,function e() {
    [native code]
},toGenericString,function e() {
    [native code]
},getDeclaredMethodsUnchecked,function e() {
    [native code]
},isArray,function e() {
    [native code]
},sFields,[object Object],getTypeName,function e() {
    [native code]
},getPublicFieldRecursive,function e() {
    [native code]
},superClass,[object Object],getInterfacesInternal,function e() {
    [native code]
},getMethods,function e() {
    [native code]
},getPublicMethodRecursive,function e() {
    [native code]
},getSignatureAttribute,function e() {
    [native code]
},dexTypeIndex,[object Object],FINALIZABLE,[object Object],getCanonicalName,function e() {
    [native code]
},copiedMethodsOffset,[object Object],isAnonymousClass,function e() {
    [native code]
},desiredAssertionStatus,function e() {
    [native code]
},getInstanceMethod,function e() {
    [native code]
},isAnnotation,function e() {
    [native code]
},getSimpleName,function e() {
    [native code]
},getConstructor,function e() {
    [native code]
},cannotCastMsg,function e() {
    [native code]
},getClasses,function e() {
    [native code]
},getInnerClassName,function e() {
    [native code]
},getPackage,function e() {
    [native code]
},getEnclosingConstructorNative,function e() {
    [native code]
},getAccessFlags,function e() {
    [native code]
},getSuperclass,function e() {
    [native code]
},isInstance,function e() {
    [native code]
},ENUM,[object Object],extData,[object Object],getDeclaredAnnotation,function e() {
    [native code]
},dexCache,[object Object],getDeclaredFields,function e() {
    [native code]
},getDeclaredMethodInternal,function e() {
    [native code]
},numReferenceInstanceFields,[object Object],getDeclaredMethods,function e() {
    [native code]
},isSynthetic,function e() {
    [native code]
},getEnclosingClass,function e() {
    [native code]
},objectSize,[object Object],findInterfaceMethod,function e() {
    [native code]
},getInnerClassFlags,function e() {
    [native code]
},getSigners,function e() {
    [native code]
},newInstance,function e() {
    [native code]
},getPublicFieldsRecursive,function e() {
    [native code]
},getDeclaredClasses,function e() {
    [native code]
},virtualMethodsOffset,[object Object],clinitThreadId,[object Object],getPackageName$,function e() {
    [native code]
},getDeclaredAnnotations,function e() {
    [native code]
},getDeclaringClass,function e() {
    [native code]
},classForName,function e() {
    [native code]
},isAnnotationPresent,function e() {
    [native code]
},isMemberClass,function e() {
    [native code]
},getEnclosingMethodNative,function e() {
    [native code]
},referenceInstanceOffsets,[object Object],isAssignableFrom,function e() {
    [native code]
},getSignatureAnnotation,function e() {
    [native code]
},isFinalizable,function e() {
    [native code]
},getDeclaredConstructorInternal,function e() {
    [native code]
},getPublicMethodsInternal,function e() {
    [native code]
},SYNTHETIC,[object Object]
posted @ 2023-03-28 19:54  公众号python学习开发  阅读(149)  评论(0编辑  收藏  举报