iOS 微信自动抢红包(非越狱)详细实现步骤

2024-10-21
来源:网络整理

iOS启用微信自动抢红包(非越狱)

更新时间:2016年11月10日10:22:10 提交:lqh

本文主要介绍iOS(非越狱)如何自动抢微信红包的相关信息。下面是自动抢红包的详细实现步骤。有需要的朋友可以参考以下

iOS微信自动抢红包(非越狱)

现在微信红包很流行,尤其是在微信群里发红包。如果不及时抢红包,就根本抢不到,所以我就想着写一个插件来自动抢红包。经过网上查找资料,我实现了这个功能,如下:

微信红包

前言:最近笔者在研究iOS逆向工程,利用微信进行实践,在非越狱手机上实现了微信自动抢红包的功能。

题外话:本教程是一篇严肃的学术讨论文章。仅用于学习和研究。也请读者不要将其用于商业或其他非法方式。作者概不负责~~

好了,现在我们可以进入正题了!

本教程所需的工具/文件

-dump () () () 行

越狱机的开发者证书或企业证书

是的,如果你想达到不越狱自动抢红包的目的,你可能需要用到很多工具(工欲善其事,必先利其器^_^)。不过,没关系。您可以按照教程的步骤一步一步进行操作。如果不清楚步骤,可以重复实验。毕竟,天上不会掉馅饼。

解密微信可执行文件(Mach-O)

因为下载安装的应用程序都是加密的,所以我们需要使用一些工具来解密下载的App,俗称砸壳。这样以后分析App的代码结构会更容易。

首先我们需要一部已经越狱的手机(现在市面上越狱已经非常成熟,所以具体的越狱方法这里就不介绍了)。然后输入、安装、(调试程序时可以方便查看日志文件)这三个软件。

PS:笔者手机系统版本为iOS9.1。

在电脑上下载最新的微信。当时我下载的微信版本是6.3.13。下载完成后,屏幕上会显示下载的应用程序。

连接并安装您刚刚下载的微信应用程序。

打开Mac终端,使用ssh进入连接的终端(确保与Mac在同一网段,笔者的IP地址为192.168.8.54)。 root 密码默认为 。

SSH

下一步是找到微信ID。这里我有一个小技巧。我们可以关闭网上所有的应用程序,只保留微信,然后输入命令 ps -e

微信ID

这样我们就找到了微信可执行文件的具体路径。接下来我们需要找到微信的路径,输入命令-p

编译

首先记下我们刚刚获得的两条路径(和)。这时候我们就开始用它对微信二进制文件进行脱壳()。

确保我们从 中下载最新的源代码,进入源代码目录,并编译。命令如下:

这样我们就可以看到一个.目录下生成文件。

SCP

复制。这里我们使用 scp 命令。

scp 源文件路径 目标文件路径。详情如下:

SCP

开始破壳

的具体用法.是:S=//。 /

这说明脱壳成功,当前目录下会生成脱壳后的文件,即。还可以使用 scp 命令复制 .文件到计算机。接下来我们要正式转储微信可执行文件。

dump微信可执行文件

从 上下载最新的-dump源码,然后编译生成-dump(这里比较简单,就不详细解释了)。

导出微信的头文件

使用-dump命令导出刚刚砸下来的中的头文件。 ./-dump -s -S -H ./. -o ./.3-

微信自动抢红包设置_微信有红包自动抢怎么设置_设置微信抢红包自动抢

导出的头文件

这里我们可以新建一个项目,将刚刚导出的头文件添加到新项目中,这样可以更方便的找到微信相关代码。

微信头文件

找到.h和gr.h这两个文件,其中我们注意到这两个方法:- (void):(id)arg1:(id)arg2;, - (void)est:(id)arg1;。没错,接下来我们就要利用这两种方法来实现微信自动抢红包功能。实现原理是,通过hook微信的新增消息功能,判断是否是红包消息。如果是,我们调用微信的开红包方法。这样就可以达到自动抢红包的目的了。哈哈,是不是很简单呢?我们来看看它是如何实现的。

新建一个项目,因为默认不支持生成,所以我们需要下载。安装完成后(环境会提示安装失败,请参考安装问题),重新打开,就可以看到新项目的选项中的选项了。

代码

选择,这样我们就创建一个新的项目,我们为其命名。

删除.h文件,将.m改为.mm,然后将.h添加到项目中

因为微信不会主动加载我们的hook代码,所以我们需要将hook逻辑写入到构造函数中。

(()) void (){ //具体钩子方法}

hook微信::方法,实现方法如下:

//声明CMessageMgr类 CHDeclareClass(CMessageMgr); CHMethod(2, void, CMessageMgr, AsyncOnAddMsg, id, arg1, MsgWrap, id, arg2) { //调用原来的AsyncOnAddMsg:MsgWrap:方法 CHSuper(2, CMessageMgr, AsyncOnAddMsg, arg1, MsgWrap, arg2); //具体抢红包逻辑 //... //调用原生的打开红包的方法 //注意这里必须为给objc_msgSend的第三个参数声明为NSMutableDictionary,不然调用objc_msgSend时,不会触发打开红包的方法 ((void (*)(id, SEL, NSMutableDictionary*))objc_msgSend)(logicMgr, @selector(OpenRedEnvelopesRequest:), params); } __attribute__((constructor)) static void entry() { //加载CMessageMgr类 CHLoadLateClass(CMessageMgr); //hook AsyncOnAddMsg:MsgWrap:方法 CHClassHook(2, CMessageMgr, AsyncOnAddMsg, MsgWrap); }

项目全部代码,(源码下载地址)。

完成具体的实现逻辑后,就可以顺利生成了。

重新封装微信App

注入微信可执行文件

如果我们希望微信应用程序运行后能够执行我们的代码,我们首先需要将微信添加到我们的应用程序中。这里我们使用一个注入神器:从网上下载源码并编译。

只需执行以下语句即可成功完成注入。在注入之前,我们首先将之前保存的.到已脱壳的可执行文件。

./ 需要注入目标可执行文件

注入成功后,你会看到如下信息:

注射

新的。

application-identifier 123456.com.autogetredenv.demo com.apple.developer.team-identifier 123456 get-task-allow keychain-access-groups 123456.com.autogetredenv.demo

这里你可能不知道你的证书和其他信息,但这并不重要。作者在这里有一个小技巧。您可以找到已经打包了开发者证书或企业证书的App(例如名为Demo),然后在终端中输入以下命令: 通过以下命令可以找到相关信息:

./ldid -e ./Demo.app/demo

重新签名微信

接下来,复制我们生成的 (.)、我们刚刚注入的那个以及 .文件(可以在之前打包的App中找到)转换成.app。

命令格式:-f -s 证书名称 目标文件

PS:证书名称可以在钥匙串中找到

在微信中使用命令对相关文件进行签名。具体实现如下:

辞职

打包成ipa

重新签名微信后,我们就可以用它来生成ipa了。具体实现如下:

-sdk -v .app -o ~/.ipa

安装微信抢红包功能

如果以上步骤都成功的话,那么万事俱备,只需要东风了~~~

我们可以使用工具来安装改进的微信(这个ID需要添加到证书中)。

工作完成了! !

好了,我们可以看看挂钩微信抢红包的效果啦~

自动抢红包

项目全部代码,(源码下载地址)。

哈哈,是不是感觉很幸福,“妈妈再也不用担心我抢红包了”。如果你有兴趣,可以继续hook微信的其他功能,这不仅可以加强你的学习,还可以满足你自己的特殊需求。

感谢您的阅读,希望对大家有所帮助,也感谢您对本站的支持!

分享