逆向python生成的可执行文件
先安裝pyinstaller
pip install pyinstaller -i https://pypi.douban.com/simpl
寫一個簡單的腳本:
print 'hello,world'pyinstaller基本用法,常用的可選參數如下:
--onefile 將結果打包成一個可執行文件 --onedir 將所有結果打包到一個文件夾中,該文件夾包括一個可執行文件和可執行文件執行時需要的依賴文件(默認) --paths=DIR 設置導入路徑 --distpath=DIR 設置將打包的結果文件放置的路徑 --specpath=DIR 設置將spec文件放置的路徑 --windowed 使用windows子系統執行,不會打開命令行(只對windows有效) --nowindowed 使用控制臺子系統執行(默認)(只對windows有效) --icon=<FILE.ICO> 將file.ico添加為可執行文件的資源(只對windows有效)pyinstaller --onefile --nowindowed one.py #用pyinstaller生成可執行文件
會在one.py的目錄下生成一個dist文件夾,文件夾里有one.exe
那我們怎么把exe還原為py文件呢
我們用pyinstaller的archive_viewer.py C:\Python27\Lib\site-packages\PyInstaller\utils\cliutils\archive_viewer.py 路徑根據你的python更改
python archive_viewer.py one.exe(替換成你自己的exe文件路徑)
可以看到他反編譯出了很多模塊,其中one是我們想要的
我們用x one提取出來,命名為one.pyc
但此時one.pyc的前8個字節是被刪了的,我們要補回來
前四個字節為python編譯的版本,后四個字節為時間戳,時間戳可以任意,編譯器版本python2.7 為03 f3 0d 0a,python3.4 為ee 0c 0d 0a
前面8個字節是我添加的
用easy python decompiler還原pyc,會生成一個one.pyc_dis
還原成功
總結
以上是生活随笔為你收集整理的逆向python生成的可执行文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: *ctf 逆向math题解
- 下一篇: initdz linux挖坑病毒分析