首页
社区
课程
招聘
[原创]IOS微信逆向-免越狱抢红包防撤回等自定义功能实现
发表于: 2021-2-10 08:48 104474

[原创]IOS微信逆向-免越狱抢红包防撤回等自定义功能实现

2021-2-10 08:48
104474

微信步数

防撤回

自动抢红包

CrackerXI+砸壳,或手动使用dumpdecrypted砸壳

这里我使用的微信版本是8.0.0

使用scp或者助手把已砸壳的wechat.ipa导出

MonkeyDev集成在xcode上面,可以快速开发hook的代码,链接到Mach-O文件,支持修改ipa后的免越狱安装。

新建MonkeyDev项目

把砸壳后的微信ipa拖进工程中的TargetApp目录

run编译真机调试

打开微信设置页面,xcode打开Debug View Hierarychy查看层级。

新增控件类WCTableViewManager

新增自动抢红包、消息防撤回、微信步数修改选项

hook红包消息实现自动抢

防撤回实现

修改微信运动步数

自签名打包后实现多开,配合AltDeploy+AltStore食用更佳

MonkeyDev
WeChatRedEnvelop
[iOS应用逆向与安全之道]

新年快乐

 
 
 
 
 
 
 
 
 
 
 
 
 
%hook NewSettingViewController
- (void)reloadTableData{
    %orig;
    WCTableViewManager *tableViewMgr = MSHookIvar<id>(self, "m_tableViewMgr");
    MMTableView *tableView = [tableViewMgr getTableView];
    WCTableViewNormalCellManager *newCell = [%c(WCTableViewNormalCellManager) normalCellForSel:@selector(setting) target:self title:@"你懂的"];
    [((WCTableViewSectionManager*)tableViewMgr.sections[0]) addCell: newCell];
    [tableView reloadData];
}
 
%new
- (void)setting {
    UIViewController *vc = [[HZWechatSettingController alloc] init];
    [((UIViewController *)self).navigationController PushViewController:vc animated:true];
}
 
%end
%hook NewSettingViewController
- (void)reloadTableData{
    %orig;
    WCTableViewManager *tableViewMgr = MSHookIvar<id>(self, "m_tableViewMgr");
    MMTableView *tableView = [tableViewMgr getTableView];
    WCTableViewNormalCellManager *newCell = [%c(WCTableViewNormalCellManager) normalCellForSel:@selector(setting) target:self title:@"你懂的"];
    [((WCTableViewSectionManager*)tableViewMgr.sections[0]) addCell: newCell];
    [tableView reloadData];
}
 
%new
- (void)setting {
    UIViewController *vc = [[HZWechatSettingController alloc] init];
    [((UIViewController *)self).navigationController PushViewController:vc animated:true];
}
 
%end
WCTableViewCellManager *autoEnvelopCell = [HZWechat switchCellWithSel:@selector(autoEnvelopSwitchChange:) target:self title:@"自动抢红包" switchOn:[HZWechatConfig autoRedEnvelop]];
[nidongde addCell:autoEnvelopCell];
 
WCTableViewCellManager *revokeIntercept = [HZWechat switchCellWithSel:@selector(revokeIntercept:) target:self title:@"消息防撤回" switchOn:[HZWechatConfig preventRevoke]];
[nidongde addCell:revokeIntercept];
 
WCTableViewCellManager *changeStepsCell = [HZWechat switchCellWithSel:@selector(changedSteps:) target:self title:@"修改微信步数" switchOn:[HZWechatConfig changeSteps]];
[nidongde addCell:changeStepsCell];
WCTableViewCellManager *autoEnvelopCell = [HZWechat switchCellWithSel:@selector(autoEnvelopSwitchChange:) target:self title:@"自动抢红包" switchOn:[HZWechatConfig autoRedEnvelop]];
[nidongde addCell:autoEnvelopCell];
 
WCTableViewCellManager *revokeIntercept = [HZWechat switchCellWithSel:@selector(revokeIntercept:) target:self title:@"消息防撤回" switchOn:[HZWechatConfig preventRevoke]];
[nidongde addCell:revokeIntercept];
 
WCTableViewCellManager *changeStepsCell = [HZWechat switchCellWithSel:@selector(changedSteps:) target:self title:@"修改微信步数" switchOn:[HZWechatConfig changeSteps]];
[nidongde addCell:changeStepsCell];
 
BOOL (^shouldReceiveRedEnvelop)() = ^BOOL() {
                    if (!HZWechatConfig.autoRedEnvelop) { return NO; }
                    if (isGroupInBlackList()) { return NO; }
                    if (isContaintKeyWords()) { return NO; }
                    return isGroupReceiver() ||
                           (isGroupSender() && isReceiveSelfRedEnvelop()) ||
                           (!isGroupReceiver() && HZWechatConfig.personalRedEnvelopEnable);
                };
 
                NSDictionary *(^parseNativeUrl)(NSString *nativeUrl) = ^(NSString *nativeUrl) {
                    nativeUrl = [nativeUrl substringFromIndex:[@"wxpay://c2cbizmessagehandler/hongbao/receivehongbao?" length]];
                    return [%c(WCBizUtil) dictionaryWithDecodedComponets:nativeUrl separator:@"&"];
                };
BOOL (^shouldReceiveRedEnvelop)() = ^BOOL() {
                    if (!HZWechatConfig.autoRedEnvelop) { return NO; }
                    if (isGroupInBlackList()) { return NO; }
                    if (isContaintKeyWords()) { return NO; }
                    return isGroupReceiver() ||
                           (isGroupSender() && isReceiveSelfRedEnvelop()) ||
                           (!isGroupReceiver() && HZWechatConfig.personalRedEnvelopEnable);
                };
 
                NSDictionary *(^parseNativeUrl)(NSString *nativeUrl) = ^(NSString *nativeUrl) {
                    nativeUrl = [nativeUrl substringFromIndex:[@"wxpay://c2cbizmessagehandler/hongbao/receivehongbao?" length]];
                    return [%c(WCBizUtil) dictionaryWithDecodedComponets:nativeUrl separator:@"&"];
                };

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-2-10 08:49 被HaDazs编辑 ,原因:
收藏
免费 8
支持
分享
最新回复 (8)
雪    币: 7962
活跃值: (4714)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
太强大了 ,不过动手能力不行也用不上啊 
2021-2-10 18:06
0
雪    币: 5596
活跃值: (2173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢大佬的无私分享
2021-2-23 11:38
0
雪    币: 238
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了
2021-3-9 01:17
0
雪    币: 546
活跃值: (657)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
老哥 我也是遇到一个问题,我是用其他方法添加了dylib库到wechat 但是我的微信只能安装到越狱机器上,非越狱机器 安装不上去,签名是个人签名
2021-7-3 17:07
0
雪    币: 49
活跃值: (2238)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
System32 老哥 我也是遇到一个问题,我是用其他方法添加了dylib库到wechat 但是我的微信只能安装到越狱机器上,非越狱机器 安装不上去,签名
用tweak写的话,需要把subStrate.dylib也插入到mach-o里边
最后于 2021-10-12 08:38 被flashgg编辑 ,原因:
2021-8-1 17:21
0
雪    币: 237
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

学习....

最后于 2021-8-23 19:20 被jozxing编辑 ,原因:
2021-8-23 16:54
0
游客
登录 | 注册 方可回帖
返回
//