exe反编译_反编译Python生成exe软件(Py3-polySML)
反編譯對象為一篇文獻上的軟件,反編譯只是為了了解一些源代碼的邏輯。
過程參考文章:python3.7.4反編譯生成的.exe
反編譯對象:polySML
此對象為python打包,且未進行加密加殼軟件,僅為學術使用
使用工具
- python文件:pyinstxtractor
- 16進制編輯器:010 Editor
- python包:uncompyle
大致流程:
- 通過pyinstxtractor將exe的內容文件提取出來
- 使用010 Editor將pyc文件缺失部分補充完整
- 使用uncompyle將pyc反編譯為py文件
1.拆解exe為pyc文件
- 將所需拆解的exe與pyinstxtractor文件放置在同一目錄中
- 在PowerShell中運行
當最后一行表明"Successfully ..."則拆解完成,個人認為其中最后一個"Possible entry point: MatML_no_comments"為個人編寫的主要程序, 也可以根據對于python包的名字的掌握進行推斷.
2.獲得pyc文件
在拆解的文件夾里找到無后綴名的文件, 這些文件除了struct都是pyc文件, 但是都有缺失, 需要進行修復.
關注的是作者編寫的主文件, 至于其他庫文件不關注.
使用010 Editor打開"MatML_no_comments"和"struct"文件
在"struct"文件中找到"MatML_no_comments"文件開頭的地方(即紅色框), 將紅色框前面的內容從"struct"中復制到"MatML_no_comments"(即藍色框), 使下圖的框內信息完全一致.
保存"MatML_no_comments", 在"MatML_no_comments"后面添加后綴名".pyc"
至此pyc文件修復完成
3.使用了uncompyle進行py還原
在python中安裝uncompyle庫
pip install uncompyle在powershell中運行
uncompyle6 目標文件.pyc > 最終文件.py此次使用上述會報編碼錯誤, 所以打開python文件進行輸入
import即可完成
報錯整理
- 編碼方式有問題: 參見幻華:反編譯python生成的exe時出現的問題
- 沒有修復完成, 重新修復
4.使用uncompyle還原其他py
這步需要對于python的包比較了解, 也可以直接在pypi上搜索進行判斷是否為作者自己編寫的文件
找到作者自定義的文件名到, 到文件夾"PYZ-00.pyz_extracted"中找到相應的pyc文件.
注意: 此處的pyc文件也需要進行如上步驟進行修復, 重復步驟2與步驟3, 則能初步將exe文件反編譯出來.
通過閱讀源代碼可以了解到作者編寫的邏輯或者輔助思考文章邏輯
總結
以上是生活随笔為你收集整理的exe反编译_反编译Python生成exe软件(Py3-polySML)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用python写脚本_【按键教程】用
- 下一篇: b站python教程哪个好_推荐B站上的