/WeChat_tweak

iOS版功能最全的微信插件,支持最新版微信,具备自动抢红包,屏蔽消息和群消息,过滤特定的群聊,防止撤回消息,伪定位 (朋友圈和附近的人),修改微信运动步数和实时取景做聊天页的背景等功能。

Primary LanguageObjective-COtherNOASSERTION

WeChat-tweak

iOS版功能最全的微信插件,支持最新版微信,具备自动抢红包,屏蔽消息和群消息,过滤特定的群聊,防止撤回消息,伪定位 (朋友圈和附近的人),修改微信运动步数和实时取景做聊天页的背景等功能。

License MIT 

插件特点

i. 原生体验

插件 UI 完美嵌入微信设置中,开启各功能后,所有执行的任务都会静默进行,不干扰微信的正常使用。

ii. 自由设置延迟抢红包时间

有效防止抢红包速度太快而被拉黑或踢出群聊。

iii. 设置防止同时抢多个红包

最大程度避免被系统检测出使用插件,红包抢得更安心。

iv. 设置过滤特定的群聊

防止落入家人好友群、点餐群或者公司群抢红包的尴尬境地。

v. 伪定位

自由修改手机定位,偶尔出个国,发个朋友圈,装个逼。

vi. 屏蔽消息和群消息,防止撤回消息

屏蔽讨厌的人和群的消息,让他们不再打扰你,需要时可关闭,重新接收他们的消息,防止撤回消息,让你不再错过任何信息。

QQ群 (ID:614799921)

Preview

  • 插件设置
   
  • 自动抢红包
  • 屏蔽消息
 
  • 伪定位
  • 防止撤回消息

目录介绍

  • Dynamic library - dylib 目录 (Raw Dynamic Library) 和 modify 目录 (Modified Dynamic Library) ,可直接拿来注入。
  • Hook-Tools - Hook 使用的工具。
    • dumpdecrypted - 用于解密 iOS 的可执行文件,砸壳时可不需要。
    • otool - 一般 Mac 自带,用于查看解密后文件的依赖项检查。
    • install_name_tool - 一般 Mac 自带,更改动态库的依赖。
    • yoyolib - 用于向 iOS 的可执行文件中注入 dylib 。
    • optool - 将动态库注入目标二进制文件中。
    • class-dump - 导出app所有头文件 (class-dump -s -S -H ~/Desktop/xx.app -o ~/Desktop/xx-headers)。
    • ldid - 用于对 iOS 可执行文件进行签名的工具,在越狱 iOS 中替换 Xcode 自带的签名工具。
    • PackageApplication - 主要用来通过脚本打包 ipa 文件。
    • 010Editor701 - 一款全新概念的十六进制编辑器,其最强大的功能在于支持模板和脚本操作。
    • MachOView - 用于对 mach-o 文件分析的工具。
    • DYFCodesign - 用于对 iOS app 进行脚本重签名。
    • ios-app-signer - 打包 ipa 与重签名图形化工具。
    • iOSOpenDev - Xcode 增强工具,通过它生成用于注入的 dylib 库。建议用 theos 编译 tweak 项目生成注入的 dylib 库。
  • Resources - AppIcon 目录 (带抢红包的Icon) 和 Audios 目录 (音频文件)。。
  • WeChatPluginDev - 微信插件 tweak 源码开发。

开发

喜欢开发学习的同学请移步Here

解压 ipa

解压 ipa ==> Here

修改 app 配置

  • 进入 WeChat 目录

注:右键 WeChat.app ,选择显示包内容,进入 WeChat 目录。

  • 找出 Info.plist 文件

双击,默认 Xcode 打开,修改 Info.plist 中的 Bundle display name 和 Bundle identifier,将 WeChatBundleVersion 的 Value 修改成 Bundle version 的 Value,将 URL types -> URL identifier 修改成新的 Bundle identifier,删除 build_time, by, path, rev, tag, uuid, ver 等 Key。

  • 删除 PlugIns 和 Watch 目录中的文件
  • 删除 _CFBundleDisplayName

删除 zh_CN.lproj InfoPlist.strings _CFBundleDisplayName
删除 zh_HK.lproj InfoPlist.strings _CFBundleDisplayName
删除 zh_TW.lproj InfoPlist.strings _CFBundleDisplayName
删除 en.lproj InfoPlist.strings _CFBundleDisplayName

  • 删除 Entitlements

删除 Entitlements_for_appstore.plist
删除 Entitlements_for_ext.plist
删除 Entitlements_for_jailbreak.plist
删除 Entitlements_wc_for_ext.plist
删除 Entitlements_wc.plist
删除 Entitlements_wx_for_ext.plist
删除 Entitlements_wx.plist

获取动态库

  • 使用自己编译完成的动态库

  • 已编译完成的动态库下载 ==> Here

重签名动态库

打开钥匙串访问

点击登录 -> 我的证书,找出要签名的证书,右击显示简介,找到常用名称,然后拷贝后面的字符串。

执行重签名 (Resign Dynamic Libraries) :

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/waplesubstrate 
# Payload/WeChat.app/waplesubstrate: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/wapleodtcorexpc
# Payload/WeChat.app/wapleodtcorexpc: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/andromeda.framework
# Payload/WeChat.app/Frameworks/andromeda.framework: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/mars.framework
# Payload/WeChat.app/Frameworks/mars.framework: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/marsbridgenetwork.framework
# Payload/WeChat.app/Frameworks/marsbridgenetwork.framework: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/matrixreport.framework
# Payload/WeChat.app/Frameworks/matrixreport.framework: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/OpenSSL.framework
# Payload/WeChat.app/Frameworks/OpenSSL.framework: replacing existing signature

codesign -f -s "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" Payload/WeChat.app/Frameworks/ProtobufLite.framework
# Payload/WeChat.app/Frameworks/ProtobufLite.framework: replacing existing signature

重签名应用

打开 Provisioning Profiles 目录

# 打开 Provisioning Profiles 目录
open ~/Library/MobileDevice/Provisioning\ Profiles/ 

在 Finder 工具栏选择以分栏或画廊方式显示,然后逐一点击 xxx.mobileprovision 文件,找出相匹配的 Bundle identifier 的配置文件 。也可以直接从苹果开发者后台下载证书和 xxx.mobileprovision 配置文件,导入证书或 p12 文件和 xxx.mobileprovision 配置文件 (可直接使用) 。

或者用 cat 命令逐一查看 xxx.mobileprovision 文件

cat ~/Library/MobileDevice/Provisioning\ Profiles/ece5c913-5c15-45fd-82e3-90f23739521f.mobileprovision
...
cat ~/Library/MobileDevice/Provisioning\ Profiles/269bffd1-3743-4014-bf07-4eb94c048460.mobileprovision

将 xxx.mobileprovision 文件拷贝至桌面

cp ~/Library/MobileDevice/Provisioning\ Profiles/269bffd1-3743-4014-bf07-4eb94c048460.mobileprovision ~/Desktop/wcpl_adhoc.mobileprovision

执行重签名应用 (Resign app) :

# 进入桌面,确保当前在桌面上操作
cd ~/Desktop/

./WeChat_tweak/Hook-Tools/DYFCodesign Payload/ "iPhone Developer: xxx@qq.com (9ZU3R2F3D4)" wcpl_adhoc.mobileprovision 
# /Users/xxx/Desktop/Payload/WeChat.app: replacing existing signature

打包应用

  • 方法一
# 进入桌面,确保当前在桌面上操作
# cd ~/Desktop/

zip -r WeChat_705_New.ipa Payload/

# 静默压缩
# zip -qr WeChat_705_New.ipa Payload/
  • 方法二

PackageApplication 主要用来通过脚本打包 ipa 文件,然而从 Xcode 8.2.1 版本之后,就不建议使用了。所以每次更新 Xcode 版本,都要手动添加 PackageApplication

PackageApplication 下载地址:

  1. 百度网盘下载:

https://pan.baidu.com/s/1AjVW8hWYlVz3Cu9UJByQOQ - 提取码:4sqb

  1. Github下载:

https://github.com/itenfay/WeChat_tweak/tree/master/Hook-Tools/

将下载的 PackageApplication 执行以下命令,并设置可执行权限:

chmod 777 ~/Downloads/PackageApplication

Applications -> 右键 Xcode.app -> 显示包内容 -> Contents -> Developer -> platforms -> iPhoneOS.platform -> Developer -> usr -> bin,进入这个目录之后,将设置了可执行权限的 PackageApplication 复制到这个目录。

或者使用命令如下:

cp ~/Downloads/PackageApplication /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin

执行打包 (Package app) :

xcrun -sdk iphoneos PackageApplication -v Payload/WeChat.app -o ~/Desktop/WeChat_705_New.ipa

安装 ipa

  1. 最后使用 爱思助手/ifunbox 安装 WeChat_705_New.ipa 。

  2. 使用 Xcode -> Window -> Devices and Simulators ,右击自己的设备,选择 Connect via IP Adress...,输入设备的IP,然后点击 Connect ,最后在 INSTALLED APPS 处点击 “+” 号,然后选择 WeChat_705_New.ipa ,点击 Open ,然后漫长地等待安装,大约1 ~ 3分钟。

💰打赏作者

如果觉得这个插件对你有帮助 (帮你抢到了比之前更多的红包,帮你发在国外高大尚的朋友圈,帮你屏蔽了厌烦并叨扰的人和群,帮你不再错过任何消息,...) ,那么不妨请我喝杯咖啡☕

     

Hook 版本下载

  • 百度网盘下载:

https://pan.baidu.com/s/1KCwmMWzchaZDeZQSlNt6qg - 提取码:3eqb

Hook 的版本只需要按照解压 ipa重签名应用打包应用安装 ipa等步骤执行即可。

坐标拾取

清华大学:116.333446,40.009557

免费证书

免费证书能进行真机调试程序。新建一个模板工程,通过 Xcode 登入自己的 Apple ID (菜单 Xcode -> Preferences... -> Accounts -> 点击 + -> 选择 Apple ID -> 输入账号密码 -> 登入),进入 TARGETS -> General -> Identify -> 设置 Bundle Identifier ,新 Xcode 版本进入 Signing & Capabilities -> 勾选自动管理签名 (Automatically manage signing),旧版本直接勾选自动管理签名 (Automatically manage signing) 即可,等待自动生成 Provisioning Profile 和 Signing Certificate 后,可查看 App ID, Team 等信息,但免费证书有个缺点 ,其中 Provisioning Profile (xxx.mobileprovision) 文件有效期仅只有 7 天,过期后需要打开 Xcode 模板工程重新生成。我们在学习时可以利用免费证书真机调试程序和重签名应用 (Resign app) ,但是长期使用,不建议使用免费证书,推荐可以去苹果开发者后台申请 Apple ID 账号或者去某宝找商家代签名 (风险需要自己承担)。

免责声明

  • 本文所有纯属个人娱乐学习用,相关技术仅用于学习交流,请勿用于非法目的,不得有其他任何商业用途!!!
  • 外挂有风险,使用需谨慎。
  • 当使用本插件时,请使用者自行承担各种状况,包括但不限于“禁用红包功能”以及“微信封号”。

我的简书

参考文章

iOS逆向交流

欢迎反馈

如果你遇到任何问题被卡住,请创建一个问题,我很乐意帮助你。