用到的工具
pyinstxtractor.py 拆包(解壓)工具,將exe文件解壓成一個文件夾
uncompyle6 pyc反編譯工具
010EditorEditor 或者其他二進制查看與修改工具,我這里用的010Editor
安裝方法
pip install uncompyle6
第一步:解包
python3 pyinstxtractor.py ***.exe # 這里替換成你要反編譯的exe文件# 會生成一個以 exe文件名+_extracted 的文件夾,這個就是解包后的數(shù)據(jù)

第二步:添加頭信息
PyInstaller打包后,pyc文件的前8個字節(jié)會被抹掉,所以最后要自己添加回去。前四個字節(jié)為python編譯的版本,后四個字節(jié)為時間戳。想要獲得編譯版本可以查看打包文件里struct的信息
1)。 進入文件夾,找到以exe文件名命名的文件(沒有后綴),這個就是目的文件
2)。 用 010Editor 打開 struct,前八位就是我們想要的信息,將其復(fù)制
3)。 用 010Editor 打開目的文件我這里是 abc_text,將上一步復(fù)制的信息插入到開頭
修改前:

修改后:

4)。 將目的文件我這里是 abc_text,添加pyc的后綴
第三步:逆向 目的文件.pyc
1)。 其實這里已經(jīng)可以使用了。了解python的都知道pyc是py文件編譯后的二進制文件,因此如果想要分析源碼還得繼續(xù)逆向成.py文件
2)。 uncompyle6逆向pyc文件
uncompyle6 abc_text.pyc 》 abc_text.py

原文來自:https://www.jianshu.com/p/5871c3dd633b
(版權(quán)歸原作者所有,侵刪)
編輯:jq
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7298瀏覽量
93585 -
編譯
+關(guān)注
關(guān)注
0文章
682瀏覽量
34863 -
python
+關(guān)注
關(guān)注
56文章
4849瀏覽量
89209
原文標(biāo)題:將python打包后的exe還原成py
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Env報錯,顯示缺失 init_env.py文件是怎么回事?
termux調(diào)試python猜數(shù)字游戲
關(guān)于LABVIEW 生成EXE后 動態(tài)調(diào)用外部VI的問題
linux虛擬環(huán)境中調(diào)用Linux 版matlab編譯的python庫時出錯
如何將Keras H5模型轉(zhuǎn)換為中間表示 (IR) 格式?
使用Yolo-v3-TF運行OpenVINO?對象檢測Python演示時的結(jié)果不準(zhǔn)確的原因?
使用converter.py腳本轉(zhuǎn)換EfficientDet_D0模型報錯怎么解決?
如何將python文件導(dǎo)入到ROS系統(tǒng)中

如何將python打包后的exe還原成py
評論