導航:首頁 > 源碼編譯 > py位元組碼反編譯

py位元組碼反編譯

發布時間:2023-07-26 09:46:45

Ⅰ 用python2.7.1寫的小程序可以反編譯得到它的源代碼嗎

可以,網上有很多在線的反編譯工具,給你發幾個鏈接:
1、http://depython.com/index.php
2、https://github.com/eble/pyc2py
3、http://tool.lu/pyc/
不過好像第一個只適用於Python2.0-2.6,第二個適用於Python2.6,第三個應該可以反編譯2.7,你可以都試一下。

Ⅱ python反編譯遇到的新問題,求解

這個後綴應該算是除了python的py代碼外,遇到最多的一種文件類型了。雖然python被普遍認為是一種解釋性語言,但誰說它就不能被編譯後執行呢?python通過compile生成的pyc文件,然後由python的虛擬機執行。相對於py文件來說,編譯成pyc本質上和py沒有太大區別,只是對於這個模塊的載入速度提高了,並沒有提高代碼的執行速度,通常情況下不用主動去編譯pyc文件。

Ⅲ 有什麼工具可以將python編譯好的代碼.pyc反編譯為.py

depython是用來反編譯經過python編譯的後綴名為pyc或pyo的位元組碼文件的.
如果你找不到你寫的python源代碼,depython可以幫助你通過pyc/pyo文件來找回這些源代碼。
經depython反編譯得出的python源代碼,和你原來的代碼文件幾乎完全一樣。
http://www.depython.net/?lang=zh

Ⅳ PyInstaller打包、解包與反編譯.pyc文件

PyInstaller官網: https://www.pyinstaller.org/

假設有一個demo.py文件,在同目錄下啟動命令行或從命令行進入當前文件夾,使用如下命令打包

打包後同目錄下會產生兩個文件夾build和dist(distribution),dist文件夾內就是目標程序。

解包使用pyinstxtractor工具
Github地址: https://github.com/extremecoders-re/pyinstxtractor
假設在第1步中,使用-F參數將demo.py打包為獨立可執行文件demo.exe,進入dist文件夾,將pyinstxtractor.py放在該目錄下,在該目錄下啟動命令行或從命令行進入該文件夾,使用如下命令解包

解包得到的內容將放入同目錄下的demo.exe_extracted文件夾

找到目標.pyc文件,比如demo.pyc
反編譯.pyc文件使用uncompyle6工具
Github地址: https://github.com/rocky/python-uncompyle6
可以直接通過pip安裝uncompyle6

由於pyinstaller在打包可執行文件時會將.pyc文件頭部的16位元組magic head去掉,因此需要對需要反編譯的.pyc文件進行預處理,將文件頭部的16位元組magic head補充完整。這里使用一個開源的16進制編輯器ImHex。
Github地址: https://github.com/WerWolv/ImHex
進入demo.exe_extracted文件夾,用16進制編輯器打開struct.pyc文件復制頭部的16位元組magic head,再用16進制編輯器打開demo.pyc文件,將頭部的16位元組改為magic head,即將圖2中的部分更改為圖1中的值即可。

使用前一個命令,反編譯後的源碼內容會顯示在命令行窗口內;使用後一個命令,源碼會列印到指定文件中,如demo.py。
到此為止可以

Invalid pyc/pyo file - Magic value mismatch!
補充magic head後即可正常反編譯。

如果不是項目成員給所謂的程序而不肯給源碼,而我又繞不過這個程序的問題,我才不想折騰這些有的沒的。

Ⅳ python如何防止反編譯

Python 編譯生成 pyc 僅僅為了提升載入速度,並不是為了防止破解,反編譯後和原來一模一樣。pyinstaller,py2exe,只是把 pyc 打個包,同樣很弱。代碼混淆也只能增加看懂代碼的難度,但並不能防止破解。所以最為穩妥的辦法只有修改Python解釋器,對源代碼進行加密,解釋器載入源代碼時再解密,這種方法雖然可以防止破解,但給自己帶來麻煩不說,發布程序是需要打包自己修改後的解釋器,相當麻煩。

Ⅵ python源碼編程成pyc後,怎麼防止反編譯

無法防止反編譯,但可以混淆,讓你即使反編譯了,也看不懂語法
下面一段源碼

sd=1

defseed(s):
globalsd
sd=s

defrandn(n):
globalsd
sd=(sd*1103515245+12345)&0x7fffffff
returnsd%n

defmain():
seed(11)
foriinxrange(4):
printrandn(313)

if__name__=='__main__':
main()

混淆後

oo000=1
if9-9:Ii.o0o00Oo0O-iI11I1II1I1I
defoooo(s):
globaloo000
oo000=s
if11-11:ii1I-ooO0OO000o
defii11i(n):
globaloo000
oo000=(oo000*1103515245+12345)&0x7fffffff
returnoo000%n
if66-66:iIiI*iIiiiI1IiI1I1*o0OoOoOO00
defI11i():
oooo(11)
forO0Oinxrange(4):
printii11i(313)
if78-78:i11ii11iIi11i.oOoO0oo0OOOo+IiiI/Iii1ii1II11i
if__name__=='__main__':
I11i()#

Ⅶ sublime3 sftp插件怎麼破解

必備插件sftp:
1,Package Control可以用來install其他package
2,sftp遠程編輯文件:安裝:install->sftp具體配置

sftp工具破解
1,下載python位元組碼反編譯工具uncompyle2 (pyc 2 py) https://github.com/wibiti/uncompyle2
2,安裝uncompyle2
3,工具安裝後的位置 E:\Python27\Scripts\uncompyle2
4,反編譯文件commands.pyc
python uncompyle2 -o commands.py commands.pyc
5,注釋掉函數即可 sublime.set_timeout(reg, 1)

Ⅷ 反編譯python編寫的exe文件的詳細方法

接下來具體說一下步驟:

這個文件在pyinstaller庫里,還沒有安裝的需要安裝一下(已經安裝的跳過安裝)

安裝完成後在python安裝路徑下的\Lib\site-packages文件夾搜索archive_viewer.py文件

找到文件後可以復制到你想要放置的位置(不復制也行)

這一步會把編譯出的文件都羅列出來,像這樣

但是我們只需要找到我們exe對應的名字的文件就好了,確認存在之後滑到最下面,會發現有個?號用於輸入接下來的命令,在這邊我們輸入

會顯示 to filename? 讓你輸入需要輸出的pyc文件名稱,這邊輸入 your_app.pyc 回車就好了
接下來又會顯示?號,接著輸入 x struct 回車,輸入struct文件名稱 struct 回車

由於用PyInstaller打包後,pyc文件的前8個位元組會被抹掉,所以最後要自己添加回去。前四個位元組為python編譯的版本,後四個位元組為時間戳。
這邊使用Hex Editor Neo軟體同時打開.pyc文件和struct文件,復制struct文件前面8個位元組插入到.pyc文件的前面:

這樣我們就得到了完整的pyc文件

安裝uncompyle庫

反編譯

Ⅸ 怎麼通過反編譯獲取python源碼

可以啊,要看他的發布形式,如果是以腳本形式發布的,那就可以直接得到源碼。 如果是以exe形式發布的,需要進行反編譯。

閱讀全文

與py位元組碼反編譯相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163