最近领导脑袋被门夹了一下,让我们每次外勤都要把工作台账发到微信工作群,每天准时准点的在群里打call,像我这种有“健忘拖延摆烂看上司不顺眼综合征”的,想想都头皮发麻~
身为程序员的我,是该做些什么了
- 每次外勤的时候,叫同事帮忙多拍几组工作照
- 开发一个能自动发送消息的微信机器人
- 写个定时任务,自动给工作群发送工作照
- 网上找了各种关于PC微信逆向的资料,写的都比较含糊,于是就打算自己动手弄
- 我把源码放在github上了(后续我也会把我的研究成果以及学习过程放到我CSDN下的《逆向分析》专栏中供大家参考,也顺便记录一下自己的学习过程)
一、源码的编译环境
使用vs2019选择x86环境,基本上都能一次编译过
嫌麻烦的话,直接自己创建一个项目,拷贝dllmain.cpp的内容即可
二、成品的使用教程
- github上除了有源码之外,还有已经编译并封装好的成品应用,详细的使用方法都在github上有说明
- 以下是简单的使用方法(如果还不能满足你的需求,请自行在源码的基础上进行修改)
1、启动微信并注入DLL的2种方法(二选一即可)
方法1:使用MFC应用启动并注入
这里的8989端口号,就是你接下来要操作微信时请求的端口号
方法2:使用命令行启动并注入
--my_port=9000
就是你用来接收消息的端口号,这个参数是可选的,不填的话默认就是9000
inject_tool.exe
最好是绝对路径,否则可能会注入失败,下图是我偷懒了
2、发送请求,调用对应的功能(这里用Postman演示)
如果你刚刚填写的DLL端口号是
8989
,那么请求接口就是http://127.0.0.1:8989/api
获取个人信息
发送文本消息
3、开启http服务,监听消息(这里用Python做示范,其他语言同理)
默认情况下,你的HTTP服务要运行在
9000
端口下,如果你使用命令行启动并注入,并且指定了--my_port
参数,那么你开启的HTTP服务的端口号就要是你指定的端口号
from http.server import HTTPServer, BaseHTTPRequestHandler
import json
class HttpServer(BaseHTTPRequestHandler):
"""HTTP服务"""
def do_POST(self):
"""接收POST请求"""
# 请求路径为/msg
if self.path == "/msg":
# 获取聊天消息
json_str = self.rfile.read(int(self.headers["content-length"]))
json_str = json_str.decode()
result = json.loads(json_str)
print(result)
self.send_response(200)
self.send_header("Content-type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"result": "ok"}).encode())
if __name__ == '__main__':
# 启动http服务【用来监听消息】
HTTPServer(("127.0.0.1", 9000), HttpServer).serve_forever().start()
4、一气呵成!!!
声明
本项目仅供技术研究,请勿用于非法用途,如有任何人凭此做何非法事情,均于作者无关,特此声明。