欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文學(xué)會(huì)如何將Python打包后的exe還原成.py

 更新時(shí)間:2022年11月15日 15:40:14   作者:宋宋講編程  
反編譯的第一步就是要將exe文件轉(zhuǎn)換成py文件,下面這篇文章主要給大家介紹了如何通過一文學(xué)會(huì)將Python打包后的exe還原成.py的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

我們介紹過如何將python程序打包為exe可執(zhí)行文件。但有時(shí)候會(huì)遇到另一種情況,就是我們拿到別人打包好的exe文件,但是我想看看里面源代碼是怎樣的,這個(gè)能不能實(shí)現(xiàn)呢?

如果是用py打包而成的exe,是可以還原成py文件的,今天我們就給大家分享一下這個(gè)過程。

用到的工具

  • 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

如此就成功逆向還原出py文件。

總結(jié)

到此這篇關(guān)于如何將Python打包后的exe還原成.py的文章就介紹到這了,更多相關(guān)Python打包后exe還原成.py內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一些Python中的二維數(shù)組的操作方法

    一些Python中的二維數(shù)組的操作方法

    這篇文章主要介紹了一些Python中的二維數(shù)組的操作方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python三維網(wǎng)格體素化實(shí)例

    Python三維網(wǎng)格體素化實(shí)例

    這篇文章主要介紹了Python三維網(wǎng)格體素化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 用Python解析XML的幾種常見方法的介紹

    用Python解析XML的幾種常見方法的介紹

    這篇文章主要介紹了用Python解析XML的幾種常見方法,包括快速的使用ElementTree模塊等方法的實(shí)例介紹,需要的朋友可以參考下
    2015-04-04
  • 如何使用Pytorch搭建模型

    如何使用Pytorch搭建模型

    本來是只用Tenorflow的,但是因?yàn)門F有些Numpy特性并不支持,比如對(duì)數(shù)組使用列表進(jìn)行切片,所以只能轉(zhuǎn)戰(zhàn)Pytorch了(pytorch是支持的)。還好Pytorch比較容易上手,幾乎完美復(fù)制了Numpy的特性(但還有一些特性不支持),怪不得熱度上升得這么快。
    2020-10-10
  • Python?字符替換的四方法

    Python?字符替換的四方法

    本文主要介紹了Python?字符替換的四方法,主要包括replace、translate、maketrans?和正則這是四種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Python如何在單元測(cè)試中給對(duì)象打補(bǔ)丁

    Python如何在單元測(cè)試中給對(duì)象打補(bǔ)丁

    這篇文章主要介紹了Python如何在單元測(cè)試中給對(duì)象打補(bǔ)丁,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python中的bytes類型用法及實(shí)例分享

    Python中的bytes類型用法及實(shí)例分享

    這篇文章主要介紹了Python中的bytes類型及其用法,Python?bytes?類型用來表示一個(gè)字節(jié)串,bytes?只負(fù)責(zé)以字節(jié)序列的形式來存儲(chǔ)數(shù)據(jù),下面對(duì)其的相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-03-03
  • 為什么在函數(shù)中運(yùn)行的?Python?代碼速度更快?

    為什么在函數(shù)中運(yùn)行的?Python?代碼速度更快?

    對(duì)于Python解釋器來說,讀取和寫入局部變量比全局變量更容易和更快,因?yàn)樗鼈兊淖饔糜蚍秶^小
    2023-09-09
  • Python面向?qū)ο笾^承和多態(tài)用法分析

    Python面向?qū)ο笾^承和多態(tài)用法分析

    這篇文章主要介紹了Python面向?qū)ο笾^承和多態(tài)用法,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中繼承與多態(tài)的原理及相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • Python中11種NumPy高級(jí)操作總結(jié)

    Python中11種NumPy高級(jí)操作總結(jié)

    熬夜整了了11種Numpy的高級(jí)操作,每一種都有參數(shù)解釋與小例子輔助說明。文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2022-05-05

最新評(píng)論