crmulliner / ddi

ddi - Dynamic Dalvik Instrumentation Toolkit
http://www.mulliner.org/android/
395 stars 159 forks source link

how can i hook Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I) #16

Closed decash closed 8 years ago

decash commented 8 years ago

first of all thank you develop a good android hooking framework :-)

i was success some method hooking but i was fail hooking "getPackageInfo". getPackageInfo was patched but, my native function "sb21_getPackageInfo" was not called

Did you know what the problem is?

  1. "dalvik_dump_class(&dex, "Landroid/content/pm/PackageManager;");" result==================

01-08 13:49:13.354: I/dalvikvm(16192): 56: 0x6d617968 getPackageInfo (Ljava/lang/String;I)Landroid/content/pm/PackageInfo;

  1. source code===================================================================

static void* sb21_getPackageInfo(JNIEnv *env, jobject obj, jobject str, jint i) { // patch code }

dalvik_hook_setup(&sb21, "Landroid/content/pm/PackageManager;", "getPackageInfo", "(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;", 3, sb21_getPackageInfo);

  1. dalvik_hook debug info========================================================== gDvm = 0x41642e18 dalvik_hook: class Landroid/content/pm/PackageManager; class = 0x416eb060 getPackageInfo((Ljava/lang/String;I)Landroid/content/pm/PackageInfo;) = 0x6d645968 nativeFunc 415e5e59 insSize = 0x3 registersSize = 0x3 outsSize = 0x0 shorty LLI name getPackageInfo arginfo 0 noref access 501 access 501 patched getPackageInfo to: 0x7479d828