如何將Python打包后的exe還原成.py?
來(lái)源:https://www.jianshu.com/p/5871c3dd633b
用到的工具
pyinstxtractor.py 拆包(解壓)工具,將exe文件解壓成一個(gè)文件夾
uncompyle6 pyc反編譯工具
010EditorEditor 或者其他二進(jìn)制查看與修改工具,我這里用的010Editor
安裝方法
pip?install?uncompyle6
第一步:解包
python3?pyinstxtractor.py?***.exe???#??這里替換成你要反編譯的exe文件
#??會(huì)生成一個(gè)以?exe文件名+_extracted?的文件夾,這個(gè)就是解包后的數(shù)據(jù)

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

3). 用 010Editor 打開目的文件我這里是 abc_text,將上一步復(fù)制的信息插入到開頭
修改前:

修改后:

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



推薦閱讀:
入門:?最全的零基礎(chǔ)學(xué)Python的問(wèn)題? |?零基礎(chǔ)學(xué)了8個(gè)月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》?|?38年NBA最佳球員分析?|? ?從萬(wàn)眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個(gè)海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會(huì)做詩(shī)的機(jī)器人?|?給圖片上色?|?預(yù)測(cè)收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水??!?|?一鍵把html網(wǎng)頁(yè)保存為pdf!|??再見PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r(jià)機(jī)票提示器!?|60行代碼做了一個(gè)語(yǔ)音壁紙切換器天天看小姐姐!|
年度爆款文案
2).學(xué)Python真香!我用100行代碼做了個(gè)網(wǎng)站,幫人PS旅行圖片,賺個(gè)雞腿吃
3).首播過(guò)億,火爆全網(wǎng),我分析了《乘風(fēng)破浪的姐姐》,發(fā)現(xiàn)了這些秘密?
9).發(fā)現(xiàn)一個(gè)舔狗福利!這個(gè)Python爬蟲神器太爽了,自動(dòng)下載妹子圖片
點(diǎn)擊閱讀原文,教你搭建博客!

