wxhelper/README.md

198 lines
6.8 KiB
Markdown
Raw Normal View History

2022-12-21 17:13:03 +08:00
# wxhelper
2023-03-28 11:03:45 +08:00
wechat hook 。PC端微信逆向学习。支持3.8.0.413.8.1.26, 3.9.0.28, 3.9.2.23版本。
2022-12-21 20:30:44 +08:00
#### 免责声明:
本仓库发布的内容,仅用于学习研究,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!
#### 项目说明:
2023-03-28 11:03:45 +08:00
本项目是个人学习学习逆向的项目,参考 https://github.com/ljc545w/ComWeChatRobot ,在此基础上实现了微信的的其它版本的部分内容。
2022-12-21 20:30:44 +08:00
2023-02-18 16:51:35 +08:00
#### 实现原理:
逆向分析PC端微信客户端定位相关功能关键Call编写dll调用关键Call。然后将该dll文件注入到微信进程。
2023-03-23 12:09:24 +08:00
dll在注入成功时创建了一个默认端口为19088的http服务端然后所有的功能直接可以通过http协议调用。
```
|----------------
-------------------------- 注入 | WeChat.exe |
| ConsoleApplication.exe |————————> |---------------- -------------- 访问 ---------
| | | wxhelper.dll |————————>| 启动http服务 | <----------| clent |
|-------------------------- |----------------- -------------- --------
2023-02-18 16:51:35 +08:00
2023-03-23 12:09:24 +08:00
```
2022-12-21 20:30:44 +08:00
#### 使用说明:
2023-02-18 16:51:35 +08:00
支持的版本3.8.0.413.8.1.26,3.9.0.28。
源码和主要实现在相应的分支内。
src:主要的dll代码
tool简单的注入工具一个是控制台一个是图形界面。
2023-03-27 23:00:22 +08:00
python: tcpserver.py: 简单的服务器用以接收消息内容。decrpty.py: 微信数据库解密工具。
2023-02-21 16:54:50 +08:00
source: 简单的命令行远程注入源码。
2023-02-18 16:51:35 +08:00
2023-01-10 10:03:57 +08:00
2023-03-28 11:03:45 +08:00
#### 0.首先安装对应的版本的微信分支名称即代表的是微信对应的版本。dll的前缀都会带有微信版本。
#### 1.使用注入工具注入wxhelper.dll,注入成功后即可通过postman直接调用对应的接口。
2023-03-28 11:04:54 +08:00
#### 2.可以使用python/clent.py进行简单测试。
2023-03-28 11:03:45 +08:00
##### 特别注意:
##### 1.hook相关的接口都需要先调用对应的hook接口server端才会收到相应消息。
##### 2.注意个别接口在一些版本没有实现,功能预览里没有的功能就是没有实现。
##### 3.如果注入不成功,请先检查注入工具,或者使用其他注入工具。
##### 4.相关功能只在win11环境下进行简单测试其他环境无法保证。
2023-02-09 16:11:43 +08:00
#### 参与项目
个人精力和水平有限,项目还有许多不足,欢迎提出 issues 或 pr。期待你的贡献。
2023-01-10 10:03:57 +08:00
2022-12-21 20:30:44 +08:00
2023-02-10 17:05:11 +08:00
2023-03-23 12:09:24 +08:00
#### 问题讨论
个人常用的方法请参考https://github.com/ttttupup/wxhelper/wiki
2023-03-28 11:03:45 +08:00
使用上的问题可查询https://github.com/ttttupup/wxhelper/discussions
2023-03-29 10:10:21 +08:00
数据库解密请参考https://github.com/ttttupup/wxhelper/wiki
2023-03-30 23:18:46 +08:00
个人精力有限只维护最新版本旧版本的bug会在新版本中修复不维护旧版本。
2023-02-10 17:05:11 +08:00
2022-12-21 20:42:34 +08:00
#### 编译环境
2022-12-21 20:30:44 +08:00
2022-12-26 16:57:18 +08:00
Visual Studio 2022(x86)
Visual Studio code
cmake
2022-12-21 20:42:34 +08:00
vcpkg
2023-03-28 11:03:45 +08:00
#### 编译构建
先准备好编译环境。
2022-12-27 10:07:14 +08:00
以下是在vscode中操作vs中的操作类似。
1.安装vcpkgcmakevscode
2022-12-21 20:30:44 +08:00
2022-12-27 10:07:14 +08:00
2.安装相应的库如果安装的版本不同则根据vcpkg安装成功后提示的find_package修改CMakeLists.txt内容即可。或者自己编译。
```
vcpkg install mongoose
vcpkg install nlohmann-json
```
3.vscode 配置CMakePresets.json,主要设置CMAKE_C_COMPILER 和CMAKE_CXX_COMPILER 为cl.exe.参考如下
```
{
"name": "x86-release",
"displayName": "x86-release",
"description": "Sets Ninja generator, build and install directory",
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"architecture":{
"value": "x86",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe",
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
"CMAKE_TOOLCHAIN_FILE": {
"value": "C:/soft/vcpkg/scripts/buildsystems/vcpkg.cmake",
"type": "FILEPATH"
}
},
"environment": {
}
}
```
2023-02-09 16:11:43 +08:00
4.vscode中右键configure all projects,在Terminal中点击Run Task如没有先配置build任务然后运行即可
2022-12-26 16:57:18 +08:00
2023-02-09 16:11:43 +08:00
5.命令行注入工具,注入命令
``` javascript
//-i 注入程序名 -p 注入dll路径
// -u 卸载程序名 -d 卸载dll名称
2023-03-09 17:47:36 +08:00
// -m pid 关闭微信互斥体,多开微信
2023-03-22 17:02:35 +08:00
// -P port 指定http端口需要使用 specify-port 分支的生成的dll
2023-02-09 16:11:43 +08:00
//注入
ConsoleInject.exe -i demo.exe -p E:\testInject.dll
//卸载
ConsoleInject.exe -u demo.exe -d testInject.dll
2023-03-09 17:47:36 +08:00
//多开
ConsoleInject.exe -m 1222
2023-03-22 17:02:35 +08:00
// 注入并指定http端口
ConsoleInject.exe -i demo.exe -p E:\testInject.dll -P 18888
2023-02-09 16:11:43 +08:00
```
2023-01-10 13:55:45 +08:00
2022-12-26 16:57:18 +08:00
#### 更新说明
2023-01-02 11:56:03 +08:00
2022-12-26 增加3.8.1.26版本支持。
2022-12-26 16:57:18 +08:00
2023-01-02 11:56:03 +08:00
2022-12-29 新增提取文字功能。
2023-02-09 16:11:43 +08:00
2023-01-02 退出微信登录。
2023-01-31 新增修改群昵称仅支持3.8.1.26)。
2023-02-01 新增拍一拍仅支持3.8.1.26)。
2023-02-04 新增群消息置顶和取消置顶。
2023-02-06 新增确认收款。
2023-02-08 新增朋友圈消息。
2023-02-13 13:31:42 +08:00
2023-02-09 新增3.9.0.28版本基础功能。
2023-02-17 08:48:00 +08:00
2023-02-13 新增群昵称和微信名称。
2023-02-17 14:49:12 +08:00
2023-02-17 : 新增通过wxid添加好友,搜索查找微信。
2023-02-09 16:11:43 +08:00
2023-03-04 11:34:07 +08:00
2023-03-02 新增发送@消息
2023-03-21 12:34:57 +08:00
2023-03-04 新增消息附件下载
2023-03-30 23:16:25 +08:00
2023-03-21 新增hook语音
2023-03-30 新增获取语音文件(推荐使用这个非hook接口)
2023-03-02 11:43:33 +08:00
2023-02-09 16:11:43 +08:00
#### 功能预览:
0.检查是否登录
1.获取登录微信信息
2.发送文本
2023-03-02 11:43:33 +08:00
3.发送@文本
2023-02-09 16:11:43 +08:00
5.发送图片
6.发送文件
9.hook消息
10.取消hook消息
2023-02-10 15:57:32 +08:00
11.hook图片
2023-03-21 12:34:57 +08:00
12.取消hook图片
13.hook语音
14.取消hook语音
2023-02-17 08:48:00 +08:00
17.删除好友
2023-02-17 14:49:12 +08:00
19.通过手机或qq查找微信
2023-02-17 08:48:00 +08:00
20.通过wxid添加好友
2023-02-09 16:11:43 +08:00
25.获取群成员
2023-02-18 09:10:41 +08:00
26.获取群成员昵称
2023-02-09 16:11:43 +08:00
27.删除群成员
28.增加群成员
31.修改群昵称
2023-02-10 15:57:32 +08:00
32.获取数据库句柄
2023-03-16 17:02:26 +08:00
34.查询数据库
35.hook日志
36.取消hook日志
2023-02-10 15:57:32 +08:00
40.转发消息
2023-02-09 16:11:43 +08:00
44.退出登录
2023-02-10 15:57:32 +08:00
45.确认收款
46.联系人列表
47.获取群详情
48.获取解密图片
49.图片提取文字ocr
50.拍一拍
51.群消息置顶消息
52.群消息取消置顶
53.朋友圈首页
2023-02-13 13:31:42 +08:00
54.朋友圈下一页
2023-03-04 11:34:07 +08:00
55.获取联系人或者群名称
56.获取消息附件(图片,视频,文件)
2023-03-30 23:16:25 +08:00
57.获取语音文件(silk3格式)
2022-12-21 20:42:34 +08:00
#### 感谢
2022-12-26 16:57:18 +08:00
https://github.com/ljc545w/ComWeChatRobot
https://github.com/NationalSecurityAgency/ghidra
https://github.com/x64dbg/x64dbg