hook微信骰子和划拳功能
本帖最后由 Lyxin_c 于 2019-2-12 19:07 编辑微信版本703.
首先进行方法分析,假设随机数产生是在本地(否则微信服务器处理内容是不是太多了),并且在点击过程中,有点击事件的产生,onItemClick,有随机数方法random。
在方法跟踪中操作,搜索点击事件:
如果我们使用jadx去查看分析,也可以确定点击事件出发了smileyGrid的a方法,所以这个入口是对的。
搜索随机数函数,只有一个parent:
尝试去hook方法 gv,参数有两个,返回值是int。第一个参数应该是结果范围,第二个参数应该是起始位置。
多次使用骰子去获取参数和返回值,发现参数1恒等于5,参数2是0,返回值在0-5之间波动,恰好骰子结果等于返回值+1 .!
多次使用划拳去获取参数和返回值,发现参数1恒等于2,参数2是0,返回值在0-2之间波动,剪刀为0,石头为1,布为2.!
(手机截图就不上传了)
振奋人心的结果,可以得出最开始的假设结论,随机结果就是在本地产生的。
总结一下:我找这个随机函数找了很久,思路一直是线性的从方法跟踪和对应代码入手,因为经过了反编译,所以阅读难度大,代码数量多,经历了许多无意义操作。Hook需要的是结果,那我直接去猜测引用过random函数,有点击事件,从而直接找到了想要的结果。大胆猜测,小心求证应该就是这样了。 最简单的就是自己先断网,然后自己点筛子,然后等出红感叹号,选自己需要的 点重新发送不就行了。。无脑 丶那年如此年少o 发表于 2019-2-12 17:02
HOOK后将返回值设置成某个值就可以实现骰子每次的值都一样了吧?
是的,测试了一下,一直是一个值。但是你一直摇6就很过分了{:1_926:} 这种的对用户数据影响不太的大行为应该都是本地随机。 HOOK后将返回值设置成某个值就可以实现骰子每次的值都一样了吧? 厉害了,这个如何应用呢 tydzjing 发表于 2019-2-12 17:19
厉害了,这个如何应用呢
hook的位置在文中说了,自己写个hook的demo就可以了。
66666666666666666666666 慕琪 发表于 2019-2-12 20:27
最简单的就是自己先断网,然后自己点筛子,然后等出红感叹号,选自己需要的 点重新发送不就行了。。无脑
现在已经改了吧。反正这只是小练习。 支持 希望多发这样的帖 7.0.0微信版本以上的分析太少了
页:
[1]
2