用到的工具
-
pyinstxtractor.py 拆包(解壓)工具勘纯,將
exe
文件解壓成一個(gè)文件夾 -
uncompyle6
pyc反編譯工具 -
010Editor
或者其他二進(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
的信息
-
進(jìn)入文件夾旺订,找到以
exe
文件名命名的文件(沒有后綴)弄企,這個(gè)就是目的文件
樣例 -
用
010Editor
打開struct
,前八位就是我們想要的信息区拳,將其復(fù)制
樣例 用
010Editor
打開目的文件
我這里是abc_text
拘领,將上一步復(fù)制的信息插入到開頭
修改前:
樣例
修改后:
樣例
- 將
目的文件
我這里是abc_text
,添加pyc
的后綴
第三步:逆向 目的文件.pyc
-
其實(shí)這里已經(jīng)可以使用了樱调。了解
python
的都知道pyc
是py
文件編譯后的二進(jìn)制文件约素,因此如果想要分析源碼還得繼續(xù)逆向成.py
文件,
樣例 uncompyle6
逆向pyc
文件
uncompyle6 abc_text.pyc > abc_text.py
樣例
樣例
樣例