配合签名特征来定位新版本APP的函数

本文介绍了一种通过日志分析快速定位目标函数的方法,适用于版本更新导致函数签名变化的情况。以微信骰子游戏为例,展示了如何设置过滤条件进行HOOK,并从大量日志中筛选出关键函数。

需求来源

如果以前有定位过老版本的函数,但是版本重新发布一般会由于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

就是我们要找的函数了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

asmcvc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值