【Python微信机器人】第四篇:实战发送文本和图片消息(使用篇)

目录修整

目前的系列目录(后面会根据实际情况变动):

  1. 在windows11上编译python
  2. 将python注入到其他进程并运行
  3. 注入Python并使用ctypes主动调用进程内的函数和读取内存结构体
  4. 调用汇编引擎实战发送文本和图片消息(同时支持32位和64位微信)
  5. 允许Python加载运行py脚本且支持热加载,发布成pypi库,可pip安装
  6. 利用beaengine反汇编引擎的c接口写一个pyd库,用于实现inline hook
  7. 利用beaengine反汇编引擎的python接口写一个py库,用于实现inline hook
  8. 使用inline hook实战接收消息
  9. 读取微信内存中的好友联系人列表的信息结构体数据
  10. 根据bug反馈和建议进行细节上的优化
  11. 做一个僵尸粉检测工具
  12. 其他功能慢慢加

温馨提示

该项目仅做学习使用, 不建议用于实际生产中。因为可能会导致封号,如果想学习的,请使用小号进行测试

文章篇幅过长,这里分为了两个部分:使用篇和讲解篇。如果想了解代码的原理,可以看讲解篇。代码全部都是透明的,有兴趣的可以自己研究看看。

开始测试

环境准备工作
  1. Python环境
  2. Windows微信
  3. 下载github的Python代码

如果你使用的微信版本是64位的(一般都是), 则你需要64位的Python环境;如果你使用的是32位的微信,就用32位的Python。Python的版本随意,只需要是3.8以上的。

支持的微信版本

后续只会更新和维护32位最新版本的微信(原因在之前的文章里提到过)。不过后面如果我看到了适合在Python中hook 64位程序的方法,也会开始更新64位的。

目前支持的微信版本如下:

32位

  • 3.9.7.28
  • 3.9.8.12

64位

  • 3.9.7.29
  • 3.9.8.15
将Python注入到微信进程

先打开并登录微信,然后使用Python执行py_code的inject_dll.py这个文件。它的代码执行流程:先将injectpy.dll复制到Python.exe同级目录 -> 查找微信进程并使用远程线程注入在进程中加载injectpy.dll

*注意:Python必须具有管理员权限,才能使用远程线程注入将dll注入到其他进程。 *

以管理员身份运行Python的方法:将打开Python的编辑器或CMD以管理员身份运行。

接着你就能看到下面的窗口:

添加搜索路径

先在控制台将py_code这个目录加到sys.path里,路径需要修改你的py_code目录

import sys
sys.path.append("T:\Code\PyRobot\part4\py_code")

导入并开始发送消息

在Python控制台依次输入下面几行代码

from sendmsg import SendMsg

st = SendMsg()
st.send_text("filehelper", "测试消息!")
st.send_image("filehelper", r"C:\Users\Administrator\Pictures\1111.jpg")

接着就能看到文件传输助手已经把消息发送出去了,如果微信版本不在支持的范围,会抛出异常提示

wxid的获取

发送消息需要先得到好友和群的内部wxid,这个会在这个系列第九篇获取全部好友的wxid、昵称和微信号等信息。可以先关注等待更新。如果你对这个系列也感兴趣,也想参与后续的开发,可以加我好友一起研究。

待完善

后面可以不用打开控制台,将Python注入到微信后,让它执行自定义的脚本。你可以在脚本里使用fastapi或aiohttp公开http接口给其他应用使用。也可以在脚本里就写好你想做的事,比如定时发送消息。另外,在脚本里导入第三方包和平时一样,都是pip安装后import,这样自由度就很高,基本能完成大部分需求

下篇文章内容

下一篇先完善下上面提到的内容:运行自定义Python脚本,再实现下热加载,现在为了调试所以在控制台下操作。再把代码发布到pypi上,之后可以用pip安装,代码里import使用,就省去了去github下载代码,而且更新代码也方便

github源码

https://github.com/kanadeblisst00/PyRobot-part4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/185085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Django QuerySet.order_by SQL注入漏洞(CVE-2021-35042)

漏洞描述 Django 于 2021年7月1日发布了一个安全更新,修复了函数QuerySet.order_by中的 SQL 注入漏洞。 参考链接: Django security releases issued: 3.2.5 and 3.1.13 | Weblog | Django 该漏洞需要开发人员使用order_by功能。此外,还可…

RabbitMQ 安装(在docker容器中安装)

为什么要用? RabbitMQ是一个开源的消息代理和队列服务器,主要用于在不同的应用程序之间传递消息。它实现了高级消息队列协议(AMQP),并提供了一种异步协作机制,以帮助提高系统的性能和扩展性。 RabbitMQ的作…

10月,1Panel开源面板项目收到了这些评论

2023年10月20日,1Panel开源面板(https://github.com/1Panel-dev)项目发布了题为《9月,1Panel开源面板收到了这些评论》的社区评论合集。在该文章的评论区,很多社区用户跟帖发表了自己对1Panel开源项目的使用感受和意见…

C/C++ 实现Socket交互式服务端

在 Windows 操作系统中,原生提供了强大的网络编程支持,允许开发者使用 Socket API 进行网络通信,通过 Socket API,开发者可以创建、连接、发送和接收数据,实现网络通信。本文将深入探讨如何通过调用原生网络 API 实现同…

Excel动态选择某一行/列的最后一个数据

选择列的最后一个数据&#xff1a; 以A列为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(A:A<>""),A:A)选择行的最后一个数据&#xff1a; 以第3行为例&#xff0c;使用&#xff1a; LOOKUP(1,0/(3:3<>""),3:3)示例程序 列最后一个数据&a…

中电金信:守【政】创新,探路保险数字化转型“新范式”

11月23日&#xff0c;CIIP2023中国保险科技创新合作大会在京举办。大会汇集保险科技领域行业专家、学者、国内外头部险企及保险科技公司负责人等各界人士&#xff0c;立足保险行业高质量发展和创新驱动理念&#xff0c;寻找行业数字化转型新动能、新视角&#xff0c;为保险科技…

MySql使用游标批量更新字段为空的记录

目的&#xff1a;因为工作中需要模拟大批量的测试数据、发现有部分历史数据中的唯一编号的字段内容为空&#xff0c;因此需要按顺序填充上对应的字段内容&#xff0c;经查询mysql使用游标方式能快速实现此需求。 具体操作步骤如下&#xff1a;打开Navicate for MySQL软件、连接…

python中range函数的用法

range() 是Python的一个内置函数。语法格式为&#xff1a;range(start, stop, step) start是初始值&#xff0c;stop是最终值&#xff0c;step是步长。range()函数仅适用于整数&#xff0c;所有参数都必须是整数。步长值可以为正数或负数&#xff0c;不得为零。使用range函数时…

解决 Invalid bound statement (not found): XXXX 异常

解决Invalid bound statement not found 异常 异常环境解决 异常环境 1、异常提示找不到 listQuery2方法 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.huaw.mapper.excel.ExcelWorkBookMapper.listQuery2 2、MyBatis…

乐得瑞LDR6020 VR串流线方案:实现同时充电传输视频信号

VR&#xff08;Virtual Reality&#xff09;&#xff0c;俗称虚拟现实技术&#xff0c;是一项具有巨大潜力的技术创新&#xff0c;正在以惊人的速度改变我们的生活方式和体验&#xff0c;利用专门设计的设备&#xff0c;如头戴式显示器&#xff08;VR头盔&#xff09;、手柄、定…

MySQL的体系结构与SQL的执行流程

文章目录 前言体系结构SQL语句的执行流程1、连接MySQL2、查询缓存3、解析SQL语句4、优化SQL语句5、执行SQL语句 总结 前言 如果你在使用MySQL时只会写sql语句的&#xff0c;那么你应该看一下《MySQL优化的底层逻辑》。如果你只了解到sql是如何优化的&#xff0c;那么你应该通过…

哦?是吗|兜兜转转,最后还是选择了盖雅排班系统

在之前发布的和「人效案例集」中&#xff0c;我们为大家呈现了很多关于人效提升的理论方法&#xff0c;以及各家企业的人效提升提升实践。 回过头来&#xff0c;我们发现&#xff1a;排班管理渗透于人效九宫格之中&#xff0c;也因此成为很多企业人效提升的一个重要中介&#x…

17 redis集群方案

1、RedisCluster分布式集群解决方案 为了解决单机内存&#xff0c;并发等瓶颈&#xff0c;可使用此方案解决问题. Redis-cluster是一种服务器Sharding技术&#xff0c;Redis3.0以后版本正式提供支持。 这里的集群是指多主多从&#xff0c;不是一主多从。 2、redis集群的目标…

java操作富文本插入到word模板

最近项目有个需求&#xff0c;大致流程是前端保存富文本&#xff08;html的代码&#xff09;到数据库&#xff0c;后台需要将富文本代码转成带格式的文字&#xff0c;插入到word模板里&#xff0c;然后将word转成pdf&#xff0c;再由前端调用接口下载pdf文件&#xff01; 1、思…

Joint Cross-Modal and Unimodal Features for RGB-D Salient Object Detection

提出的模型 the outputs H i m _i^m im​ from the unimodal RGB or depth branch in MFFM FFM means ‘Feature Fusion Module’ 作者未提供代码

基于Haclon的频域滤波原理

傅里叶变换&#xff1a; 法国数学家傅立叶提出&#xff0c;在满足某些数学条件下&#xff0c;任何周期函数都可以表示为不同频率的正弦和或/余弦和的形式&#xff0c;每个正弦和/或余弦乘以不同的系数&#xff0c;甚至非周期的有限函数也可以用正弦和/或余弦乘以加权函数的积分…

【Clang Static Analyzer 代码静态检测工具详细使用教程】

Clang Static Analyzer sudo apt-get install clang-tools scan-build cmake .. scan-build make -j4 编译完成之后会在终端提示在哪里查看报错文档: scan-build: 55 bugs found. scan-build: Run scan-view /tmp/scan-build-2023-11-24-150637-6472-1 to examine bug report…

SOLIDWORKS 2024新功能之Electrical篇

SOLIDWORKS 2024 Electrical篇目录概览 • 对齐零部件 • 更改多个导轨和线槽的长度 • 过滤辅助和附件零件 • 2D 机柜中的自动零件序号 • 移除制造商零件数据 • 重置未定义的宏变量 • 使用范围缩短列表 • SOLIDWORKS Electrical Schematic 增强功能 1、对齐零部件…

FANUC机器人到达某个点位时,为什么不显示@符号?

FANUC机器人到达某个点位时,为什么不显示@符号? 该功能由变量$MNDSP_POSCF = 0(不显示)/1(显示)/2(光标移动该行显示) 控制,该变量设置为不同的值,则启用对应的功能。 如下图所示,为该变量设置不同的值时的对比, 其他常用的系统变量可参考以下内容: 在R寄存器指定速度…

UniWebView 版本3 版本4 版本5介绍

一、介绍 UniWebView是iOS/Android上的web视图组件的包装器&#xff0c;所以运行时拥有与原生web相似性能。是针对Unity所写的插件&#xff0c;节省了项目的开发时间。 官网地址&#xff1a;UniWebView 二、下载&使用 1、下载 &#xff08;1&#xff09;、Unity Asset …