描述
PC微信機器人,實現以下功能:
- 獲取通訊錄
- 發送文本、圖片、文件、xml文章、名片、群艾特消息
- 根據wxid查詢好友信息
- 根據群ID獲取所有群成員wxid
- 檢測好友狀態(是否好友、被刪除、被拉黑)
- 接收各類消息,可寫回調函數進行處理
- 封裝COM接口,方便使用自己喜歡的語言進行調用
- 群管理
- 微信多開
用途
- 淘客發單
- 無痕清粉
- 微信公眾號採集
- 聊天記錄備份
- 其他你能想到的用途
可用版本
微信電腦版3.5.0.46
微信電腦版3.6.0.18
微信電腦版3.7.0.26
微信電腦版3.7.0.30
主分支對應微信3.7.0.30版本,其他版本請查看對應分支。
編譯環境
Visual Studio 2019 (平台配置:win32(x86))
原理
通過逆向PC微信,定位到關鍵CALL,dll內聯彙編調用註冊32位COM組件,供64位/32位進程外部調用
目錄說明
./CWeChatRobot :COM組件的實現代碼
./DWeChatRobot :注入的DLL實現代碼,根據平台配置可編譯出socket版和COM版
./old_projects : 包含C#的調用示例以及3.7.0.26版本的E語言調用
./Python :python示例和接口測試文件
./wxDriver :driver的實現代碼
下載二進製文件請到:Release
快速啟動
以管理員權限執行以下命令:
# 安装
CWeChatRobot.exe /regserver
# 卸载
CWeChatRobot.exe /unregserver
調用
Python:
參考wxRobot.py
C#:
參考ComWechatRobotCsharp,感謝@RingoStudio 的貢獻
易語言:
參考ESDK,感謝@lovezm 的貢獻
更多功能
- 嘗試添加issue中的功能
有空的時候會按照上述順序進行開發,不過嘛,計劃只是計劃,如果未實現也請見諒也歡迎您提交PR
更新記錄
2022.04.01
- 使用SAFEARRAY返回通訊錄列表,可正確顯示好友暱稱中的特殊符號
- README中添加目錄說明
- 更新C#示例代碼,添加好友列表的遍歷示例
2022.04.11
- 修改獲取個人信息接口和發送文章接口,兼容老版wxid(未經測試,如有問題請提ISSUE)
- 添加接收消息的接口,可以寫回調對消息進行處理(參考Python示例文件)
2022.04.12
- 添加發送群艾特消息的接口
2022.04.12
- 添加通過群ID獲取所有群成員wxid接口
2022.04.13
- 更新群艾特接口,可同時艾特多人
2022.04.18
- 添加獲取數據庫句柄接口(部分句柄,獲取全量句柄需Hook)
- 添加執行SQL命令接口
- 添加在線數據庫備份接口
2022.06.01
- 適配微信3.7.0.26版本,部分功能未經測試,如有問題請報issue
2022.06.02
- 添加通過好友申請接口(配合接收消息接口可自動通過好友)
- 添加獲取聊天記錄數據庫句柄(好友申請消息類型為0x25)
- 優化了StartService接口,重複注入時不再關閉遠程進程
2022.06.04
- 完成通過wxid和v3數據加好友的COM接口(後續添加通過微信號、手機號、QQ號查詢V3數據接口)
- 優化接收消息邏輯,添加消息時間;新增Hook發送消息,返回數據中以一個BOOL值區分發送和接收
- 修復了一個BUG,該BUG可能導致Release配置下,COM接口無法正常加載DWeChatRobot.dll計算偏移
2022.06.07
- 添加獲取當前微信版本(讀註冊表)和啟動微信的接口
- 優化數據庫查詢接口,現在可以正常查詢BLOB類型
2022.06.10
- 新增關注公眾號、網絡查詢用戶信息、Hook語音、未加密圖片、自定義微信版本號接口
- Hook語音和圖片的接口暫時還有瑕疵,圖片收到後有可能不會自動下載;語音消息的文件名暫時是時間戳,計劃替換為該條消息id。有空再做優化。
2022.06.13
- 優化發送艾特消息接口,新增一個參數,指示是否自動填充被艾特人暱稱
- 優化發送文章消息接口,新增一個參數,用於展示消息卡片縮略圖
- 新增刪除好友接口
- 新增發送小程序接口
2022.06.18
- 修復了多個BUG
- 整理代碼結構,方便後續開發基於websocket的接口
- 添加64位程序注入DLL到32位程序的driver
2022.06.24
- 解決Python腳本中,socket接收數據可能不完整的問題
- 解決心跳時如果同步了同一個人的多條消息,只會返回一條的問題
- 感謝@shangdev 提供的思路,現在開啟hook圖片的時會修改自動下載圖片時段為全天
2022.06.30
- 已適配3.7.0.30版本
2022.07.19
- 新增修改備註接口
- 新增群管理功能,包括添加成員、刪除成員、設置公告、修改群名稱、設置群內個人暱稱、獲取群成員暱稱
2022.07.24
- 添加多開管理
2022.07.28
- 解決部分已知問題,優化多開管理
- 重構COM中的部分實現
2022.08.13
- 現在消息HOOK內容包含消息ID
- 完成發送消息的http接口,可參考wxDriver.py,其他接口還需要一點時間
- 新增項目配置文件,感謝@amchii 提供的方法
2022.08.21
- 所有功能http接口封裝完成,可接受get、post請求
- 提供http接口調用示例,參考wxDriver.py
2022.08.25
- 接收消息格式修改為json,現在也可以獲取到擴展信息,可從擴展信息中獲取到文件保存路徑或被艾特人wxid
- 優化獲取個人信息,獲取好友信息接口
2022.09.09
- 新增打開微信內置瀏覽器的功能
- 新增獲取公眾號歷史消息功能(具體能獲取多少未測試,請謹慎使用,以防封號)
- 修復了一個bug,該bug會導致圖片和語音保存到微信安裝目錄而非指定的目錄
- 優化實時消息接口,現在會帶上自己的wxid
- 優化圖片和語音保存路徑,方便區分來自不同賬號的消息
2022.09.10
- 中秋節快樂
- 新增轉發消息功能,請勿轉發語音、紅包等消息
- 實時消息接口新增
localId字段,該字段用於轉發消息接口;現在也可以接收到撤回消息提醒 - 優化COM連接點,在線程中進行消息廣播,客戶端可以阻塞以等待圖片、語音等資源落地
2022.09.18
- 修復了一個bug,在多個MSG.db存在時,無法轉發準確的消息;現在轉發消息功能使用msgid作為參數
- 修復了一個bug,該bug曾導致微信沒有選中的會話時,無法獲取實時消息
- 修復了一個bug,該bug曾導致部分微信號獲取個人信息時出現內存訪問衝突
- 優化實時消息接口,不再返回localId字段;extrabuf現在返回原始信息而不是base64編碼數據;新增一個字段,用於區分是否手機發送的消息(接收到的消息不含該字段)
- 優化個人信息接口,現在可以返回個人文件夾路徑
- 優化群艾特接口,優先填充群內暱稱
- 新增獲取二維碼接口,調用該接口時會切換到二維碼登錄
2022.09.22
- 新增獲取a8key功能
- 修復了一個bug,該bug曾導致獲取數據庫句柄接口只能生效一次
2022.09.27
- 優化轉發消息接口、獲取數據庫句柄接口,實時消息添加原始時間戳
2022.10.07
- 新增發送原始xml接口
- 新增退出登錄接口
- 嘗試修復文件發送失敗和格式化時間戳導致崩潰問題
- 實時消息新增一個字段,用於獲取視頻消息縮略圖保存位置
2022.10.16
- 新增收款接口
- 實時消息接口優化,支持獲取音視頻聊天信息,支持獲取手機端切換聯繫人時的提示信息
- 修復部分已知問題
2022.11.2
- 支持發送動態表情
- 支持夜間自動下載視頻(需開啟一次實時消息監聽)
- 新增通過消息id下載消息附件功能
打賞作者
請給作者一個star,感謝感謝
免責聲明
代碼僅供交流學習使用,請勿用於非法用途和商業用途!如因此產生任何法律糾紛,均與作者無關!