Linux docker wechat hook镜像
在 Linux 下可一键启动的 Wechat Hook 镜像,仅供学习交流,严禁用于商业用途,请于24小时内删除。
项目的 Docker 镜像基于:DoChat ,Hook程序基于:wechatPc,十分感谢两位作者。
镜像启动的组件:
- PHP7.2 运行 ServerPhp 目录下的 Websocket 接口服务器,端口 5678
- tigerVNC 服务器用于提供图形显示,端口 5905
- Wine 环境运行 Hook 程序
- Wine 环境运行微信程序
运行镜像:
docker run \ --name wechathook \ -p 127.0.0.1:5905:5905 \ -p 127.0.0.1:5678:5678 \ -e VNCPASS=asdfgh123 \ -e APP_ID=CD7160A983DD8A288A56BAA078781FCA \ -e APP_KEY=F2B283D51B3F4A1A4ECCB7A3621E7740 \ -e PHPDEBUG=true \ -e WECHAT_DEST_VERSION=3.3.0.115 \ -dti \ --ipc=host \ -v ~/DoChat/WeChat\ Files/:'/home/user/WeChat Files/' \ -v ~/DoChat/Application\ Data:'/home/user/.wine/drive_c/users/user/Application Data/' \ --privileged \ endokai/wechatpchook
参数说明
-
端口:
- 5905: VNC 的端口
- 5678: Websocket API 的通信端口
-
挂载:
- 这两个目录是微信的数据目录,继承自 DoChat 镜像。
-
环境变量:
- VNCPASS: 设置 VNC 的密码
- APP_ID和APP_KEY: 设置 wechatPc 的密钥
- WECHAT_DEST_VERSION: 微信自定义版本号,默认 3.3.0.115。(伪装微信版本所用)
- PHPDEBUG: 日志详细开关,默认打开,设置为false可关闭。
使用说明:
API使用方法:
API使用方法参见Web文件夹下的websocket.js文件,配合查看WechatOffset.h
Web端使用方法:
wechatPc提供一个简易的Web端。下载此项目,打开Web文件夹。(或者使用 DownGit 仅下载 Web 目录)
修改Web/common/js/websocket.js文件靠后面的一个Websocket连接地址,改为API端口地址,进入Web目录下,使用浏览器打开index.html即可使用。
以下是 wechatPc 项目的原说明
PC端微信Hook源码
PC微信hook源码,仅供学习,请不要用于商业、违法途径,本人不对> 此源码造成的违法负责!
说明
请看完下面每一步说明与操作,可以进群咨询。
技术学习与交流群
- QQ群:147694968
- 说明:此群仅限学习和交流,无其他用处
目录说明
- WechatSetup:微信安装包,也可到官网下载对应版本安装包。
- WechatRobot:Hook端主程序源码目录,C++程序,编译后放到Bin> 目录下运行。
- WechatDll:注入库源码,C++程序,编译后放到Bin目录下运行。
- ServerPhp:服务端源码,PHP程序,wokerman框架v3.5,相关框> 架资料可以从官网查看。
- Web:web端源码,HTML5程序。
- Bin:Hook端和注入库编译后的存放与运行目录。
- PhpBin:PHP Windows运行环境,如果不会PHP安装的可以直接使> 用这个。
程序说明
- Hook原理:exe注入DLL到微信进程,实现对微信的消息拦截、方法> 调用。
- 程序语言:exe和DLL库是C++编写,服务端是PHP的workman框架编> 写,web端是HTML5编写。
- 限制:此程序仅限PC端微信2.8.0.121版本,需要其他版本则需要更> 新Hook偏移量。
- 升级:微信2.8.0.121升级到其他版本,可以借助《微信基址-2.8.> 0.121.txt》里面的特征码进行OD捕获偏移量。
- 实现的功能:[点击这里查看](https://github.com/> chengciming/wechatPc/blob/master/WechatDll/WechatDll/> WechatOffset.h)
程序语言版本
- C++是基于VS2017开发,SDK版本:10.0.17763.0,工具集:> v141,MFC:标准Window库
- PHP限制版本看workman官方v3.5版本限制,建议PHP7以上
环境
- 客户端:windows
- 服务端:windows or linux --> for PHP
- 通讯机制:WebSocket
- 通讯流程:WechatDll(注入到微信) <--> [WS] <--> > WechatRobot(操作界面) <--> [WS] <--> ServerPhp(服务端) > <--> [WS] <--> Web(HTML操作界面)
配置
服务端配置(ServerPhp)
- 配置文件:wechatPc/ServerPhp/Config/Config.php
- debug项为调试开关,开启将打印消息到屏幕
- listen项为Hook端通讯监听地址和端口,Hook端即为> WechatRobot
- web_listen项为web端通讯监听端口
- worker项则为workman框架的配置,可以看官网解说
Hook端配置(WechatRobot --> Bin)
- 配置文件:wechatPc/Bin/Debug/Config.txt
- app_id、app_key为认证授权使用,未认证的不可通讯
- wesocket_server_address和wesocket_server_port为服务> 端通讯的IP和端口,对应服务端配置listen项,服务端即ServerPhp
web端配置(Web)
- 配置文件:
- 文件最后面找到:ws = new WebSocket("ws://127.0.0.> 1:5678");
- 将127.0.0.1:5678改为服务端IP和端口,对应服务端配置> web_listen项,服务端即ServerPhp
启动
服务端启动
E:\git\wechatPc> E:\git\wechatPc>cd ./ServerPhp E:\git\ServerPhp>composer install // 此操作是安装> workman包(安装一次即可),不会安装composer的同学到群里下载> vendor目录放进去 E:\git\ServerPhp>E:\git\wechatPc\PhpBin\php index.php > start ----------------------- WORKERMAN > ----------------------------- Workerman version:3.5.31 PHP version:7.2.25 ------------------------ WORKERS > ------------------------------- worker > listen processes status Server:Wechat websocket://0.0.0.> 0:8686 4 [ok] [PID:1640 | 2020-09-06 08:53:28.985] Worker Started. [PID:1640 | 2020-09-06 08:53:29.432] Transit Web > Connect: ConnectId=1 [PID:1640 | 2020-09-06 08:53:31.056] Transit Wechat > Connect: ConnectId=2web端启动
1. 直接浏览器打开访问index.html 2. 打开后点击左下角图标,弹窗里面点击“新开一个”,exe将自动启动> 微信并且注入
Hook端启动
1. 环境:window环境下 2. 操作:点击运行wechatPc/Bin/Debug/WechatRobot.exe文件使用说明
- exe和dll的操作界面是开发调试使用,非开发情况下不要操作。
- 使用web端操作,包括启动微信。
大佬,打个赏吧
![微信打赏二维码](https://github.com/chengciming/> wechatPc/blob/master/images/微信打赏二维码.jpg) ![支付宝打赏二维码](https://github.com/chengciming/> wechatPc/blob/master/images/支付宝打赏二维码.jpg)