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++)