日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

exe反编译_反编译Python生成exe软件(Py3-polySML)

發(fā)布時(shí)間:2025/3/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 exe反编译_反编译Python生成exe软件(Py3-polySML) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

反編譯對(duì)象為一篇文獻(xiàn)上的軟件,反編譯只是為了了解一些源代碼的邏輯。

過(guò)程參考文章:python3.7.4反編譯生成的.exe

反編譯對(duì)象:polySML

此對(duì)象為python打包,且未進(jìn)行加密加殼軟件,僅為學(xué)術(shù)使用

使用工具

  • python文件:pyinstxtractor
  • 16進(jìn)制編輯器:010 Editor
  • python包:uncompyle

大致流程:

  • 通過(guò)pyinstxtractor將exe的內(nèi)容文件提取出來(lái)
  • 使用010 Editor將pyc文件缺失部分補(bǔ)充完整
  • 使用uncompyle將pyc反編譯為py文件

1.拆解exe為pyc文件

  • 將所需拆解的exe與pyinstxtractor文件放置在同一目錄中
  • 在PowerShell中運(yùn)行
python

運(yùn)行結(jié)果

當(dāng)最后一行表明"Successfully ..."則拆解完成,個(gè)人認(rèn)為其中最后一個(gè)"Possible entry point: MatML_no_comments"為個(gè)人編寫的主要程序, 也可以根據(jù)對(duì)于python包的名字的掌握進(jìn)行推斷.

2.獲得pyc文件

在拆解的文件夾里找到無(wú)后綴名的文件, 這些文件除了struct都是pyc文件, 但是都有缺失, 需要進(jìn)行修復(fù).

關(guān)注的是作者編寫的主文件, 至于其他庫(kù)文件不關(guān)注.

使用010 Editor打開"MatML_no_comments"和"struct"文件

在"struct"文件中找到"MatML_no_comments"文件開頭的地方(即紅色框), 將紅色框前面的內(nèi)容從"struct"中復(fù)制到"MatML_no_comments"(即藍(lán)色框), 使下圖的框內(nèi)信息完全一致.

保存"MatML_no_comments", 在"MatML_no_comments"后面添加后綴名".pyc"

至此pyc文件修復(fù)完成

3.使用了uncompyle進(jìn)行py還原

在python中安裝uncompyle庫(kù)

pip install uncompyle

在powershell中運(yùn)行

uncompyle6 目標(biāo)文件.pyc > 最終文件.py

此次使用上述會(huì)報(bào)編碼錯(cuò)誤, 所以打開python文件進(jìn)行輸入

import

即可完成

報(bào)錯(cuò)整理

  • 編碼方式有問(wèn)題: 參見(jiàn)幻華:反編譯python生成的exe時(shí)出現(xiàn)的問(wèn)題
# 'gbk' codec can't encode character 'xae' in position 3366: illegal multibyte sequence

  • 沒(méi)有修復(fù)完成, 重新修復(fù)
<class 'ValueError'>; bad marshal data (unknown type code)

4.使用uncompyle還原其他py

這步需要對(duì)于python的包比較了解, 也可以直接在pypi上搜索進(jìn)行判斷是否為作者自己編寫的文件

找到作者自定義的文件名到, 到文件夾"PYZ-00.pyz_extracted"中找到相應(yīng)的pyc文件.

注意: 此處的pyc文件也需要進(jìn)行如上步驟進(jìn)行修復(fù), 重復(fù)步驟2與步驟3, 則能初步將exe文件反編譯出來(lái).

通過(guò)閱讀源代碼可以了解到作者編寫的邏輯或者輔助思考文章邏輯

總結(jié)

以上是生活随笔為你收集整理的exe反编译_反编译Python生成exe软件(Py3-polySML)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。