吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 38652|回复: 336
收起左侧

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

    [复制链接]
hzwsuki 发表于 2021-2-9 22:04
本帖最后由 hzwsuki 于 2021-2-17 13:24 编辑

#

环境

环境 版本
操作系统 MacOS Mojave 10.14.6
手机系统 Iphone6 IOS12
mac上面的 theos 最新版
xcode 11.3.1
MonkeyDev

效果

微信步数
image-20210209183218469.png
防撤回
image-20210209183313110.png
自动抢红包

MyVideo_3.gif

微信砸壳

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

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

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

image-20210209141251773.png

monkeydev

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

新建MonkeyDev项目

image-20210114114258622.png
把砸壳后的微信ipa拖进工程中的TargetApp目录

run编译真机调试

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

image-20210209144632333.png
新增控件类WCTableViewManager

%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];

3321612859343_.pic.jpg
hook红包消息实现自动抢

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:@"&"];
                };

防撤回实现

%hook CMessageMgr
  - (void)onRevokeMsg:(CMessageWrap *)arg1 {

    if (HZWechatConfig.preventRevoke) {
        NSString *msgContent = arg1.m_nsContent;

        NSString *(^parseParam)(NSString *, NSString *,NSString *) = ^NSString *(NSString *content, NSString *paramBegin,NSString *paramEnd) {
            NSUInteger startIndex = [content rangeOfString:paramBegin].location + paramBegin.length;
            NSUInteger endIndex = [content rangeOfString:paramEnd].location;
            NSRange range = NSMakeRange(startIndex, endIndex - startIndex);
            return [content substringWithRange:range];
        };

        NSString *session = parseParam(msgContent, @"<session>", @"</session>");
        NSString *newmsgid = parseParam(msgContent, @"<newmsgid>", @"</newmsgid>");
        NSString *fromUsrName = parseParam(msgContent, @"<![CDATA[", @"撤回了一条消息");
        CMessageWrap *revokemsg = [self GetMsg:session n64SvrID:[newmsgid integerValue]];

        CContactMgr *contactMgr = [[objc_getClass("MMServiceCenter") defaultCenter] getService:objc_getClass("CContactMgr")];
        CContact *selfContact = [contactMgr getSelfContact];
        NSString *newMsgContent = @"";

        if ([revokemsg.m_nsFromUsr isEqualToString:selfContact.m_nsUsrName]) {
            if (revokemsg.m_uiMessageType == 1) {       // 判断是否为文本消息
                newMsgContent = [NSString stringWithFormat:@"拦截到你撤回了一条消息:\n %@",revokemsg.m_nsContent];
            } else {
                newMsgContent = @"拦截到你撤回一条消息";
            }
        } else {
            if (revokemsg.m_uiMessageType == 1) {
                newMsgContent = [NSString stringWithFormat:@"拦截到一条 %@撤回消息:\n %@",fromUsrName, revokemsg.m_nsContent];
            } else {
                newMsgContent = [NSString stringWithFormat:@"拦截到一条 %@撤回消息",fromUsrName];
            }
        }

        CMessageWrap *newWrap = ({
            CMessageWrap *msg = [[%c(CMessageWrap) alloc] initWithMsgType:0x2710];
            [msg setM_nsFromUsr:revokemsg.m_nsFromUsr];
            [msg setM_nsToUsr:revokemsg.m_nsToUsr];
            [msg setM_uiStatus:0x4];
            [msg setM_nsContent:newMsgContent];
            [msg setM_uiCreateTime:[arg1 m_uiCreateTime]];

            msg;
        });

        [self AddLocalMsg:session MsgWrap:newWrap fixTime:0x1 NewMsgArriveNotify:0x0];
        return;
    }
    %orig;
}

%end

修改微信运动步数

%hook WCDeviceStepObject
-(NSInteger)m7StepCount {
    NSInteger stepCount = %orig;
    NSInteger newStepCount = HZWechatConfig.changedSteps;

    return HZWechatConfig.changeSteps ? newStepCount : stepCount;
}

-(NSInteger)hkStepCount {
    NSInteger stepCount = %orig;
    NSInteger newStepCount = HZWechatConfig.changedSteps;

    return HZWechatConfig.changeSteps ? newStepCount : stepCount;
}

%end

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

3301612839024_.pic_hd.jpg

附上未签名版ipa,仅供学习研究使用,切勿用作非法用途!
需要自己使用爱思或者其他自签工具
自签流程参考:下载itunes ,tunes里面有一个账户,先登陆你的id,然后授权这个电脑,然后用这个id登陆itunes里面的商店.保持itunes不关闭,打开爱思,然后用刚刚的id签名
未签名版.txt (66 Bytes, 下载次数: 1705)



## 感谢
MonkeyDev
WeChatRedEnvelop
iOS应用逆向与安全之道

最后

新年快乐

免费评分

参与人数 72威望 +1 吾爱币 +82 热心值 +59 收起 理由
南方路人 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
fdq5186 + 1 我很赞同!
QiangYong6666 + 1 + 1 谢谢@Thanks!
Mint_Grass + 1 + 1 用心讨论,共获提升!
jerrylin + 1 我很赞同!
鱼儿上岸跳高楼 + 1 我很赞同!
junjia215 + 1 不错呀,正好想学习 感谢分享
jenson1 + 1 + 1 我很赞同!
小助哥 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
nisosaikou + 1 热心回复!
奈斯小B + 1 + 1 谢谢@Thanks!
kofi + 1 我很赞同!
八戒吖 + 1 + 1 用心讨论,共获提升!
baisskm + 1 + 1 谢谢@Thanks!
yanchaobbk + 1 + 1 用心讨论,共获提升!
祖安猎妈人 + 1 + 1 刚好需要
ystc + 1 已经处理,感谢您对吾爱破解论坛的支持!
_NEWBEE_ + 1 + 1 谢谢@Thanks!
沉睡的影子 + 1 鼓励转贴优秀软件安全工具和文档!
xiaowangshao + 1 + 1 我很赞同!
taosiyuanbj + 1 + 1 谢谢@Thanks!
a8358185 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
勇者゛ + 1 + 1 我很赞同!
萧瑟的暧昧 + 1 + 1 我很赞同!
苏阳颜 + 1 + 1 谢谢@Thanks!
gdstxl + 1 + 1 大神,能不能增加微信秘友功能?
华仔 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
silent_grief + 1 厉害啊
故事不太长 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
彡彡來迟 + 1 + 1 谢谢@Thanks!
小壮壮 + 1 + 1 我很赞同!
apple9704 + 1 + 1 谢谢@Thanks!能搞了语音转发进去吗
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bigmur + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sfr1103 + 1 + 1 谢谢@Thanks!
Acflymeon + 1 谢谢@Thanks!
DaiTian + 1 谢谢@Thanks!
sunzhe + 1 谢谢@Thanks!
xuwangli45 + 1 + 1 求更新8.0.2版本
flowercinxin + 1 热心回复!
qq65498198 + 1 + 1 谢谢@Thanks!
wjgwanwww + 1 我很赞同!
xunyixiangchao + 1 + 1 安装成功了,但点击图标闪退是为什么?
烧饼馒头包子 + 1 + 1 我很赞同!
yycmd + 1 + 1 用心讨论,共获提升!
wehaimian + 1 + 1 谢谢@Thanks!
y九五三 + 1 已成功安装,一睡醒自动抢了几十块红包 哈哈不怕错过了
xiaocai831219 + 1 + 1 谢谢@Thanks!
Kanye + 1 我很赞同!
gdbq2011 + 1 + 1 已成功安装
luoccans + 1 鼓励转贴优秀软件安全工具和文档!
liping1985 + 1 我很赞同!
jobewong + 1 谢谢@Thanks!
52pjtx10085 + 1 谢谢@Thanks!
wanfon + 1 + 1 谢谢@Thanks!
2595453382 + 1 谢谢@Thanks!
兜兜风f + 4 + 1 我很赞同!
qq110120130 + 1 + 1 谢谢@Thanks!
sgch007 + 1 + 1 谢谢@Thanks!
BananaProject + 1 + 1 谢谢@Thanks!
hdc8899 + 1 + 1 不错是不错。但是WX最大的难度是弄了这些修改之后,如何防止被封号!如果封.
街望 + 1 外行人看不懂:'(weeqw 求大佬出个视频
yueyueawyl + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
今晚酒肆不打烊 + 1 + 1 我很赞同!
connymew + 1 + 1 用心讨论,共获提升!
QingYi. + 1 + 1 我很赞同!
Dom-Lewis + 1 + 1 用心讨论,共获提升!
_小白 + 1 + 1 我很赞同!
天咗 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
kay666 + 1 + 1 谢谢@Thanks!
殘心 + 1 热心回复!
ynanp_ + 1 求成品,没有Mac

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

linbiliu 发表于 2021-2-15 20:54
建议加一个Callkit功能,其次方便粉丝安装
慵懒丶L先森 发表于 2021-2-10 02:52
膜拜,虽然看完后,脑子告诉我会了,但是手告诉我不行。关于环境的问题,虚拟机可以解决,但是这教程还是过于简化了,再详细一点就好了,特别是后面的重签名的问题,还是感谢分享
璐璐诺 发表于 2021-2-9 22:29
 楼主| hzwsuki 发表于 2021-2-10 10:43
慵懒丶L先森 发表于 2021-2-10 02:52
膜拜,虽然看完后,脑子告诉我会了,但是手告诉我不行。关于环境的问题,虚拟机可以解决,但是这教程还是过 ...

重签名的话i4、Sideloadly、AltDeploy+AltStore都行
MisS 发表于 2021-2-9 22:22
虽然没看懂,但是觉得很牛逼的感觉。。。
Flyi 发表于 2021-2-9 22:11
厉害了会小黑屋嘛
重九先生 发表于 2021-2-9 22:11
我想知道你是怎么安的第二个微信
沧海神月 发表于 2021-2-9 22:33
这个就很厉害了
lvjoker 发表于 2021-2-9 22:34
大佬,求个成品·!这样TX会不会检测到封号的?
淡淡不揩油i 发表于 2021-2-9 22:41
求个成品。。
m0216 发表于 2021-2-9 22:42
求个成品
qiyx 发表于 2021-2-9 22:43
大神求个成品~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表