Ejemplo n.º 1
0
void SetClassInstance(JNIEnv *env, jobject obj, void* instance)
{
	 LOGPOS();

	 int64_t i64 = (uintptr_t)instance;

	 (*env)->SetLongField(env, obj, 
	 	GetClassField(env, obj, "instance", "J"), i64);
}
Ejemplo n.º 2
0
void cDexDecompiler::DecompileClass(
    DEX_DECOMPILED_CLASS* Class 
    )
{
    GetClassDefinition(Class);

    for (UINT i=0; i<(Class->Ref->ClassData?Class->Ref->ClassData->InstanceFieldsSize:0); i++)
        GetClassField(Class,  Class->Ref->ClassData->InstanceFields[i]);

    for (UINT i=0; i<(Class->Ref->ClassData?Class->Ref->ClassData->StaticFieldsSize:0); i++)
        GetClassField(Class,  Class->Ref->ClassData->StaticFields[i], TRUE);

    for (UINT i=0; i<(Class->Ref->ClassData?Class->Ref->ClassData->DirectMethodsSize:0); i++)
        GetClassMethod(Class, Class->Ref->ClassData->DirectMethods[i]);

    for (UINT i=0; i<(Class->Ref->ClassData?Class->Ref->ClassData->VirtualMethodsSize:0); i++)
        GetClassMethod(Class, Class->Ref->ClassData->VirtualMethods[i], TRUE);
}
Ejemplo n.º 3
0
void *GetClassInstance(JNIEnv *env, jobject obj)
{
	LOGPOS();

	int64_t i64 = 0;

	i64 = (*env)->GetLongField(env, obj, 
		GetClassField(env, obj, "instance", "J"));

	return (void*)(uintptr_t)(i64 & 0xFFFFFFFF);
}