導航:首頁 > 源碼編譯 > pyc如何反編譯

pyc如何反編譯

發布時間:2023-08-06 08:47:32

Ⅰ 反編譯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-uncompyle反編譯

python的編譯後文尺蔽件pyc,可以將pyc文件反編譯為py文件。

相應的工具: uncompyle

github地址: https://github.com/rocky/python-uncompyle6/

安裝: pip install uncompyle

安裝好後,注碰困衫意執行的命令為 uncompyle6 ,而不是 uncompyle 。

查看幫助命令:笑腔 uncompyle6 --help 、 uncompyle6 -h

反編譯單個文件 : uncompyle6 foo.pyc > foo.py

反編譯多個文件: uncompyle6 -o . *.pyc

例子:

Ⅲ 有個後綴是pyc文件想把它反編譯後修改,該怎麼做 需要什麼軟體

Python 的 dis 可以反編譯
Linux 下用decompyle反編譯python的pyc pyo文件
下載decompyle的開源版
http://ftp.de.debian.org/debian/pool/main/d/decompyle/decompyle_2.3.2.orig.tar.gz

Ⅳ python的程序可以編譯成二進制可執行文件么

python下編譯py成pyc和pyo
其實很簡單,

python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
編譯成pyc文件。
也可以寫份腳本來做這事:
Code:

import py_compile
py_compile.compile('path') //path是包括.py文件名的路徑


python -O -m py_compile file.py
編譯成pyo文件。
1.其中的 -m 相當於腳本中的import,這里的-m py_compile 相當於上面的 import py_compile
2.-O 如果改成 -OO 則是刪除相應的 pyo文件,具體幫助可以在控制台輸入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執行的。
什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件

什麼是pyd文件
pyd是python的動態鏈接庫。

為什麼需要pyc文件
這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc文件也是可以反編譯的,不同版本編譯後的pyc文件是不同的,根據python源碼中提供的opcode,可以根據pyc文件反編譯出 py文件源碼,網上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。
生成單個pyc文件
python就是個好東西,它提供了內置的類庫來實現把py文件編譯為pyc文件,這個模塊就是 py_compile 模塊。
使用方法非常簡單,如下所示,直接在idle中,就可以把一個py文件編譯為pyc文件了。(假設在windows環境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函數原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要編譯的py文件的路徑
cfile 表示編譯後的pyc文件名稱和路徑,默認為直接在file文件名後加c 或者 o,o表示優化的位元組碼

from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html

Ⅳ 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編譯好的代碼.pyc反編譯為.py

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

Ⅶ 問一下,如何用python的decompile批量反編譯pyc 是批量

先將需要反編譯pyc,放在指定的路徑下,然後os.system.pat一個for 循環就可以批量編譯了。

>>> import os
>>> file_list=[]
>>>loc_path='/hadoop/hadoop/'
>>> file_list=os.listdir(loc_path)
>>> for f in file_list:
執行反編譯

Ⅷ Python編程實現加密解密讀取文件

對Python加密時可能會有兩種形式,一種是對Python轉成的exe進行保護,另一種是直接對.py或者.pyc文件進行保護,下面將列舉兩種形式的保護流程。

1、對python轉exe加殼

下載最新版VirboxProtector加殼工具,使用加殼工具直接對demo.exe進行加殼操作

2、對.py/.pyc加密

第一步,使用加殼工具對python安裝目錄下的python.exe進行加殼,將python.exe拖入到加殼工具VirboxProtector中,配置後直接點擊加殼。

第二步,對.py/.pyc進行加密,使用DSProtector對.py/.pyc進行保護。

安全技術:

l虛擬機外殼:精銳5的外殼保護工具,創新性的引入了預分析和自動優化引擎,有效的解決了虛擬化保護代碼時的安全性和性能平衡問題。

l碎片代碼執行:利用自身成熟的外殼中的代碼提取技術,抽取大量、大段代碼,加密混淆後在安全環境中執行,最大程度上減少加密鎖底層技術和功能的依賴,同時大量大段地移植又保證了更高的安全性。

lVirbox加密編譯引擎:集編譯、混淆等安全功能於一身,由於在編譯階段介入,可優化空間是普遍虛擬化技術無法比擬的,對代碼、變數的混淆程度也有了根本的提升。

l反黑引擎:內置R0級核心態反黑引擎,基於黑客行為特徵 的(反黑資料庫)反制手段。精準打擊調試、注入、內存修改等黑客行為,由被動挨打到主動防護。

加密效果:

加密之前

以pyinstall 的打包方式為例,使用pyinstxtractor.py文件對log_322.exe進行反編譯,執行後會生成log_322.exe_extracted文件夾,文件夾內會生成pyc文件。

成功之後會在同目錄下生成一個文件夾

閱讀全文

與pyc如何反編譯相關的資料

熱點內容
vc6查看編譯的錯誤 瀏覽:595
心理大全pdf 瀏覽:1002
區域鏈加密幣怎麼樣 瀏覽:341
查找命令符 瀏覽:95
壓縮工具zar 瀏覽:735
白盤怎麼解壓 瀏覽:474
辰語程序員學習筆記 瀏覽:47
程序員被公司勸退 瀏覽:523
java三子棋 瀏覽:692
加密空間怎麼強制進入 瀏覽:345
ug分割曲線命令 瀏覽:209
學碼思程序員 瀏覽:609
自考雲學習app為什麼登不上 瀏覽:410
domcer伺服器晝夜更替怎麼搞 瀏覽:436
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976