Github地址:https://github.com/suruixin/w...前端
自动回复消息
自定义回复文件图片
自定义回复消息
发送消息
群发消息
取消自动回复vue
hi!你们好,今天给你们带来个人小工具锦集第二季,关于微信助手的话题,大约在2019年6月份左右,看到了一个很是有意思的项目微信每日说,当时整好入手了树莓派,想要部署一版,用来作每日天气推送(原谅我穷,还常常被雨淋)后来在使用的过程当中发现web版微信不支持2017年后注册的微信号登录(如今可能更多的微信号),在通过了漫长的查找过程,最终发现了赵庆明老师关于微信hook的课程(目前已下架),决定已这个为突破口,开发一版微信助手工具,目前项目已经收尾node
奈何本身能力有限,本身写的dll惨不忍睹,正好有位大佬开源了本身的项目(wechat-bot),因而,我就很是开心的利用electron
制做了个人微信助手工具ios
下面来对个人项目进行一个简单的介绍c++
vue-cli3 vuetify sass electron-builder electron-update node-ffi-napi
关于node-ffi-napi
你们能够参考个人node-ffi从入门到放弃(安装篇)来进行安装git
node: 12.16.0-x86 node-gyp: 7.0.0 ffi-napi: 2.4.5 微信版本: 2.9.0.123
微信: 2.9.0.123
提取码:j4m0github
hookweb
注入器vuex
./ ├ public // 公共文件存放地址 ├ src │ ├ config // 配置文件存放地址 │ │ ├ config.ts // 系统中须要用到的不对外公开的配置信息 │ │ ├ index.ts // 系统中须要用到的初始化配置信息 │ │ └ yaml.ts // 将初始化配置存放到用户电脑上,并生成yarm文件 │ ├ enum // 数据类型文件存放地址 │ │ ├ ipc.ts // 主进程和渲染进程通讯 │ │ ├ mainEnum.ts // 主进程中用到的数据类型 │ │ └ weChat.ts // 调用微信hook进行数据传输的数据类型 │ ├ interface // 接口存放地址 │ │ ├ api.ts // 数据请求接口 │ │ ├ config.ts // 初始化配置信息接口 │ │ ├ mainInterface.ts // 主进程中用到的接口 │ │ ├ views.ts // 渲染进程中用到的接口 │ │ ├ vuexInterface.ts // vuex用到的接口 │ │ └ weChatParams.ts // 微信hook用到的接口 │ ├ mainProcess // 主进程存放地址 │ │ ├ BrowserWindow // 主进程配置文件 │ │ │ └ index.ts │ │ ├ Inject // 注入文件 │ │ │ ├ Inject.ts // 注入文件封装 │ │ │ └ manage.ts // 注入文件使用 │ │ ├ ipc // 主进程与渲染进程通信 │ │ │ └ index.ts │ │ ├ tray // 托盘 │ │ │ └ index.ts │ │ ├ update // 升级 │ │ │ └ index.ts │ │ └ index.ts // 主进程输出文件 │ ├ render // 渲染进程存放地址 │ │ ├ api // 数据请求 │ │ │ ├ index.ts // 数据请求出口文件 │ │ │ ├ turing.ts // 图灵机器人数据请求 │ │ │ └ weChat.ts // 微信hook数据请求 │ │ ├ assets // 渲染进程静态文件 │ │ │ ├ icon // icon │ │ │ ├ images // 图片 │ │ │ └ sass // 全局sass文件 │ │ ├ components // 组件 │ │ │ ├ Common │ │ │ │ └ Snackbar.vue // 错误提醒 │ │ │ ├ Main // 通用主页面 │ │ │ │ ├ components │ │ │ │ │ ├ content.vue // 内容区域 │ │ │ │ │ ├ footer.vue // 底部 │ │ │ │ │ ├ navigation.vue // 左侧边栏 │ │ │ │ │ └ title.vue // 头部 │ │ │ │ └ index.vue // 通用主页面入口文件 │ │ │ └ Socket │ │ │ └ Socket │ │ │ └ WeChat.ts // 微信hook websocket监听 │ │ ├ mixins // 混入 │ │ │ └ index.ts │ │ ├ plugins // 插件 │ │ │ ├ tool │ │ │ │ ├ api.ts // api文件输出 │ │ │ │ └ index.ts // 输出本目录下全部文件 │ │ │ ├ common.ts // 通用方法 │ │ │ ├ main.ts // vue全局注入 │ │ │ └ vuetify.ts // vuetify配置 │ │ ├ router // 路由 │ │ │ ├ index.ts │ │ │ └ routes.ts │ │ ├ store // vuex │ │ │ ├ modules │ │ │ │ ├ index.ts │ │ │ │ ├ main.ts │ │ │ │ └ userList.ts │ │ │ ├ actions.ts │ │ │ ├ getters.ts │ │ │ ├ index.ts │ │ │ ├ mutations.ts │ │ │ └ mutations.ts │ │ ├ utils // 工具封装 │ │ │ ├ axios.ts // axios封装 │ │ │ ├ ipc.ts // 通用主进程通信分装 │ │ │ └ require.ts // get post等请求封装 │ │ └ views // 页面 │ │ ├ About // 关于页面 │ │ │ └ AboutPage.vue // 关于页面 │ │ ├ Home // 首页(未想好作什么样的) │ │ ├ SendMsg // 发送消息页面 │ │ │ ├ SendMsgPage // 发送消息页面相关信息 │ │ │ │ ├ userList // 好友列表相关 │ │ │ │ │ ├ listItem.vue // 单好友页面 │ │ │ │ │ └ listWrapper.vue // 好友组页面 │ │ │ │ ├ setParams.vue // 右侧发送消息 │ │ │ │ └ userList.vue // 好友列表 │ │ │ └ SendMsgPage.vue // 发送消息页面入口 │ │ └ Tool // 配置页面(未想好作什么样的) │ ├ type // 类型别名文件存放地址 │ ├ App.vue │ ├ background.ts // 主进程入口 │ ├ main.ts │ ├ registerServiceWorker.ts │ ├ shims-node.d.ts │ ├ shims-tsx.d.ts │ └ shims-vue.d.ts ├ static │ ├ dll // 动态连接库(hook和注入)存放地址 │ └ icon // 打包icon存放地址 ├ package.json ├ tsconfig.json └ vue.config.js
electron
是 GitHub
发布的跨平台桌面应用开发工具,使用 JavaScript
,HTML
和 CSS
构建跨平台的桌面应用程序,其自己是基于 C++
开发的vue-cli
官网: https://www.electronjs.org/
文档: https://www.electronjs.org/docs
import ffi from "ffi-napi"; import { DllInject } from "@/interface/mainInterface"; import { join } from "path"; export default class Inject { private Handel: DllInject; public constructor(dllPath: string) { this.Handel = ffi.Library(dllPath, { Inject: ['int', ["string", "string"]] }) } public Inject(dllPath: string, exePath: string): number { return this.Handel.Inject(dllPath, exePath); } public StatusCode(code: number): string { const StatusCode: { [p: number]: string; } = { 0: "成功", 1: "没有找到微信进程,请确认微信是否打开", 2: "打开进程失败", 3: "分配内存空间失败", 4: "写入内存失败", 5: "查找LoadLibraryA失败", 6: "启动远程线程失败" }; return StatusCode[code] } } const InDllPath = join(global.__static, "/dll/demoInject.dll"); const BeInDllPath = join(global.__static, "/dll/version2.9.0.123-4.5.7.69.dll"); const WeChatInject = new Inject(this.InDllPath); WeChatInject.Inject(BeInDllPath, "WeChat.exe");
后续将api
整理好,提供地址,内容太多,写完后发现不是很好,删除了
感谢cixingguangming55555大佬提供的wechat-bot
本项目初衷为解决生活中须要被动回复消息/发送文件,严禁用于打广告/推广等行为
微信助手不属于腾讯承认的助手工具,因此用于营销,发广告等行为会致使封号,这也是我说严禁用于打广告/推广的缘由,但愿你们能够在腾讯容许的范围内进行使用
如二次开发给女友查询干湿垃圾,每日天气播报等等,同时欢迎各位it朋友加好友一块儿研究前端 c++知识(本人前端一枚,会一些简单的c++)