愛伊米

如何將Python打包後的exe還原成.py?

用到的工具

pyinstxtractor。py 拆包(解壓)工具,將exe檔案解壓成一個資料夾

uncompyle6 pyc反編譯工具

010EditorEditor 或者其他二進位制檢視與修改工具,我這裡用的010Editor

安裝方法

第一步:解包

如何將Python打包後的exe還原成.py?

第二步:新增頭資訊

PyInstaller打包後,pyc檔案的前8個位元組會被抹掉,所以最後要自己添加回去。前四個位元組為python編譯的版本,後四個位元組為時間戳。想要獲得編譯版本可以檢視打包檔案裡struct的資訊

1)。 進入資料夾,找到以exe檔名命名的檔案(沒有後綴),這個就是目的檔案

如何將Python打包後的exe還原成.py?

2)。 用 010Editor 開啟 struct,前八位就是我們想要的資訊,將其複製

3)。 用 010Editor 開啟目的檔案我這裡是 abc_text,將上一步複製的資訊插入到開頭

修改前:

如何將Python打包後的exe還原成.py?

修改後:

如何將Python打包後的exe還原成.py?

4)。 將目的檔案我這裡是 abc_text,新增pyc的字尾

第三步:逆向目的檔案。pyc

1)。 其實這裡已經可以使用了。瞭解python的都知道pyc是py檔案編譯後的二進位制檔案,因此如果想要分析原始碼還得繼續逆向成。py檔案

如何將Python打包後的exe還原成.py?

2)。 uncompyle6逆向pyc檔案

如何將Python打包後的exe還原成.py?

如何將Python打包後的exe還原成.py?