怎么利用 BaseMsgContentViewController ,调整BaseMsgContentViewController跳转的到指定微信好友的聊天界面 就是能不能创建BaseMsgContentViewController 传参数跳转到指定好友聊天界面 给个思路也行
[MMMsgLogicManager PushOtherBaseMsgControllerByContact:navigationController:animated:]
自己分析一下参数哪来的
大佬 您说的太简单了吧 我有点看不懂 我是新手小菜 麻烦大佬再详细说下 整个思路流程
接下来是不是怎么自动给指定微信好友发送信息?
我想从首页跳到微信好友聊天界面 我已经可以在聊天界面发信息 就是不知道怎么跳转进去 研究好久 就弄不好 所以问下各位大佬有什么解决思路
- (void)pushViewController:(UIViewController *)viewController
animated:(BOOL)animated;
从这个入手, 很容易找到切换界面的地方
我是最新的微信,从微信首页进入定位到了这个方法之后就不确定从哪里继续了 希望大神指点一下 [NewMainFrameViewController tableView:didSelectRowAtIndexPath:]
试了一下确实可以,楼主拿走吧。
======微信跳转私聊=======
id serCenter = [%c(MMServiceCenter) defaultCenter];
id logicManager = [serCenter getService:[%c(MMMsgLogicManager) class]];
id vc = [self navigationController];
[logicManager PushOtherBaseMsgControllerByContact:[self m_contact] navigationController:vc animated:YES];
大佬 请问下 [self m_contact] 是传微信号吗 还是手机号码
代码给到这份上了, 还不舍得自己分析一下
大佬抱歉啊
之前在 逆向BaseMsgContentViewController时
- (void)openMessageContentView:(id)arg1 startSendMessage:(_Bool)arg2 msgWrapToAdd:(id)arg3 animated:(_Bool)arg4 jumpToFirstUnreadNode:(_Bool)arg5 indexPath:(id)arg6;
找到这个函数的这六个参数 我直接提取出来用
[self openMessageContentView:@“name[fuz*rui~9]-time[1548668735]-unread[0]-ext[1]-silence[0]” startSendMessage:NO msgWrapToAdd:nil animated:YES jumpToFirstUnreadNode:NO indexPath:indexPath];
就直接奔溃了 所以不知道 这些参数是不是可以直接用
现在有个新问题 问下大佬 直接奔溃怎么办 有没可以在%hook 加断点 测试
或者出现这样情况 从哪个方面入手分享
你搞这些东西之前,为什么不去了解一下lldb?
大佬劳烦帮我看看
我获取到数据
然后我的Tweak.xm 是
@interface MMServiceCenter
-(id)getService:(id)a;
@end
@interface MMMsgLogicManager
- (void)PushOtherBaseMsgControllerByContact:(id)arg1 navigationController:(id)arg2 animated:(_Bool)arg3;
@end
%hook MMMsgLogicManager
- (void)PushOtherBaseMsgControllerByContact:(id)arg1 navigationController:(id)arg2 animated:(_Bool)arg3
{
%log;
}
%end
%hook NewMainFrameViewController
-(void)viewDidAppear:(BOOL)animated
{
%log;
NSDictionary *dic = [[NSDictionary alloc]initWithObjects:
@[
@"fuz*rui~9",
@"",
@"",
@"老傅",
@"32771",
@"0",
@"",
@"CN",
@"Fujian",
@"Xiamen",
@"",
@"1",
@"",
@"",
@"0"
]
forKeys:
@[
@"m_nsUsrName",
@"m_nsEncodeUserName",
@"alias",
@"m_nsNickName",
@"m_uiType",
@"m_uiConType",
@"m_nsRemark",
@"m_nsCountry",
@"m_nsProvince",
@"m_nsCity",
@"m_nsSignature",
@"m_uiSex",
@"m_uiCerFlag",
@"m_nsCer",
@"scene"
]
];
id serCenter = [%c(MMServiceCenter) defaultCenter];
id logicManager = [serCenter getService:[%c(MMMsgLogicManager) class]];
id vc = [self navigationController];
[logicManager PushOtherBaseMsgControllerByContact:dic navigationController:vc animated:YES];
%orig;
}
%end
可是直接奔溃了 能帮我看看吗
安装 Tweak.xm 时候
不是直接把lldb 奔溃吗
就没有其他方法吗
PushOtherBaseMsgControllerByContact:dic
======错误原因参数类型不对==========
这里应该是传一个ccontact类型的参数而非字典
你可以看一下 CContactMgr 这个类
里面有一个方法:
- (id)getContactByName:(id)arg1;
这个应该是根据usrName获取ccontact的方法你可以试一下
id contactMgr = [[%c(MMServiceCenter) defaultCenter] getService:[%c(CContactMgr) class]];
id contact = [contactMgr getContactByName:@“这个参数应该是跳转会话那个人的usrName”];
然后把字典换成这个contact就好啦应该
好的 谢谢大佬 能告诉我您的逆向经验吗?
逆向的步骤
比如我截取的数据 我想到的json文件 用的是传NSDictionary传数据尝试
请问大佬您是 怎么确定 CContactMgr 这个类的
还有 我 class-dump 出来的文件没有MMServiceCenter这个类 大佬是怎么确定
请问大佬您是哪里找到这个类的
回复已经优待到这种地步了?
大佬给的很完整 很好用 就是想学大佬 开发了时步骤 再找个实例学习下
张总每次发言都妙语连珠