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

微信砸壳

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

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

 

monkeydev

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

新建MonkeyDev项目

 

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

run编译真机调试

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

新增控件类WCTableViewManager 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

%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

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

1

2

3

4

5

6

7

8

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

hook红包消息实现自动抢 

1

2

3

4

5

6

7

8

9

10

11

12

13

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

                };

防撤回实现

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

%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

修改微信运动步数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

%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食用更佳

 感谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58181.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单几步教你爬取IOS手机端APP数据

作为一名“数据狗”和“码字狗”&#xff0c;手机端APP的数据爬取应该是一项基础技能。其实随着手机的广泛使用&#xff0c;不管是谁&#xff0c;懂点爬取的知识都不吃亏&#xff0c;毕竟“技多不压身”嘛。今天分享的爬取工具与步骤非常简单&#xff0c;数据小白也能很快上手。…

使用fiddler实现苹果ios手机抓包

Fiddler是一个强大的抓包工具&#xff0c;可以通过它抓取、查看和调试PC端、手机终端和远程服务器之间的http/https等通信。 Fiddler没有手机客户端&#xff0c;都是安装在PC上&#xff0c;要实现对手机上的程序抓包&#xff0c;则需要对PC上的Fiddler和手机端做一些配置。 此…

使用fiddler实现苹果ios手机抓包--的补充

网上有很多的配置步骤&#xff0c;我就不赘述&#xff0c;这里引用别人的一篇 https://blog.csdn.net/weixin_40608713/article/details/114873070 我这里要补充的是&#xff0c;如果按照常规设置依旧抓不了包&#xff0c;不妨尝试以下方法&#xff1a; 1、打开Fiddler官网链接…

最高年薪近56万!这些专业赢麻了!

来源&#xff1a;新智元 不用赘述&#xff0c;大家都知道&#xff0c;最近半年ChatGPT是有多么火爆。 随着ChatGPT的全球爆火&#xff0c;AIGC也已成功从科技领域破圈&#xff0c;成为跨越所有圈层的全民话题。 AIGC对图文、视频创作的颠覆&#xff0c;对相关行业已经产生了深远…

ChatGPT加强人机交互,共创智能社会|小智AI

ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT-3.5丨OpenAI ChatGPT|GPT-4|GPT-3|人机对话|ChatGPT应用|小智ai|小智ai|小智ai|小智ai|小智AI|chatgpt小智AI 自从ChatGPT的诞生以来&#xff0c;它作为一种先进的人工智能语言模型&#xff0c;在为…

【GPT4】微软 GPT-4 测试报告(8)局限性与社会影响

欢迎关注【youcans的AGI学习笔记】原创作品&#xff0c;火热更新中 微软 GPT-4 测试报告&#xff08;1&#xff09;总体介绍 微软 GPT-4 测试报告&#xff08;2&#xff09;多模态与跨学科能力 微软 GPT-4 测试报告&#xff08;3&#xff09;编程能力 微软 GPT-4 测试报告&…

【软件架构思想系列】模块化与抽象

前言 软件架构的本质:软件体系结构是软件系统的基本组织,包括组件的组成、它们之间的关系以及它们之间的交互。 Software architecture is the fundamental organization of a software system, including the composition of its components, the relationships between the…

拿到一套游戏服务端源码,该从哪看起?

开发游戏服务端&#xff0c;经常要接触一套全新的游戏代码。接触新代码贯穿于整个工作生涯&#xff0c;比如&#xff0c;作为刚入职的新人&#xff0c;要去熟悉项目代码&#xff0c;尽快上手工作&#xff1b;调到一个新的项目组工作时&#xff0c;要熟悉已有代码&#xff1b;给…

网页服务器怎么才能挤进去,逆水寒挤不进去服务器是正常操作 那挤进去的玩家都是什么感受?...

原标题&#xff1a;逆水寒挤不进去服务器是正常操作 那挤进去的玩家都是什么感受&#xff1f; 逆水寒开测第一天便形成了近年少见的挤服务器的热度&#xff0c;多少年过去了&#xff0c;鲜有端游能达到这样的挤服务器盛景&#xff0c;关于如何挤进去的技巧我们今天就不提了&…

分享24个网页游戏源代码,总有一个是你想要的

分享24个网页游戏源代码 24个游戏源代码下载链接&#xff1a;https://pan.baidu.com/s/1gYJlj8enJbh5mFS_wMaZBA?pwd4ncb 提取码&#xff1a;4ncb 下面是项目的名字&#xff0c;我放了一些图片&#xff0c;大家下载后可以看到。 Html5JS网页版捕鱼达人游戏 HTML5水果忍者游戏…

JavaScript练手小技巧:我破解了原神官网全屏滚动的秘密

这个标题有点夺人眼球&#xff0c;哈啊哈~骗点击率的。 “原神”官网当真的做的很漂亮&#xff0c;虽然我没玩过这个游戏&#xff0c;但是禁不住喜欢这个网站啊。 https://ys.mihoyo.com/ 最近居家教学上网课。除了上课&#xff0c;实在不想做学校安排的其它任务&#xff0c…

热血江湖2023年官服查线器源码

热血江湖官服查线器源码&#xff0c;方法就是向服务器发送封包&#xff0c;获取返回的服务器大区和线路数据。 等线太难了&#xff0c;主要是想做一个自动查线自动登录游戏的工具&#xff0c;能力有限&#xff0c;先分享查线的源码&#xff01; 有同样想法的同学可以拿着做有参…

在线答题助手c语言源码,很早之前发的逆水寒答题助手,开源!!自己可以修改成任何答题器源码!~~...

本帖最后由 chenbo1991 于 2020-4-16 11:03 编辑 这个是很早之前玩逆水寒为了科举弄出来的!!~~自己修改几处api就行!~~自己抓包修改就可以了.! QQ截图20200416105826.jpg (56.77 KB, 下载次数: 2) 2020-4-16 10:58 上传 .版本 2 .支持库 iext .判断开始 (组合框1.现行选中项 &a…

我是怎么抓取逆水寒大宋佳人漂亮的小姐姐的呢?70行代码解决问题

一年一度的大宋佳人活动又开始了&#xff0c;小姐姐们又开始了踊跃的报名&#xff0c;都有哪些漂亮的小姐姐呢&#xff1f;不放我们来爬一下看看 注&#xff1a;本文仅用于python爬虫学习&#xff0c;请勿滥用数据&#xff0c;严禁侵犯个人隐私 基础分析 大宋佳人活动主页面…

html制作《逆水寒》心得及部分代码

制作网页的心得和部分代码 布局 原图 首先&#xff0c;我们要明确网页的布局&#xff0c;以此来判断需要几个盒子&#xff0c;放在什么样的位置。从原网页中不难看出&#xff0c;我们可以把这张图分为这几个部分&#xff1a; 大的布局上&#xff0c;我们分为三个盒子。1号大…

chatgpt赋能python:Python分词,助力文本处理和搜索引擎优化

Python分词&#xff0c;助力文本处理和搜索引擎优化 作为一种广泛应用于文本处理的编程语言&#xff0c;Python在分词处理方面也有着得天独厚的优势。Python分词不仅可以帮助我们完成文本处理任务&#xff0c;还能够为搜索引擎优化提供便利。 什么是分词&#xff1f; 分词&a…

巴比特 | 元宇宙每日必读:百度冲刺ChatGPT,CTO王海峰任总指挥,三月份完成内测的目标能否达成?...

摘要&#xff1a;据财联社报道&#xff0c;2月7日百度官宣“文心一言”项目时&#xff0c;给自己掐上了“三月完成内测”的倒计时&#xff0c;多位百度员工表示&#xff0c;高层下了死命令&#xff0c;要在一个月时间内看到产品。为此&#xff0c;百度也集结了公司在深度学习、…

互联网高薪时代,彻底结束了?

作者| Mr.K 编辑| Emma 来源| 技术领导力(ID&#xff1a;jishulingdaoli) 两个月前&#xff0c;马斯克接受媒体采访时亲口承认&#xff0c;推特已裁员80%&#xff0c;从原来的近8000人&#xff0c;减少到了现在的1500名。这么大规模的裁员带来了什么“严重”后果呢&#xff1…

商业计划书范文3000_项目融资商业计划书模板范文PPT

商业计划书(Business Plane),简称为BP&#xff0c;大家可不要小看这一份BP&#xff0c;它是一个非常重要的存在&#xff0c;可以说是一块敲门砖&#xff0c;帮助创业者打开资本市场的大门。那么&#xff0c;如何打造一份项目融资商业计划书&#xff0c;这里为大家整理了一些模板…

项目融资计划书PPT模板

模板介绍 本套项目融资计划书PPT模板,模板编号&#xff1a;P26185&#xff0c;大小10MB,共27页,比例为16:9,由封面、目录、转场页、内容、结尾5个部分构成。 内含橙色,红色多种配色&#xff0c;精美简约风格设计&#xff0c;动态播放效果&#xff0c;精美实用。 一份设计精美…