0


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

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

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

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

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

1. 项目简介

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

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

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

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

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

2. 前置准备

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

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

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

3. 项目安装

3.1 环境准备

下载并安装依赖包:

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

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

目前作者也提供了解决方案:在项目文件夹下新建

  1. xiufu.py

,然后填入如下代码:

  1. from pymem import Pymem
  2. ADDRS = [0x2FFEAF8, 0x3020E1C, 0x3021AEC, 0x303C4D8, 0x303FEF4, 0x3040FA4, 0x30416EC]
  3. def fix_version(pm: Pymem):
  4. WeChatWindll_base = 0
  5. for m in list(pm.list_modules()):
  6. path = m.filename
  7. if path.endswith("WeChatWin.dll"):
  8. WeChatWindll_base = m.lpBaseOfDll
  9. break
  10. for offset in ADDRS:
  11. addr = WeChatWindll_base + offset
  12. v = pm.read_uint(addr)
  13. if v == 0x63090A13: # 已经修复过了
  14. continue
  15. elif v != 0x63090217: # 不是 3.9.2.23 修复也没用
  16. raise Exception("别修了,版本不对,修了也没啥用。")
  17. pm.write_uint(addr, 0x63090A13)
  18. print("好了,可以扫码登录了")
  19. if __name__ == "__main__":
  20. try:
  21. pm = Pymem("WeChat.exe")
  22. fix_version(pm)
  23. except Exception as e:
  24. print(f"{e},请确认微信程序已经打开!")

3.2 修改配置文件

项目配置文件在

  1. Config/config.yaml

,用任意一款编辑器打开它。

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

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

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

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

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

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

3.3 项目启动

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

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

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

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

  1. 连接失败: Connection refused

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

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

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

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

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

这里展示几张示例:

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

写在最后

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

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

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


本文转载自: https://blog.csdn.net/u010522887/article/details/140393895
版权归原作者 AI码上来 所有, 如有侵权,请联系我们删除。

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

还没有评论