文档章节

ios-微信自动抢红包插件

余成海
 余成海
发布于 2016/03/22 10:51
字数 632
阅读 2099
收藏 6

之前分享过如何搭建theos开发环境

这次分享下用theos开发一个微信自动抢红包的插件

微信相关类参考来自http://bbs.iosre.com/ ,大家也可以自己结合静态动态分析来找到微信关于红包的几个类

---------------------------------------又是凌乱分割线----------------------------------------

大概思路:在微信聊天界面中BaseMsgContentViewController,发现有红包出现WCPayC2CMessageNodeView,自动模拟点击事件onClick,弹出红包详情页WCRedEnvelopesReceiveHomeView,自动获取红包OnOpenRedEnvelopes

问题来了:

问题1:怎么知道红包什么时候出现呢?

答:通过勾取(- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath) 方法,当红包出现的时候会通过reloadData刷出红包,ios开发都懂的,这是必走的过程。通过获取cell中contentView的subViews找到WCPayC2CMessageNodeView就是说明有红包的出现

问题2:如何过滤掉已经抢过的红包

答:其实最好的办法就是能记录下打开过的红包id,但是从上面几个类的分析中没有分析出红包id的位置,大家可以看看这个红包详情页WCRedEnvelopesReceiveHomeView的data类型,红包id肯定在data里面,只是什么结构需要继续分析下

-(id)initWithFrame:(CGRect)frame andData:(id)data delegate:(id)delegate;
-(void)refreshViewWithData:(id)data;

我目前的做法是比较low,就是只查看最后一个cell的类型,如果是红包就打开,打开后会有打开提示语放到tableView的最后,所以不会重复打个一个cell

问题3:为什么要一直打开聊天界面才能自动抢红包,在首页不行吗?可能多个群在一起抢红包呢?

答:当然可以在首页做到直接抢红包了,只是需要分析底层消息体获取解析的代码,难度可能比界面分析要难很多。

当然,大神年年有,今年特别多,看这个 https://github.com/buginux/WeChatRedEnvelop 

------------------------------------------凌乱的分割线---------------------------------------------

我自问自答也是够了,上代码让大家看看吧

%hook BaseMsgContentViewController

%new
- (id)someValue {
	return objc_getAssociatedObject(self, @selector(someValue));
}
 
%new
- (void)setSomeValue:(id)value {
	objc_setAssociatedObject(self, @selector(someValue), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

%end

%hook BaseMsgContentViewController

- (id)tableView:(id)arg1 cellForRowAtIndexPath:(id)arg2
{
	UITableViewCell *cell = %orig(arg1,arg2);
	NSIndexPath *indexpath = arg2;
 	NSString *value = [self performSelector:@selector(someValue)];
  	if(indexpath.row + 1 == [value integerValue])
  	{
  		for (id subView in cell.contentView.subviews)
  		{
  			if([NSStringFromClass([subView class]) isEqualToString:@"WCPayC2CMessageNodeView"])
    		{    	
	   			[subView performSelector:@selector(onClick)];
   			}
  		}
 	}
	return cell;
}

- (long long)tableView:(id)arg1 numberOfRowsInSection:(long long)arg2
{
	long long result = %orig(arg1,arg2);
	[self performSelector:@selector(setSomeValue:) withObject:[NSString stringWithFormat:@"%zd",result]];
	return result;
}

%end

%hook WCRedEnvelopesReceiveHomeView

- (void)refreshViewWithData:(id)arg1 {
	%orig;
	[self performSelector:@selector(OnOpenRedEnvelopes)];
	[self performSelector:@selector(OnCancelButtonDone)];
}
%end


© 著作权归作者所有

共有 人打赏支持
余成海
粉丝 61
博文 57
码字总数 29577
作品 0
杭州
iOS工程师
BUF早餐铺 微软取代Facebook成为网络钓鱼者伪装的首选公司;iOS 12 beta 4:解锁才能使用USB配件;美女因窃取瑟琳娜戈麦斯账户信息被指控

  各位Buffer早上好,今天是2018年7月19日星期四,农历六月初七。今天份的BUF早餐内容主要有:微软取代Facebook成为网络钓鱼者伪装的首选公司;iOS 12 beta 4:解锁才能使用USB配件;美女因...

FreeBuf
07/19
0
0
如何做好iOS应用安全?这有一把行之有效的“三板斧”

本文由 网易云 发布 iOS应用面临很多破解问题,常见的有IAP内购破解、山寨版本、破解版本等;大众应用上,微信抢红包、微信多开等;而在iOS游戏上,越来越泛滥的外挂问题也不断困扰着游戏厂商...

wangyiyungw
05/15
0
0
苹果与微信“短兵相接” “神仙打架”不能让用户买单

苹果与微信此次“短兵相接”,更多反映出两大巨头关于游戏规则的一场“暗战”。即便如此,也绝不能将绑架用户利益、通过随意更改产品功能,作为自己占领高地的“撒手锏”。无论苹果还是微信,...

六库科技
06/08
0
0
iOS逆向篇之微信抢红包(下)

上文已经知道收到红包消息与开红包方法,那么只需在收到红包消息时,调用开红包方法,就可以完成自动抢红包 完整的工程地址 一 红包消息时调用开红包方法 上篇hook到了收到红包消息的方法就是...

meryin
05/29
0
0
iOS使用Objective-c自定义cordova插件(-)

本系列教程为博主初次使用开发,内容如有差错,欢迎指正,敬请谅解。 博客地址:http://blog.img421.com/iosshi-yong-object-czi-ding-yi-cordovacha-jian/ Mac安装ionic和cordova我们已经熟悉,...

Michaelyn
2017/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day58-20180816-流利阅读笔记-待学习

苹果市值破万亿,iPhone 会涨价吗? Lala 2018-08-16 1.今日导读 苹果教父乔布斯曾经说过:“活着就是为了改变世界。”虽然他在 56 岁时就遗憾离世,但他极具创新和变革的精神早已深埋进苹果...

aibinxiao
20分钟前
4
0
[雪峰磁针石博客]python3快速入门教程1 turtle绘图-2函数

菲波那契序列: >>> # Fibonacci series:... # the sum of two elements defines the next... a, b = 0, 1>>> while b < 10:... print(b)... a, b = b, a+b...112......

python测试开发人工智能安全
今天
0
0
java环境变量配置最正确的方式

原贴:https://blog.csdn.net/qq_40007997/article/details/79784711,十分详细,亲测有效

kitty1116
今天
0
0
49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
2
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部