微信收发消息接口机器人(基于Windows逆向,版本3.1.0.41)

该博客介绍了如何创建一个微信机器人,包括DLL注入技术来操作微信以及通过HTTP接口进行消息的发送和接收。提供了DLL代码和已编译软件的下载链接,强调了软件的安全性和适用平台。示例代码展示了使用Python调用HTTP接口发送和接收消息的方法。
摘要由CSDN通过智能技术生成

准备工作

微信3.1.0.41下载链接:https://cloud.189.cn/t/RVveAfYbA7ja 访问码:xky1
想要了解具体逆向知识的请看:https://blog.csdn.net/qq_38474570/article/details/93339861

根据这篇博客安装vs2017,只需要安装其中的使用c++的桌面开发组件即可,用于dll注入。(https://blog.csdn.net/Qwertyuiop2016/article/details/105391564

软件源代码和已编译软件:https://gitee.com/kanadeblisst/wxrobot (软件是由aardio写的,看不懂的可以用编译的软件的http接口)

dll代码不开源,有兴趣的可以参考上面的大佬的博客自己写一个。大佬的开源代码:https://github.com/TonyChen56/WeChatRobot

只在Windows10上通过测试,其他系统未测试。如果遇到问题,请自行修改代码。另外,自己编写的软件360大概率报毒,如果觉得有风险,不建议使用。

界面

上面空白处为消息显示区域,下面两个输入框和按钮为消息发送。相比于上一篇的博客去掉了读取联系人列表的功能,这属于敏感信息,我还是少接触的为好。不然对于某些人,有理也说不清。你们可以自行获取(比如不知道某个人的微信ID,打开软件后,叫他给你发个消息就知道了)。另外,在此申明一下,dll和软件都是没有同外界通信的,所有功能只是调用了微信的代码段,可以自行抓tcp包测试一下。
在这里插入图片描述

HTTP接口

发送消息api (请求这个api即可发送消息给指定好友)
url: http://127.0.0.1:10010/send
方法:POST
数据提交方式:application/json
数据提交格式:{“wxid”:好友微信ID或者群ID, “msg”:要发送的消息}

python代码示例:

import json
import requests

headers = {
    "Content-Type": "application/json"
}
data = {
   "wxid": "wxid_xxxxxxxxxxxxx",
    "msg": "xxxxxxxxxxx"
}
resp = requests.post("http://127.0.0.1:10010/send", data=json.dumps(data), headers=headers)
print(resp.text)

接收消息api(需要你先开设服务端,软件会将消息以POST提交到你开设的服务)
url: http://127.0.0.1:10000/msg
方法:POST
数据提交方式:application/json
数据提交格式:{“wxid”:消息来源的微信ID或者群ID,“msg":消息内容,“wxid1”:当wxid为群ID时,此值为发送者wxid,否则为空}

python代码示例
flask

import json
from flask import Flask, request


app = Flask(__name__)

@app.route('/msg',methods=['post'])
def post_http():
    if  not request.data:
        print(None)
    data =  request.data.decode('utf-8')
    data = json.loads(data)
    print(data)
    return {"status":"ok"}
 
if __name__ == '__main__':
    app.run(host='127.0.0.1',port=10000)

fastapi

from pydantic import BaseModel
from fastapi import FastAPI
import uvicorn


class Item(BaseModel):
    wxid: str
    wxid1: str = None
    msg: str

app = FastAPI()

@app.post('/msg')
def calculate(data: Item):
    print(data)
    return {"status": "ok"}


if __name__ == '__main__':
    uvicorn.run(app=app, host="127.0.0.1", port=10000, workers=1)

至于怎么同时收发消息就不多废话了,多开个线程就行。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值