iOS**** |
您所在的位置:网站首页 › 微信骰子点数控制插件怎么用 › iOS**** |
前言
本文将介绍探索微信骰子控制点数的过程,并开源代码。本插件可以做到控制骰子点数和石头剪刀布的结果。 内容众所周知,微信全局收发消息调用的是CMessageMgr类的- (void)AddMsg:(id)arg1 MsgWrap:(id)arg2函数,该函数arg1为收信人的微信id,arg2为消息CMessageWrap类的对象。如此说来我们只要拼接正确的CMessageWrap对象即可。 探索CMessageWrap类 class-dump 得到CMessageWrap.h 使用MonkeyDev断点观察arg21.参考 2.全世界都在用MonkeyDev,我们用MonkeyDev编写代码hook并断点- (void)AddMsg:(id)arg1 MsgWrap:(id)arg2. CHDeclareClass(CMessageMgr); CHMethod(2, void, CMessageMgr, AsyncOnAddMsg, id, arg1, MsgWrap, id, arg2) { CHSuper(2, CMessageMgr, AsyncOnAddMsg, arg1, MsgWrap, arg2); } CHConstructor{ CHLoadLateClass(CMessageMgr); CHClassHook(2, CMessageMgr, AsyncOnAddMsg, MsgWrap); }首先发送文字,探索最简单的CMessageWrap对象用到哪些字段,得: wrap.m_uiMessageType = 1;//文字:1,表情:47 wrap.m_nsFromUsr = @"发信人微信id"; wrap.m_nsToUsr = @"收信人微信id"; wrap.m_uiCreateTime = date;//时间戳 wrap.m_uiStatus = 1;//固定1以上为微信发消息必备字段。接下来,我们发一个石头剪刀布的表情,得到更多字段: wrap.m_nsEmoticonMD5 = @"F790E342A02E0F99D34B316547F9AEAB";//猜拳md5 wrap.m_uiGameContent = 3;//猜拳内容 wrap.m_uiGameType = 1;//猜拳:1,骰子:2 wrap.m_uiEmoticonType = 1;//固定1得到这些字段后,我么调用- (void)AddEmoticonMsg:(NSString *)arg1 MsgWrap:(CMessageWrap *)arg2;发送表情测试,发现每次的结果都是'布',由此可见,猜拳和骰子的结果不是由服务端控制,而是由发送的时刻即确定,所以我们可以控制结果。修改入参值不难得出: 1:m_nsEmoticonMD5:@"F790E342A02E0F99D34B316547F9AEAB",m_uiGameType:1,m_uiGameContent:1剪刀 2石头 3布 2:m_nsEmoticonMD5:@"9E3F303561566DC9342A3EA41E6552A6",m_uiGameType:2,m_uiGameContent:4-9为结果1-6 插件WCGameEmoji,越狱非越狱都支持,越狱设备,修改源码里ip直接build到手机上。非越狱设备请自行build,注入,重签名打包。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |