吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9448|回复: 104
上一主题 下一主题
收起左侧

[C&C++ 转载] wechat hook 支持3.8.1.26和3.9.0.28版本

    [复制链接]
跳转到指定楼层
楼主
odmin 发表于 2023-2-2 15:44 回帖奖励
本帖最后由 odmin 于 2023-2-20 08:45 编辑

免责声明:本发布的内容,仅用于学习研究,请勿用于非法用途和商业用途!如因此产生任何法律纠纷,均与作者无关!

3.8.1.26 源码+注入工具

3.9.0.28 release 版本
命令行注入工具,注入命令

命令行注入工具,注入命令

//-i  注入程序名   -p 注入dll路径   
// -u 卸载程序名   -d 卸载dll名称
//注入  
ConsoleInject.exe  -i c:\xx.exe -p c:\xx.dll
//卸载 
ConsoleInject.exe  -u xx.exe -d  xx.dll







使用说明:
支持的版本3.8.1.26。 src:主要的dll代码 tool:简单的注入工具。 python: 简单的服务器,用以接收消息内容。 release:编译好的dll。

0.首先安装对应的微信版本对应3.8.1.26版本。
1.通过cmake构建成功后,将wxhelper.dll注入到微信,本地启动tcp server,监听19088端口。
2.通过http协议与dll通信,方便客户端操作。
3.接口的url为http://127.0.0.1:19088,注入成功后,直接进行调用即可。
4.特别注意数据库查询接口需要先调用获取到句柄之后,才能进行查询。
5.相关功能只在win11环境下进行简单测试,其他环境无法保证。
6.具体参考源码。

编译环境
Visual Studio 2022(x86)
Visual Studio code
cmake
vcpkg

构建步骤
以下是在vscode中操作,vs中的操作类似。
1.安装vcpkg,cmake,vscode

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.参考如下

[Asm] 纯文本查看 复制代码
{
            "name": "x86-release",
            "displayName": "x86-release",
            "description": "Sets Ninja generator, build and install directory",
            "generator": "Ninja",
            "binaryDir": "${sourceDir}/out/build/${presetName}",
            "architectrue":{
                "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": {

            }
         
        }


4.vscode中右键configure all projects,在Terminal中点击Run Task,如没有先配置build任务,然后运行即可

更新说明

[Asm] 纯文本查看 复制代码
2022-12-26 : 增加3.8.1.26版本支持。

2022-12-29 : 新增提取文字功能。

2023-01-02 : 退出微信登录。

2023-01-31 : 新增修改群昵称(仅支持3.8.1.26)。

2023-02-01 : 新增拍一拍(仅支持3.8.1.26)。



[C++] 纯文本查看 复制代码
#ifndef API_H_
#define API_H_


typedef enum WECHAT_HTTP_APISTag
{
    // login check
    WECHAT_IS_LOGIN = 0,
    // self info
    WECHAT_GET_SELF_INFO,
    // send message
    WECHAT_MSG_SEND_TEXT,
    WECHAT_MSG_SEND_AT,
    WECHAT_MSG_SEND_CARD,
    WECHAT_MSG_SEND_IMAGE,
    WECHAT_MSG_SEND_FILE,
    WECHAT_MSG_SEND_ARTICLE,
    WECHAT_MSG_SEND_APP,
    // receive message
    WECHAT_MSG_START_HOOK,
    WECHAT_MSG_STOP_HOOK,
    WECHAT_MSG_START_IMAGE_HOOK,
    WECHAT_MSG_STOP_IMAGE_HOOK,
    WECHAT_MSG_START_VOICE_HOOK,
    WECHAT_MSG_STOP_VOICE_HOOK,
    // contact
    WECHAT_CONTACT_GET_LIST,
    WECHAT_CONTACT_CHECK_STATUS,
    WECHAT_CONTACT_DEL,
    WECHAT_CONTACT_SEARCH_BY_CACHE,
    WECHAT_CONTACT_SEARCH_BY_NET,
    WECHAT_CONTACT_ADD_BY_WXID,
    WECHAT_CONTACT_ADD_BY_V3,
    WECHAT_CONTACT_ADD_BY_PUBLIC_ID,
    WECHAT_CONTACT_VERIFY_APPLY,
    WECHAT_CONTACT_EDIT_REMARK,
    // chatroom
    WECHAT_CHATROOM_GET_MEMBER_LIST,
    WECHAT_CHATROOM_GET_MEMBER_NICKNAME,
    WECHAT_CHATROOM_DEL_MEMBER,
    WECHAT_CHATROOM_ADD_MEMBER,
    WECHAT_CHATROOM_SET_ANNOUNCEMENT,
    WECHAT_CHATROOM_SET_CHATROOM_NAME,
    WECHAT_CHATROOM_SET_SELF_NICKNAME,
    // database
    WECHAT_DATABASE_GET_HANDLES,
    WECHAT_DATABASE_BACKUP,
    WECHAT_DATABASE_QUERY,
    // version
    WECHAT_SET_VERSION,
    // log
    WECHAT_LOG_START_HOOK,
    WECHAT_LOG_STOP_HOOK,
    // browser
    WECHAT_BROWSER_OPEN_WITH_URL,
    WECHAT_GET_PUBLIC_MSG,
    WECHAT_MSG_FORWARD_MESSAGE,
    WECHAT_GET_QRCODE_IMAGE,
    WECHAT_GET_A8KEY,
    WECHAT_MSG_SEND_XML,
    WECHAT_LOGOUT,
    WECHAT_GET_TRANSFER,
    WECHAT_GET_CONTACT_ALL,
    WECHAT_GET_CHATROOM_INFO,
    WECHAT_GET_IMG_BY_NAME,
    WECHAT_DO_OCR,
    WECHAT_SEND_PAT_MSG,
} WECHAT_HTTP_APIS,
    *PWECHAT_HTTP_APIS;


int http_start(int port);
#endif

接口文档:

0.检查微信登录**

接口功能

检查微信是否登录

接口地址

/api/?type=0

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1 成功, 0失败
result string 成功提示
data string 响应内容
接口示例

入参:

响应:

{
    "code": 1,
    "result": "ok"
}

1.获取登录用户信息**

接口功能

获取登录用户信息

接口地址

/api/?type=1

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1 成功, 0失败
result string 成功提示
data object 响应内容
account string 账号
bigImage string 头像大图
city string 城市
country string 国家
currentDataPath string 当前数据目录
dataRootPath string 根目录
dataSavePath string 保存目录
mobile string 手机
name string 昵称
province string
smallImage string 小头像
wxid string wxid
接口示例

入参:

响应:

{"code":1,"data":{"account":"xx","bigImage":"https://wx.qlogo.cn/mmhead/ver_1xx","city":"xx","country":"CN","currentDataPath":"xxx","dataRootPath":"C:\\xx","dataSavePath":"C:\\xx","mobie":"13949175447","name":"xx","province":"xx","smallImage":"xx","wxid":"xx"},"result":"OK"}

2.发送文本消息**

接口功能

发送文本消息

接口地址

/api/?type=2

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
wxid true string 接收人wxid
msg true string 消息文本内容
返回字段
返回字段 字段类型 说明
code int 返回状态,不为0成功, 0失败
result string 成功提示
接口示例

入参:

{
    "wxid": "filehelper",
    "msg": "1112222"
}

响应:

{"code":345686720,"result":"OK"}

5.发送图片消息**

接口功能

发送图片消息

接口地址

/api/?type=5

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
wxid true string 接收人wxid
imagePath true string 图片路径
返回字段
返回字段 字段类型 说明
code int 返回状态,不为0成功, 0失败
result string 成功提示
接口示例

入参:

{
    "wxid": "filehelper",
    "imagePath": "C:/Users/123.png"
}

响应:

{"code":345686724,"result":"OK"}

6.发送文件消息**

接口功能

发送文件

接口地址

/api/?type=6

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
wxid true string 接收人wxid
filePath true string 文件路径
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "wxid": "filehelper",
    "filePath": "C:/Users/123.txt"
}

响应:

{"code":1,"result":"OK"}

9.hook消息**

接口功能

hook接收文本消息,图片消息,群消息.该接口将hook的消息通过tcp回传给本地的端口

接口地址

/api/?type=9

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
port true string 本地服务端端口,用来接收消息内容
ip true string 服务端ip地址,用来接收消息内容,可以是任意ip,即tcp客户端连接的服务端的ip (3.8.1.26版本)
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "port": "19099"
    "ip":"127.0.0.1"
}

响应:

{"code":1,"result":"OK"}

10.取消hook消息**

接口功能

取消hook消息

接口地址

/api/?type=10

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

响应:

{"code":1,"result":"OK"}

11.hook图片**

接口功能

hook图片原始内容,不推荐该接口,可以使用图片查询接口

接口地址

/api/?type=11

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
imgDir true string 图片保存的目录
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "imgDir":"C:\\other"
}

响应:

{"code":1,"result":"OK"}

12.取消hook图片**

接口功能

取消hook图片

接口地址

/api/?type=12

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

响应:

{"code":1,"result":"OK"}

17.删除好友**

接口功能

删除好友

接口地址

/api/?type=17

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
wxid true string 好友wxid
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "wxid":"wxid_o"
}

响应:

{"code":1,"result":"OK"}

25.获取群成员**

接口功能

获取群成员

接口地址

/api/?type=25

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 群id
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
data object 返回内容
admin string 群主id
chatRoomId string 群id
members string 群成员id以^分隔
接口示例

入参:

{
    "chatRoomId":"123@chatroom"
}

响应:

{"code":1,"data":{"admin":"wxid","chatRoomId":"123@chatroom","members":"wxid_123^Gwxid_456^Gwxid_45677"},"result":"OK"}

27.删除群成员**

接口功能

删除群成员

接口地址

/api/?type=27

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 群id
memberIds true string 成员id,以,分割
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "chatRoomId":"34932563384@chatroom",
    "memberIds":"wxid_oyb662qhop4422"
}

响应:

{"code":1,"result":"OK"}

28.增加群成员**

接口功能

增加群成员

接口地址

/api/?type=28

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 群id
memberIds true string 成员id,以,分割
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "chatRoomId":"34932563384@chatroom",
    "memberIds":"wxid_oyb662qhop4422"
}

响应:

{"code":1,"result":"OK"}

31.修改自身群昵称**

接口功能

修改群名片

接口地址

/api/?type=31

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 群id
wxid true string 自己的id,只能修改自己的群名片
nickName true string 修改的昵称
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "chatRoomId":"34932563384@chatroom",
    "wxid":"wxid_272211111121112",
    "nickName":"昵称test"
}

响应:

{"code":1,"result":"OK"}

32.获取数据库句柄**

接口功能

获取sqlite3数据库句柄

接口地址

/api/?type=32

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
data array 返回数据
databaseName string 数据库名称
handle int 数据库句柄
tables array 表信息
name string 表名
rootpage string rootpage
sql string sql
tableName string tableName
接口示例

入参:

响应:

{
  "data": [
    {
      "databaseName": "MicroMsg.db",
      "handle": 119561688,
      "tables": [
        {
          "name": "Contact",
          "rootpage": "2",
          "sql": "CREATE TABLE Contact(UserName TEXT PRIMARY KEY ,Alias TEXT,EncryptUserName TEXT,DelFlag INTEGER DEFAULT 0,Type INTEGER DEFAULT 0,VerifyFlag INTEGER DEFAULT 0,Reserved1 INTEGER DEFAULT 0,Reserved2 INTEGER DEFAULT 0,Reserved3 TEXT,Reserved4 TEXT,Remark TEXT,NickName TEXT,LabelIDList TEXT,DomainList TEXT,ChatRoomType int,PYInitial TEXT,QuanPin TEXT,RemarkPYInitial TEXT,RemarkQuanPin TEXT,BigHeadImgUrl TEXT,SmallHeadImgUrl TEXT,HeadImgMd5 TEXT,ChatRoomNotify INTEGER DEFAULT 0,Reserved5 INTEGER DEFAULT 0,Reserved6 TEXT,Reserved7 TEXT,ExtraBuf BLOB,Reserved8 INTEGER DEFAULT 0,Reserved9 INTEGER DEFAULT 0,Reserved10 TEXT,Reserved11 TEXT)",
          "tableName": "Contact"
        }
      ]
    }
  ],
  "result": "OK"
}

34.查询数据库**

接口功能

查询数据库

接口地址

/api/?type=34

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
dbHandle true int 句柄
sql true string sql语句
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
data array 返回数据
接口示例

入参:

{
    "dbHandle": 219277920,
    "sql":"select * from MSG where MsgSvrID=8985035417589024392"
}

响应:

{"code":1,"data":[["localId","TalkerId","MsgSvrID","Type","SubType","IsSender","CreateTime","Sequence","StatusEx","FlagEx","Status","MsgServerSeq","MsgSequence","StrTalker","StrContent","DisplayContent","Reserved0","Reserved1","Reserved2","Reserved3","Reserved4","Reserved5","Reserved6","CompressContent","BytesExtra","BytesTrans"],["6346","24","8985035417589024392","1","0","0","1670897832","1670897832000","0","0","2","1","778715089","wxid_1222","112","","0","2","","","","","","","CgQIEBAAGkEIBxI9PG1zZ3NvdXJjZT4KCTxzaWduYXR1cmU+djFfSFFyeVAwZTE8L3NpZ25hdHVyZT4KPC9tc2dzb3VyY2U+ChokCAISIDU5NjI1NjUxNWE0YzU2ZDQxZDJlOWMyYmIxMjFhNmZl",""]],"result":"OK"}

44.退出登录**

接口功能

退出登录微信,相当于直接退出微信,跟手动退出比,少了重新打开登录的一步,dll注入后也会随微信关闭而关闭。调用后不能再继续操作dll。

接口地址

/api/?type=44

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,非0成功
result string 成功提示
接口示例

入参:

响应:

{"code":4344,"result":"OK"}

46.联系人列表**

接口功能

联系人列表

接口地址

/api/?type=46

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
data array 返回内容
customAccount string 自定义账号
delFlag int 删除标志
type int 好友类型
userName string 用户名称
verifyFlag int 验证
wxid string wxid
接口示例

入参:

{
    "wxid": "filehelper",
    "msgid":7215505498606506901
}

响应:

{"code":1,"data":[{"customAccount":"custom","delFlag":0,"type":8388611,"userName":"昵称","verifyFlag":0,"wxid":"wxid_123pcqm22"}]}

47.群详情**

接口功能

获取群详情

接口地址

/api/?type=47

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 群id
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
data object 返回内容
admin string 群主id
chatRoomId int 群id
notice int 通知
xml string xml
接口示例

入参:

{
    "wxid": "filehelper",
    "msgid":7215505498606506901
}

响应:

{"code":1,"data":{"admin":"123","chatRoomId":"123@chatroom","notice":"1222","xml":""},"result":"OK"}

48.获取解密图片**

接口功能

获取解密图片

接口地址

/api/?type=48

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
imagePath true string 图片路径
savePath true string 保存路径
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, 0失败
result string 成功提示
接口示例

入参:

{
    "imagePath":"C:\\3a610d7bc1cf5a15d12225a64b8962.dat",
    "savePath":"C:\\other"
}

响应:

{"code":1,"result":"OK"}

49.提取文字**

接口功能

提取图片中的文字

接口地址

/api/?type=49

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
imagePath true string 图片路径
返回字段
返回字段 字段类型 说明
code int 返回状态,0成功, -1失败,1 2 则是缓存或者正在进行中需再调用一次
result string 成功提示
text string 提取的相应文字

50.拍一拍**

接口功能

群里拍一拍用户

接口地址

/api/?type=50

HTTP请求方式

POST  JSON

请求参数
参数 必选 类型 说明
chatRoomId true string 微信群聊id
wxid true string 要拍的用户wxid,如果使用用户自定义的微信号,则不会显示群内昵称
返回字段
返回字段 字段类型 说明
code int 返回状态,1成功, -1失败
result string 成功提示
接口示例

入参:

{
    "chatRoomId":"123331@chatroom",
    "wxid":"wxid_123456"
}

响应:

{"code":1,"result":"OK"}

wxhelper.zip

209.27 KB, 下载次数: 416, 下载积分: 吾爱币 -1 CB

release-3.9.0.28

hook_wechat.zip

99.86 KB, 下载次数: 364, 下载积分: 吾爱币 -1 CB

release-3.8.1.26dll

hook_wechat-3.8.1.26-V3.zip

164.96 KB, 下载次数: 605, 下载积分: 吾爱币 -1 CB

3.8.1.26源码+注入器+TCPserver(python)

免费评分

参与人数 20吾爱币 +25 热心值 +19 收起 理由
xuson + 1 + 1 我很赞同!
qiumu + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wabozi + 1 + 1 我很赞同!
呵呵0214 + 1 + 1 我很赞同!
伊辰凌风 + 1 + 1 谢谢@Thanks!
ralap046 + 1 + 1 谢谢@Thanks!
tplove2010 + 1 + 1 谢谢@Thanks!
Lich + 1 + 1 谢谢@Thanks!
lulinxiaoyue + 1 + 1 谢谢@Thanks!
junjia215 + 1 + 1 用心讨论,共获提升!
17773441534 + 1 + 1 我很赞同!
remenbo + 1 + 1 我很赞同!
lihui9519 + 1 + 1 我很赞同!
cdsgg + 2 + 1 我很赞同!
brightwill + 1 + 1 谢谢@Thanks!
xiaoxx313 + 1 + 1 我很赞同!
ryosga + 1 + 1 我很赞同!
梦入神机 + 3 + 1 热心回复!
dayer + 3 + 1 我很赞同!
唐小样儿 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| odmin 发表于 2023-2-3 08:17 |楼主
dayer 发表于 2023-2-2 16:49
hook图片没啥效果啊?还有群里面接收的图片能定位到哪个人发的吗?



推荐
 楼主| odmin 发表于 2023-2-2 16:03 |楼主
python client test !

[Python] 纯文本查看 复制代码
LOCAL_IP = '192.168.1.102'  # 本地IP

def hook_msg():
    # hook 消息
    url = f"http://{WECHAT_IP}:19088/api/?type=9"
    data = {
        'port': "19099",
        'ip': LOCAL_IP
    }
    resp = requests.post(url, json=data)
    print(resp.json())


if __name__ == '__main__':
    print("Server Start : " + LOCAL_IP)
    # 发送消息
    send_msg('Hello! ', 'wxid')

3#
2513002960 发表于 2023-2-2 15:59
4#
无夜滴滴 发表于 2023-2-2 16:48
膜拜大佬~~
5#
dayer 发表于 2023-2-2 16:49
hook图片没啥效果啊?还有群里面接收的图片能定位到哪个人发的吗?
6#
Luker 发表于 2023-2-2 17:53
大佬牛P!
7#
yt1010306 发表于 2023-2-2 18:06
没看到怎么注入DLL文件。
8#
逐雅斋 发表于 2023-2-2 20:46
这个牛b,厉害
9#
freecat 发表于 2023-2-2 21:23
不错 学习一下
10#
雪莱鸟 发表于 2023-2-2 22:11
看接口不是很完整哈,有发送xml的借口不,大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-29 08:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表