首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

NGCBot-打造基于Hook机制的微信机器人,Windows本地部署

  • 25-03-02 13:44
  • 4271
  • 11886
blog.csdn.net

前两篇,带大家手把手搭建了基于云服务器的微信机器人:

  • 手把手搭建微信机器人,帮你雇一个24小时在线的个人 AI 助理(上)
  • 手把手搭建微信机器人,帮你雇一个24小时在线的个人 AI 助理(下)

过程略显复杂,对没有云服务器的小伙伴,不是特别友好。

今天分享的这个开源项目,带大家在本地搭建一款微信机器人,调用的是 Windows 电脑端的微信,无需云服务器,无需部署,更安全可靠。

1. 项目简介

传送门:https://github.com/ngc660sec/NGCBot

一个基于HOOK机制的微信机器人:

  • 支持自动拉人,自动群发,自动回复等,解放你的双手
  • 支持各种免费的API接口,查天气,查日历等
  • 支持 AI 回复,只需传入大模型的 key

所谓 "Hook"机制,是计算机编程中常用的一种技术,它允许开发者拦截系统或应用程序的某些事件、消息。比如在微信机器人中,应用会拦截用户发送的消息,然后根据消息进行判断,进而调用不同的API,把调用结果回复给对方用户,从而代替人工回复信息。

总的来说,自定义程度高,操作简单,小白可轻松上手!

2. 前置准备

除了自己常用的微信账号以外,还需要准备一个微信小号。最终我们会把这个小号改造成一个机器人,然后用你的大号对它发号施令。

本项目只能在 Windows 系统中运行,且目前依赖指定微信版本。贴心的是,作者已经把微信安装包准备好了:从仓库主页,找到 Releases 点击进去,

在Assets中找到微信安装包并下载:

3. 项目安装

3.1 环境准备

下载并安装依赖包:

git clone https://github.com/ngc660sec/NGCBot.git
cd NGCBot
pip install pymem
pip install -r requirements.txt
  • 1
  • 2
  • 3
  • 4

此外,因为目前只能使用 3.9.2 版的微信安装包,在扫码登录时会遇到版本过低的问题:

目前作者也提供了解决方案:在项目文件夹下新建 xiufu.py,然后填入如下代码:

from pymem import Pymem

ADDRS = [0x2FFEAF8, 0x3020E1C, 0x3021AEC, 0x303C4D8, 0x303FEF4, 0x3040FA4, 0x30416EC]

def fix_version(pm: Pymem):
    WeChatWindll_base = 0
    for m in list(pm.list_modules()):
        path = m.filename
        if path.endswith("WeChatWin.dll"):
            WeChatWindll_base = m.lpBaseOfDll
            break
    for offset in ADDRS:
        addr = WeChatWindll_base + offset
        v = pm.read_uint(addr)
        if v == 0x63090A13:  # 已经修复过了
            continue
        elif v != 0x63090217:  # 不是 3.9.2.23 修复也没用
            raise Exception("别修了,版本不对,修了也没啥用。")
        pm.write_uint(addr, 0x63090A13)
    print("好了,可以扫码登录了")

if __name__ == "__main__":
    try:
        pm = Pymem("WeChat.exe")
        fix_version(pm)
    except Exception as e:
        print(f"{e},请确认微信程序已经打开!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

3.2 修改配置文件

项目配置文件在 Config/config.yaml,用任意一款编辑器打开它。

配置文件的开始进行超级管理员的配置,填入你大号的微信号,用于向小号发号施令。

## 超级管理员配置
Administrators:
  - 'wxid_xxx'
  • 1
  • 2
  • 3

你的微信号怎么找?任意聊天窗口中,点击你的微信头像即可找到~

如果需要使用 AI 回复功能,还需要配置大模型的应用接口,目前该项目只支持:讯飞星火大模型,OpenAI,百度千帆大模型,填写任意一个即可。

以星火大模型为例,需要在下方配置处填入 ApiSecret ApiKey 等信息。

目前讯飞星火 spark lite 模型完全免费,不知道如何获取这些 key 的同学,可参考猴哥的这篇总结:拒绝Token焦虑,盘点可白嫖的6款LLM大语言模型API~

3.3 项目启动

首先打开电脑端微信,执行修复脚本,解决版本过低而不能登录的问题:

(ngcbot) PS D:\projects\NGCBot> python .\xiufu.py
别修了,版本不对,修了也没啥用。,请确认微信程序已经打开!
  • 1
  • 2

然后执行 python main.py,扫码登录,看到如下信息,说明已经启动成功:

如果遇到如下报错,把微信从任务管理器中关掉后重启,再重新登录一下就好了。

连接失败: Connection refused
  • 1

登录成功后,用你的大号给小号发一条消息,第一个红色箭头处可以看到你大号的微信号,第二个红色箭头是小号:

如果看到红色报错,说明你的 AI 对话模型配置失败,需要查看配置文件进行排查:

只要一个 AI 对话模型配置成功,就可以成功调用,如下是我配置的星火大模型返回的结果:

启动成功后,把小号拉到一个群聊中,对他发号施令吧~

更多功能使用,参考官方仓库?https://github.com/ngc660sec/NGCBot

这里展示几张示例:

不过猴哥亲测了下,有部分接口已经失效了,看来很有必要进行二次开发~

写在最后

至此,一个本地的微信机器人就搭建好了,感兴趣的小伙伴赶紧去试玩~

项目支持二开,有一定开发能力的同学可以基于此添加更多接口和功能。

如果本文对你有帮助,欢迎点赞收藏备用!

猴哥的AI知识库
微信公众号
AI全栈工程师,帮助零基础编程小白入门AI
注:本文转载自blog.csdn.net的AI码上来的文章"https://blog.csdn.net/u010522887/article/details/140393895"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top