欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python反編譯的兩種實(shí)現(xiàn)方式

 更新時(shí)間:2024年06月21日 09:34:46   作者:偶爾敲代碼  
這篇文章主要介紹了Python反編譯的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python反編譯兩種方式

以前聽說py編譯的程序不安全,容易被反。這兩天刮臺(tái)風(fēng)了,閑著也是閑著,自己也跟著搗鼓了一番。

為了不給別人帶來不好的影響,我編譯我自己寫的代碼來做測(cè)試,代碼頭部如下圖,引用了幾個(gè)常見庫:

.

用pyinstaller進(jìn)行完整打包:

pyinstaller -F g.py

.

打包結(jié)束,在dist目錄得到目標(biāo)程序g.exe:

.

接下來用兩種方式進(jìn)行反編譯:

一、pyinstxtractor+uncompyle6方式

將pyinstxtractor.py和目標(biāo)exe放在同一個(gè)目錄

.

在目錄進(jìn)入命令行窗口,輸入命令:

python pyinstxtractor.py g.exe

.

會(huì)在當(dāng)前目錄生成一個(gè)目標(biāo)_extracted 的文件夾,里面有一大堆文件,其中有一個(gè)與目標(biāo)exe同名的pyc文件,我這邊就是g.pyc。

安裝uncompyle6庫,按以下命令安裝:

pip install uncompyle6

將pyc文件反編譯為py文件:

在第2步的目標(biāo)_extracted 文件夾進(jìn)入命令行窗口,輸入以下命令,后面的.py文件名隨意:

uncompyle6 g.pyc>g.py

.

回車后在當(dāng)前目錄生成對(duì)應(yīng)的py文件:

.

打開瞧一瞧,和源文件對(duì)比一下,頭部多了一些uncompyle6的信息,其余的和源文件一毛一樣。

.

二、pycdc方式

前面還是同上面的方式,得到pyc文件(步驟2);

將pycdc.exe和pyc文件放同一目錄,進(jìn)入命令行窗口,輸入以下命令:

pycdc.exe g.pyc > g.txt

反編譯結(jié)果被輸出到g.txt中,當(dāng)然后綴也可以改成.py啥的。

.

對(duì)比結(jié)果,這種方式好像代碼都變成純文本了,除了一些換行會(huì)錯(cuò)亂,其他的還原度還是極好的。

.

總結(jié)

以上只是最基本的兩種反編譯Python打包的exe方式,也都順利拿到我們想要的py源碼。

實(shí)際反編譯的時(shí)候,可能會(huì)遇到很多情況,比如加密、magic頭變化、依賴庫、py版本等問題,只能相應(yīng)的再去找解決辦法,見招拆招了。

當(dāng)然,網(wǎng)上還有很多方法,比如pyi-archive_viewer提取pyc文件,但大體思路都是exe > pyc > py。

這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論