日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

手把手打造基于Hook機(jī)制的微信機(jī)器人,無需云服務(wù)器

 瓜爺耶 2025-04-17 發(fā)布于湖北

    過程略顯復(fù)雜,對沒有云服務(wù)器的小伙伴,不是特別友好。

    1. 項(xiàng)目簡介

    傳送門:https://github.com/ngc660sec/NGCBot

    一個基于HOOK機(jī)制的微信機(jī)器人:

    • 支持自動拉人,自動群發(fā),自動回復(fù)等,解放你的雙手
    • 支持各種免費(fèi)的API接口,查天氣,查日歷等
    • 支持 AI 回復(fù),只需傳入大模型的 key

    所謂 'Hook'機(jī)制,是計(jì)算機(jī)編程中常用的一種技術(shù),它允許開發(fā)者攔截系統(tǒng)或應(yīng)用程序的某些事件、消息。比如在微信機(jī)器人中,應(yīng)用會攔截用戶發(fā)送的消息,然后根據(jù)消息進(jìn)行判斷,進(jìn)而調(diào)用不同的API,把調(diào)用結(jié)果回復(fù)給對方用戶,從而代替人工回復(fù)信息。

    總的來說,自定義程度高,操作簡單,小白可輕松上手!

    2. 前置準(zhǔn)備

    除了自己常用的微信賬號以外,還需要準(zhǔn)備一個微信小號。最終我們會把這個小號改造成一個機(jī)器人,然后用你的大號對它發(fā)號施令。

    本項(xiàng)目只能在 Windows 系統(tǒng)中運(yùn)行,且目前依賴指定微信版本。貼心的是,作者已經(jīng)把微信安裝包準(zhǔn)備好了:從倉庫主頁,找到 Releases 點(diǎn)擊進(jìn)去,

    圖片

    在Assets中找到微信安裝包并下載:

    圖片

    3. 項(xiàng)目安裝

    3.1 環(huán)境準(zhǔn)備

    下載并安裝依賴包:

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

    此外,因?yàn)槟壳爸荒苁褂?3.9.2 版的微信安裝包,在掃碼登錄時會遇到版本過低的問題:

    圖片

    目前作者也提供了解決方案:在項(xiàng)目文件夾下新建 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:  # 已經(jīng)修復(fù)過了
                continue
            elif v != 0x63090217:  # 不是 3.9.2.23 修復(fù)也沒用
                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},請確認(rèn)微信程序已經(jīng)打開!')

    3.2 修改配置文件

    項(xiàng)目配置文件在 Config/config.yaml,用任意一款編輯器打開它。

    配置文件的開始進(jìn)行超級管理員的配置,填入你大號的微信號,用于向小號發(fā)號施令。

    ## 超級管理員配置
    Administrators:
      - 'wxid_xxx'

    你的微信號怎么找?任意聊天窗口中,點(diǎn)擊你的微信頭像即可找到~

    如果需要使用 AI 回復(fù)功能,還需要配置大模型的應(yīng)用接口,目前該項(xiàng)目只支持:訊飛星火大模型,OpenAI,百度千帆大模型,填寫任意一個即可。

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

    圖片

    目前訊飛星火 spark lite 模型完全免費(fèi),不知道如何獲取這些 key 的同學(xué),可參考猴哥的這篇總結(jié):拒絕Token焦慮,盤點(diǎn)可白嫖的6款LLM大語言模型API~

    3.3 項(xiàng)目啟動

    首先打開電腦端微信,執(zhí)行修復(fù)腳本,解決版本過低而不能登錄的問題:

    (ngcbot) PS D:\projects\NGCBot> python .\xiufu.py
    別修了,版本不對,修了也沒啥用。,請確認(rèn)微信程序已經(jīng)打開!

    然后執(zhí)行 python main.py,掃碼登錄,看到如下信息,說明已經(jīng)啟動成功:

    圖片

    如果遇到如下報(bào)錯,把微信從任務(wù)管理器中關(guān)掉后重啟,再重新登錄一下就好了。

    連接失敗: Connection refused

    登錄成功后,用你的大號給小號發(fā)一條消息,第一個紅色箭頭處可以看到你大號的微信號,第二個紅色箭頭是小號:

    圖片

    如果看到紅色報(bào)錯,說明你的 AI 對話模型配置失敗,需要查看配置文件進(jìn)行排查:

    圖片

    只要一個 AI 對話模型配置成功,就可以成功調(diào)用,如下是我配置的星火大模型返回的結(jié)果:

    圖片

    啟動成功后,把小號拉到一個群聊中,對他發(fā)號施令吧~

    更多功能使用,參考官方倉庫??https://github.com/ngc660sec/NGCBot

    這里展示幾張示例:

    圖片
    圖片
    圖片

    不過猴哥親測了下,有部分接口已經(jīng)失效了,看來很有必要進(jìn)行二次開發(fā)~

    寫在最后

    至此,一個本地的微信機(jī)器人就搭建好了,感興趣的小伙伴趕緊去試玩~

    項(xiàng)目支持二開,有一定開發(fā)能力的同學(xué)可以基于此添加更多接口和功能。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多