微信骰子自定义点数(微信自定义骰子插件)

每次宅寝室一起点外卖

谁下去拿都是个大问题

所以小编寝室一般选择色子

谁小谁去拿

但是小编运气不太好

总是输

所以寻思着

能不能每次都让色子是6点

皇天不负有心人

果然找到了方法

准备工作

需要一台已经root并且安装了Hook神奇Xposed框架。在Hook过程中最重要的一点就是要找到Hook点这也是最难的部分。找到Hook点之后编写Xposed模块就比较简单了。

本次实验使用的weixin版本是6513.

猜想假设

我们先猜测摇色子是怎么实现的。如果有简单编程经验的朋友肯定会猜测是random函数。其实我也是这么猜的。

逆向分析

反编译apk

进行简单的准备工作:使用apktool反编译apk。使用Jadx打开的apk。较大,打开会比较慢。

找到色子对应控件的id

这一步可以借助AndroidSDK提供的一个工具:uiautomatorviewer.bat。可以看到下面的界面。

高端大气上档次·玩转摇色子

可以看到色子控件对应的id是cph。然后在public.xml中找到cph对应的值为0x7f100d28。

高端大气上档次·玩转摇色子

最后用这个值去R类里面找到真正使用的名称为bfq

高端大气上档次·玩转摇色子

查找Hook点

最难的部分就是查找hook点。在jadx中全局搜索bqf。显然这个findViewById()才是我们要找的东西,双击点进去看代码。如果有多个需要一个一个看。

高端大气上档次·玩转摇色子

上下查看这个类包含的内容。可以知道这是一个baseAdapter类。但是getView方法中没有设置点击事件。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

全局搜索调用这个函数的地方进行查找。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

双击进入代码查看,看到是SmileyGrid类型的控件。查看SmileyGrid定义。

高端大气上档次·玩转摇色子

对onItemClick中的方法一个一个分析,最后发现红框中才是我们要找的方法。

高端大气上档次·玩转摇色子

查看a函数代码,可以看到最下面两个是toast,显然不是。接下来就需要对剩下的分支进行查看。

高端大气上档次·玩转摇色子

查看之后我们知道是第一个也就是c c = ((com.tencent.mm.plugin.emoji.b.c) h.j(com.tencent.mm.plugin.emoji.b.c.class)).getEmojiMgr().c(cVar);

根据导入的包信息我们可以知道是com.tencent.mm.kernel.h并且类型是com.tencent.mm.plugin.emoji.b.c继续看这几处的代码进行分析。

高端大气上档次·玩转摇色子

下面是h.j的代码,返回是j。

高端大气上档次·玩转摇色子

下面是emoji.b.c的代码,我们可以知道是一个接口。

高端大气上档次·玩转摇色子

在做到这里的时候卡了好久没什么思路了,然后写了一个简单的xposed模块hook了com.tencent.mm.kernel.h的j函数看看返回的类型是什么。

高端大气上档次·玩转摇色子

将模块装安装重启后,打开weixin清空logcat然后点击色子,看到了下面的输出,可以知道输入参数的类型是com.tencent.mm.plugin.emoji.b.c返回的类型是com.tencent.mm.plugin.emoji.PluginEmoji。然后看看PluginEmoji的代码。

高端大气上档次·玩转摇色子

看到PluginEmoji包含了getEmojiMgr方法,重点看这个方法。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

有了前面的经验,这里就在前面的那个模块也hook了这个方法看看返回的具体是什么。点击之后在上面的提示出现了另一行。返回的具体是com.tencent.mm.plugin.emoji.e.g再去看emoji.e.g的代码。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

重点当然是分析emoji.e.g的c方法。代码如下。通过yH.movToPosition(dM)知道dM才是关键,继续追踪bf.dM的代码。通过导入的包可以知道来自com.tencent.mm.sdk.platformtools.bf。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

看到这个Random函数还真是有点小激动啊。估摸应该是这里了。同样hook看一下输入参数和返回的参数是什么。

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

输入的参数都是5和0,输出的正好和点数相对应,3对应4点,1对应2点,1对应0点.

高端大气上档次·玩转摇色子

高端大气上档次·玩转摇色子

编写模块

找到随机数的返回点,接下来写hook模块就简单了。还有一点要注意的是,石头剪刀布也是用的这个随机函数。所以写的时候要注意一下。

高端大气上档次·玩转摇色子

最后体验一下效果如何。

高端大气上档次·玩转摇色子

这下终于不用拿外卖了。

总结

1. 找id:对于控件的点击事件可以用uiautomatorviewer定位到控件的id,然后通过public.xml和R类找到真正使用的类名和十六进制id。

2. 定位到关键代码:接下来最难的就是定位到关键代码,通常要花很多时间,多练习能够提高速度。

3. 编写xposed模块:找到关键函数以后,编写模块就比较简单了。有些app有分包的时候要注意一下。

【版权声明】汽车时代网提醒您:请在浏览本网站关于《微信骰子自定义点数(微信自定义骰子插件)》信息时,请您务必阅读并理解本声明。本站部分内容以及图片来源于商家投稿和网络转载,如网站发布的有关的信息侵犯到您的权益,请及时与我们取得联系,邮箱:13946 86812#qq.com,我们会尊重您的决定并当天作出删除处理。

(0)

相关推荐

  • 送袜子代表什么意思 送异性朋友袜子代表啥

    送袜子代表什么意思 送异性朋友袜子代表啥今天是情人节,历史上情人节都送些什么礼物呢?或许送一些特殊礼物,更符合情人节传统的礼物更有助于情侣们感情的发展。不同时代,过情人节的习俗有所不同。其中从1837-1901年英国维多利亚女王时期的情人节

    2022年5月10日
    14
  • 什么叫做伺服电机 伺服电机的概念

    什么叫做伺服电机 伺服电机的概念一.什么是伺服?为什么要用伺服?伺服系统定义:实现输出变量精确地跟随或复现输入变量的控制系统。对运动控制的要求越来越高,伺服控制应运而生。二.什么是伺服电机?它有什么特点?伺服电动机又称执行电动机,在自动控制

    2022年3月24日
    45
  • 糙米是什么米 超市有糙米买吗

    糙米是什么米 超市有糙米买吗最近,随着越来越多的大米厂家推出糙米系列产品,一系列的科教文宣材料开始铺天盖地的推广出来,连央视也跟随报道。根据央视的报道,通过大量的数据对比,最终得出的结论是:糙米更好!消费者应该选糙米。那么实际情况真是这样么

    2022年5月30日
    8
  • 5g手机有哪些上市了(最新款的5g手机都有哪些)

    5g手机有哪些上市了(最新款的5g手机都有哪些)7月16日,《每日经济新闻》记者在中国质量认证中心官网查询到,已经有7款5G手机获得了3C认证。其中,华为占据半壁江山,一共有四款手机。一加、中兴、VIVO各有一款5G手机获得了3C认证。而O

    2022年1月19日
    29
  • 这款耳机不仅功能强大且音质一流 哪款头戴耳机音质最好

    这款耳机不仅功能强大且音质一流 哪款头戴耳机音质最好「主动降噪」这个词在 2021 年是经常可以在耳机圈听到的一个词,自从苹果AirPods MAX发布以后,很多人觉得这款头戴式耳机没啥用,大、重,而且很贵,普通人买不起还是真无线耳机才最好

    2022年6月11日
    3