国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python微信機(jī)器人】第一篇:在windows11上編譯python

這篇具有很好參考價(jià)值的文章主要介紹了【Python微信機(jī)器人】第一篇:在windows11上編譯python。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

我打算寫一個(gè)系列,內(nèi)容是將python注入到其他進(jìn)程實(shí)現(xiàn)inline hook和主動調(diào)用。本篇文章是這個(gè)系列的第一篇,后面用到的案例是注入python到PC微信實(shí)現(xiàn)基本的收發(fā)消息。文章著重于python方面的內(nèi)容,所以對于微信找收發(fā)消息的call不會去講過程,有興趣的可以直接百度搜PC微信逆向。

我想要的inline hook效果是hook(address, callback),就是只需要給定hook的內(nèi)存地址address和回調(diào)函數(shù)callback就能實(shí)現(xiàn)hook,回調(diào)函數(shù)的參數(shù)是所有的寄存器組成的結(jié)構(gòu)體。這樣我就能讀取該位置的任意數(shù)據(jù)出來,也能很方便的移植到Python里。不清楚能不能完全移植到Python,到時(shí)候?qū)懙臅r(shí)候再看。

另外,微信的版本我選擇最新的x86版本(32位),這個(gè)寫到那一篇的時(shí)候再下載最新的版本。因?yàn)槭褂肅++寫inline hook的話,我不會寫64位的,而開源的一些hook框架都只能hook函數(shù),還需要定義函數(shù)指針,這給使用Python進(jìn)行動態(tài)hook增加了很大的阻礙,我不知道怎么在Python里定義動態(tài)函數(shù)指針并傳給C++。x64調(diào)用約定沒有x86那么混亂,在主動調(diào)用方面比x86更方便。

目錄

目前的系列目錄(后面會根據(jù)實(shí)際情況變動):

  1. 在windows11上編譯python
  2. 用python寫一個(gè)注入器,將dll注入到其他進(jìn)程
  3. 將python注入到其他進(jìn)程并運(yùn)行
  4. 使用C++寫一個(gè)python的pyd庫,用于實(shí)現(xiàn)inline hook
  5. Python ctypes庫的使用
  6. 使用ctypes主動調(diào)用進(jìn)程內(nèi)的任意函數(shù)
  7. 使用匯編引擎調(diào)用進(jìn)程內(nèi)的任意函數(shù)(為了調(diào)用不遵守任何一個(gè)調(diào)用約定的x86函數(shù))
  8. 注入python到微信實(shí)現(xiàn)在Python終端收發(fā)消息
  9. 優(yōu)化使用方法,允許Python加載運(yùn)行py腳本,而不是打開Python終端
  10. Bug修復(fù)和細(xì)節(jié)優(yōu)化

溫馨提示

本系列只是臨時(shí)起意想寫些文章,也有可能因?yàn)槟承┰虬肼坟舱?,比如心情不好不想寫、沒什么人看不想寫,當(dāng)然也有可能是更新到某一步的時(shí)候,遇到無法解決的問題寫不下去了,都有可能。

Python編譯環(huán)境

為了保證不受之前安裝的環(huán)境影響,避免我在自己電腦能運(yùn)行,而你們無法編譯,所以我新安裝一個(gè)Windows11虛擬機(jī)來做編譯python。

1、下載python源代碼

下載地址:https://www.python.org/downloads/source/

藍(lán)奏云:https://wwzy.lanzoub.com/izwAi1bu5u5i

這里我選擇了3.10.11,因?yàn)槲腋杏X太新或者太舊對于編譯而已都不是好事。
【Python微信機(jī)器人】第一篇:在windows11上編譯python
下載一款解壓軟件解壓,我這里用的是7zip,藍(lán)奏云:https://wwzy.lanzoub.com/iuMwk1bu9phe

2、查看編譯說明

編譯的readme在PCbuild/readme.txt,打開就能看到需要的環(huán)境
【Python微信機(jī)器人】第一篇:在windows11上編譯python

3、安裝Visual Studio 2017

下載地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

藍(lán)奏云:https://wwzy.lanzoub.com/ivLlp1bu5u7a

運(yùn)行安裝程序,勾選如下組件(使用C++桌面開發(fā), Python開發(fā)和右邊的Python本機(jī)開發(fā)工具)

【Python微信機(jī)器人】第一篇:在windows11上編譯python
使用C++桌面開發(fā)是用于后面C++寫pyd庫的,這里不勾選Python。所需的Python環(huán)境單獨(dú)安裝一個(gè)

4、安裝Python3.10.11

這里安裝的版本不需要和編譯的版本一樣,只需要按readme文件的提示,比如這個(gè)readme說要Python3.6+就行

藍(lán)奏云地址:https://wwzy.lanzoub.com/izwAi1bu5u5i

這個(gè)安裝并沒有什么要注意的,記得勾選Add python.exe to PATH

在安裝一下sphinx pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ sphinx==1.8

5、git for windows

下載地址:https://git-scm.com/download/win

藍(lán)奏云:https://wwzy.lanzoub.com/iLro11bu9p9g

這個(gè)也沒什么要注意的,一直下一步就行

6、vscode(可選)

裝一個(gè)來編輯代碼,隨便裝一個(gè)編輯器就可以了

7、安裝.net3.5

在編譯msi的時(shí)候報(bào)錯(cuò)了,谷歌了下是缺少.net3.5。安裝方法有兩種,去官網(wǎng)下載安裝包,或者直接 控制面板-》程序-》程序和功能-》啟用或關(guān)閉windows功能,如何勾選第一個(gè)點(diǎn)確定
【Python微信機(jī)器人】第一篇:在windows11上編譯python

開始編譯

1、修改PCbuild\get_external.py

這是下載依賴的腳本,如果不加代理的話,下載速度只有幾十K。
【Python微信機(jī)器人】第一篇:在windows11上編譯python
代理地址改成你自己的,如果沒有,那只能慢慢下了

2、下載依賴

運(yùn)行PCbuild\get_externals.bat下載依賴,也可以直接運(yùn)行PCbuild\build.bat編譯,他會先調(diào)get_externals.bat下載依賴
【Python微信機(jī)器人】第一篇:在windows11上編譯python

3、開始編譯綠色版

編譯出來的是一些pyd、dll和exe文件,其中pyd其實(shí)就是具有python相關(guān)接口的dll

編譯方法有兩種:

  1. 使用腳本編譯
  2. 使用visual studio 2017編譯

4、使用腳本編譯

先在命令行使用.\PCbuild\build.bat -h看一下幫助信息
【Python微信機(jī)器人】第一篇:在windows11上編譯python
前面的額外選項(xiàng)先不看,掃了一眼感覺都用不到。直接看Available arguments

  • -c: 設(shè)置編譯的是Release還是Debug
  • -p: 設(shè)置編譯的平臺, x86(Win32)還是x64
  • -t: 默認(rèn)Build就行,有時(shí)候會用到Rebuild,忽略已編譯的緩存重新編譯

那就先編譯Release_x86版本吧,運(yùn)行.\PCbuild\build.bat -c Release -p x86,如果已經(jīng)下載好了依賴,編譯應(yīng)該只需要幾分鐘
【Python微信機(jī)器人】第一篇:在windows11上編譯python
我這個(gè)用了一分半,上面黃色的是一些警告(眾所周知、在C++中,警告是不用管的)
【Python微信機(jī)器人】第一篇:在windows11上編譯python
生成的文件在PCbuild\win32目錄下
【Python微信機(jī)器人】第一篇:在windows11上編譯python
雙擊python.exe就能直接運(yùn)行了

5、使用visual studio 2017編譯

用visual studio 2017打開pcbuild.sln
【Python微信機(jī)器人】第一篇:在windows11上編譯python
打開之后再上面選擇需要編譯Release還是Debug,還有Win32和x64。右鍵右側(cè)的解決方案,點(diǎn)擊生成解決方案,生成的文件和build.bat一樣
【Python微信機(jī)器人】第一篇:在windows11上編譯python
編譯完成輸出結(jié)果
【Python微信機(jī)器人】第一篇:在windows11上編譯python
將編譯的文件拖到Windows沙盒系統(tǒng)里運(yùn)行,發(fā)現(xiàn)報(bào)錯(cuò):
【Python微信機(jī)器人】第一篇:在windows11上編譯python
大概意思是缺少encodings庫,看了下是因?yàn)闆]有基礎(chǔ)庫。只需要在源碼目錄下拷貝Lib目錄到python.exe下就能運(yùn)行了。Lib目錄都是些python寫的基礎(chǔ)庫

6、編譯安裝文件

編譯安裝文件只能使用腳本Tools\msi\build.bat,編譯前先看看幫助信息
【Python微信機(jī)器人】第一篇:在windows11上編譯python
這里沒有區(qū)分Release和Debug,這是因?yàn)榫幾gRelease的腳本移到了buildrelease.bat
【Python微信機(jī)器人】第一篇:在windows11上編譯python

這里我編譯x86的Release版,命令行運(yùn)行.\Tools\msi\buildrelease.bat -x86即可編譯,編譯的文件在PCbuild\win32\en-us
【Python微信機(jī)器人】第一篇:在windows11上編譯python
編譯出來的python-3.10.11.exe就是完整的安裝包了,而python-3.10.11-embed-win32.zip就將綠色版的所有文件打包了

另外,如果使用build.bat編譯Debug版的話,是無法編譯成單文件的安裝包,編譯完成的文件是一些msi文件和一個(gè)exe,雙擊exe就能安裝這些msi

這里有個(gè)疑問,輸出目錄是en-us,說明可能存在其他語言,但是看幫助信息又沒有指定語言的參數(shù)。搜了一下谷歌也沒什么有用的信息(大概是我用的關(guān)鍵詞不對)

7、編譯完成

其實(shí)還有一個(gè)pgo優(yōu)化,具體是什么不知道,作用是提高編譯后程序運(yùn)行速度的,但是會顯著增加編譯的時(shí)間。在編譯的時(shí)候增加--pgo參數(shù)即可,僅對x64生效

其實(shí)將Python注入到進(jìn)程并不需要編譯Python,完全可以將官方下載的Python注入,這里自己編譯主要是為了看源代碼,順手給他編譯了文章來源地址http://www.zghlxwxcb.cn/news/detail-711504.html

到了這里,關(guān)于【Python微信機(jī)器人】第一篇:在windows11上編譯python的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python連接自己的機(jī)器人接口在微信聊天

    機(jī)器人有連接到數(shù)據(jù)庫,所以可以長記憶對話,多線程可以使得機(jī)器人同時(shí)和幾個(gè)好友聊天。將消息發(fā)送到遠(yuǎn)程API進(jìn)行處理,并回復(fù)處理后的消息。腳本還允許為每個(gè)好友分配一個(gè)唯一的隨機(jī) ID,以便跟不同的好友聊天并維護(hù)聊天記憶。

    2024年02月09日
    瀏覽(18)
  • 封裝Python腳本:使用企業(yè)微信機(jī)器人發(fā)送消息至企業(yè)微信

    官方文檔地址:https://developer.work.weixin.qq.com/document/path/91770#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA 可以通過如下步驟設(shè)置企業(yè)微信機(jī)器人: 首先建立或者進(jìn)入某個(gè)群聊 進(jìn)入群聊設(shè)置頁面, 點(diǎn)擊“群機(jī)器人添加”可添加一個(gè)機(jī)器人成功 添加成功后,復(fù)制并保

    2024年02月09日
    瀏覽(27)
  • Python實(shí)現(xiàn)企業(yè)微信群機(jī)器人自動化推送

    Python實(shí)現(xiàn)企業(yè)微信群機(jī)器人自動化推送

    人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門新的技術(shù)科學(xué)。 ——《百度百科》 實(shí)際工作中,有類似這樣的場景, 需要將某些通知信息定期發(fā)送到企業(yè)微信群,需要將公司某些指標(biāo)的異

    2024年02月09日
    瀏覽(25)
  • python上的免費(fèi)免登錄微信智能聊天機(jī)器人

    目錄 ?一、準(zhǔn)備 ?二、開始 三、全部代碼 四、總結(jié) ?一、準(zhǔn)備 需要bs4庫、requests庫、time庫(python自帶)、wxauto庫。 如果沒有的話請用pip安裝。 在本示例中,使用的是wxauto,所以只能識別桌面上顯示的微信窗口,一旦微信窗口最小化,便無法使用。解決辦法:可以在GitHub上

    2023年04月08日
    瀏覽(20)
  • 【Python微信機(jī)器人】第六篇:優(yōu)化使用方式,可pip安裝

    【Python微信機(jī)器人】第六篇:優(yōu)化使用方式,可pip安裝

    這篇不聊技術(shù)點(diǎn),說一下優(yōu)化后的Python機(jī)器人代碼怎么使用,優(yōu)化內(nèi)容如下: 將hook庫獨(dú)立成一個(gè)庫,發(fā)布到pypi,可使用pip安裝 將微信相關(guān)的代碼發(fā)布成另一個(gè)庫,也可以pip安裝 git倉庫統(tǒng)一,以后都在這個(gè)倉庫更新,不再一篇文章一個(gè)倉庫 開始建群,根據(jù)群里反饋增加功能

    2024年02月21日
    瀏覽(17)
  • 17行代碼用python對接openai的微信對話機(jī)器人

    17行代碼用python對接openai的微信對話機(jī)器人

    itchat python依賴下載 這里推薦這個(gè)。鏈接:衡天云

    2024年02月13日
    瀏覽(19)
  • 【Python微信機(jī)器人】第六七篇: 封裝32位和64位Python hook框架實(shí)戰(zhàn)打印微信日志

    【Python微信機(jī)器人】第六七篇: 封裝32位和64位Python hook框架實(shí)戰(zhàn)打印微信日志

    目前的系列目錄(后面會根據(jù)實(shí)際情況變動): 在windows11上編譯python 將python注入到其他進(jìn)程并運(yùn)行 注入Python并使用ctypes主動調(diào)用進(jìn)程內(nèi)的函數(shù)和讀取內(nèi)存結(jié)構(gòu)體 調(diào)用匯編引擎實(shí)戰(zhàn)發(fā)送文本和圖片消息(支持32位和64位微信) 允許Python加載運(yùn)行py腳本且支持熱加載 利用匯編和反匯編

    2024年02月04日
    瀏覽(19)
  • 【Python微信機(jī)器人】第三篇:使用ctypes調(diào)用進(jìn)程函數(shù)和讀取內(nèi)存結(jié)構(gòu)體

    【Python微信機(jī)器人】第三篇:使用ctypes調(diào)用進(jìn)程函數(shù)和讀取內(nèi)存結(jié)構(gòu)體

    目前的系列目錄(后面會根據(jù)實(shí)際情況變動): 在windows11上編譯python 將python注入到其他進(jìn)程并運(yùn)行 注入Python并使用ctypes主動調(diào)用進(jìn)程內(nèi)的函數(shù)和讀取內(nèi)存結(jié)構(gòu)體 使用匯編引擎調(diào)用進(jìn)程內(nèi)的任意函數(shù) 利用beaengine反匯編引擎的c接口寫一個(gè)pyd庫,用于實(shí)現(xiàn)inline hook 利用beaengine反匯編

    2024年02月06日
    瀏覽(25)
  • wechaty擼一個(gè)屬于自己的微信機(jī)器人(Python版接入文心一言)

    wechaty擼一個(gè)屬于自己的微信機(jī)器人(Python版接入文心一言)

    說明: 機(jī)器人的框架找了很久,由于很多框架都不能使用了或者封號率極高,最后選擇了wewechaty,wechaty是可以使用ipad協(xié)議,主要是以node寫的,因?yàn)榇蛩銠C(jī)器人接入爬蟲項(xiàng)目,所以特意用了python版本,對于python版網(wǎng)上教程太少且模糊且時(shí)間過于久遠(yuǎn),所做以此文為采坑記錄。 前期準(zhǔn)備

    2024年02月04日
    瀏覽(25)
  • 17行代碼用python對接openai的api實(shí)現(xiàn)chatgpt微信對話機(jī)器人

    17行代碼用python對接openai的api實(shí)現(xiàn)chatgpt微信對話機(jī)器人

    itchat python依賴下載 這里推薦這個(gè)。鏈接:衡天云

    2024年02月01日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包