需求来源
如果以前有定位过老版本的函数,但是版本重新发布一般会由于proguard的混淆而变化,也有可能大版本升级后函数的声明也会发生变化。 但是如果知道一个大概的特征,也可以快速定位,不用再去反编译APK包逆向分析一遍。
案例
例如微信的骰子游戏,网上能搜到相关的xposed插件:veryyoung/RandomGame,大概了解到函数的返回值类型为int,有int类型参数。
根据函数签名特征设置有过滤条件的HOOK
那么就可以设置这样一个过滤条件:
if (strcmp(szRetTypeClassName,"int")==0 && strstr(sParams.c_str(), "int"))
分析日志
连续扔几次骰子:
拦截输出:
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int a(java.lang.Integer, int); sig: (Ljava/lang/Integer;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::a ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 19
[onCall] --> com.tencent.mm.sdk.platformtools.bh int a(java.lang.Integer, int); sig: (Ljava/lang/Integer;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::a ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int a(java.lang.Integer, int); sig: (Ljava/lang/Integer;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::a ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.modelsfs.FileOp int b(java.lang.String, [B, int); sig: (Ljava/lang/String;[BI)I
[onCall] <-- com.tencent.mm.modelsfs.FileOp::b ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 300
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int a(java.lang.Integer, int); sig: (Ljava/lang/Integer;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::a ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1600000
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::ee ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.booter.NotifyReceiver$NotifyService int onStartCommand(android.content.Intent, int, int); sig: (Landroid/content/Intent;II)I
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 1
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 533
[onCall] <-- com.tencent.mm.booter.NotifyReceiver$NotifyService::onStartCommand ret int 2
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.u int AH(int); sig: (I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.u::AH ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.booter.NotifyReceiver$NotifyService int onStartCommand(android.content.Intent, int, int); sig: (Landroid/content/Intent;II)I
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 1
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 373
[onCall] <-- com.tencent.mm.booter.NotifyReceiver$NotifyService::onStartCommand ret int 2
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.u int AH(int); sig: (I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.u::AH ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::ee ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::ee ret int 5
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::ee ret int 4
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
[onCall] --> com.tencent.mm.booter.NotifyReceiver$NotifyService int onStartCommand(android.content.Intent, int, int); sig: (Landroid/content/Intent;II)I
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 1
[onCall] --> com.tencent.mm.a.n int c([B, int); sig: ([BI)I
[onCall] <-- com.tencent.mm.a.n::c ret int 405
[onCall] <-- com.tencent.mm.booter.NotifyReceiver$NotifyService::onStartCommand ret int 2
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.u int AH(int); sig: (I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.u::AH ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 0
[onCall] --> com.tencent.mm.sdk.platformtools.bh int m(java.lang.Object, int); sig: (Ljava/lang/Object;I)I
[onCall] error 5
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::m ret NULL
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 50
[onCall] --> com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::ee ret int 5
[onCall] --> com.tencent.mm.sdk.platformtools.bh int getInt(java.lang.String, int); sig: (Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.bh::getInt ret int 1
[onCall] --> com.tencent.mm.sdk.platformtools.t int a(android.content.Intent, java.lang.String, int); sig: (Landroid/content/Intent;Ljava/lang/String;I)I
[onCall] <-- com.tencent.mm.sdk.platformtools.t::a ret int 1
很容易在日志里面看到0, 5, 4, 5这几个数字,那么很容易知道
com.tencent.mm.sdk.platformtools.bh int ee(int, int); sig: (II)I
就是我们要找的函数了。
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/android/using-method-signature-to-find-call-in-new-android-app.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)