成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何解包 Python 惡意可執行文件

安全 數據安全
使用 Python 編寫的程序通常以源碼的形式發布,也可以將所有依賴都打包到一個可執行文件中。那么如何解包 Python 惡意可執行文件呢?

使用 Python 編寫的程序通常以源碼的形式發布,也可以將所有依賴都打包到一個可執行文件中。那么如何解包 Python 惡意可執行文件呢?

打包

打包與加殼不同,打包 Python 程序的目的是創建一個可以在操作系統上獨立運行的可執行文件。使用例如 PyInstaller 這類打包工具時,會執行以下操作:

  • 將所有.py 源文件編譯為 python 字節碼文件(.pyc文件)
  • 整合所有 python 編譯的源代碼和 python 依賴,包括依賴于操作系統的 python 解釋器(Linux 上的 libpython3.9.so.1.0 或 Windows 上的 python37.dll)
  • 將所有資源都打包在一起,執行時將這些資源都解壓到內存中,然后使用解釋器解釋執行原始 python 代碼

以 Windows 平臺為例,將示例代碼使用 PyInstaller 進行打包:

示例代碼

直接運行腳本文件是很容易的:

運行情況

打包如下所示:

打包情況

打包得到的 evil_program.exe可以直接運行,可得到與腳本相同的運行結果。此時,程序可以移動到另一個完全沒有 Python 環境的機器上一樣可以執行。

運行情況

在 Windows 上解包 Python<3.9

如果樣本中可以看到很多以 py 開頭的字符串,基本可以斷定是一個打包的 Python 程序。

字符串

對于 PyInstaller 來說,還有獨特字符串 MEIPASS。

監控運行程序時在臨時文件夾中創建了哪些文件,就能夠知道使用的 Python 版本。例如 python38.dll 意味著使用的是 Python 3.8 版本。

監控文件系統

想要恢復源代碼,必須要保證:

  • 解壓得到所有文件,特別是編譯后的字節碼文件(.pyc)
  • 反編譯感興趣的 .pyc 文件

解壓可以使用 pyinstxtractor,使用相同版本的 Python 即可解壓得到文件:

解壓文件

pyinstxtractor 還額外提供了哪些是 Python 程序文件的信息,盡管存在誤報但是也有很大的幫助。可以看到主文件是 evil_program.pyc:

提取文件

接著使用 uncompyle6進行反編譯,值得注意的是 uncompyle6 只支持到 Python 3.8。

反編譯

在 Linux 上解包 Python>=3.9

再次使用 pyinstxtractor 解壓樣本文件。由于樣本是 64 位 ELF 文件,不能直接使用 pyinstxtractor 需要將文件的 pydata 轉存到一個單獨的文件再執行 pyinstxtractor。

轉存文件

解包成功如下所示,也需要配合相應的 Python 版本:

解壓文件

解壓后的數據中有一個 RansomWare.pyc,就是需要關注的內容。由于使用 Python 3.9,需要 Decompyle++進行反編譯。該工具美中不足的就是沒有文檔講解如何進行構建,如下所示:

構建反編譯工具

如果想要從任何地方調用 pycdc 命令,也可以運行 sudo make install。

pycdc 是反編譯命令,使用它來恢復 RansomWare.pyc 的源代碼:

反編譯

當然,某些情況下也會遇到反編譯失敗的問題。但大部分代碼還是可以正常進行反編譯的:

反編譯失敗

反編譯失敗時,可以使用 pycdas 命令來恢復“反匯編”的字節碼。

write_key() 函數的字節碼反匯編

結論

本文介紹了如何解壓和反編譯使用 PyInstaller 打包的 Python 程序,在應對使用 Python 編寫的惡意軟件時可以在源碼級進行分析,可以大大提高效率。

責任編輯:未麗燕 來源: FreeBuf.com
相關推薦

2023-09-04 07:14:36

2021-01-12 10:10:41

shell腳本Linux命令

2021-01-08 08:06:19

腳本Shell文件

2015-02-02 11:03:12

2010-02-22 18:04:27

CentOS mpla

2012-01-05 10:37:40

Java

2011-08-09 10:24:19

可執行文件病毒病毒

2017-02-07 10:22:53

2024-08-12 16:42:50

二進制工具系統

2021-01-14 22:17:09

PythonLinux工具

2009-06-20 09:21:37

UNIXLINUX

2024-05-06 00:00:00

Go文件瘦身代碼

2023-03-31 23:31:06

.go文本文件

2021-01-06 05:29:57

虛擬內存文件

2009-04-16 10:37:17

Javaexejar

2024-05-21 12:01:39

.NET 6開發

2022-05-20 08:55:02

py文件exepython

2023-12-18 09:21:22

開發靜態編譯Linux

2009-10-28 13:03:54

2021-07-02 05:23:10

微軟Edge瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品免费一区二区三区四区 | 韩日精品视频 | 午夜私人影院 | 亚洲福利在线观看 | 国产一二三区电影 | 一级片毛片 | 久久亚洲春色中文字幕久久久 | 成人午夜高清 | 国产精品久久久久久久久久 | 欧美h视频| 色播久久久 | 久久成人精品 | 久久久久久国 | 亚洲福利网 | 国产亚洲欧美在线视频 | 成人av在线大片 | 精品视频在线一区 | 国产一级影片 | 99精品电影| 国产成人精品免费视频大全最热 | 午夜天堂精品久久久久 | 久久99精品久久久久久狂牛 | 神马久久久久久久久久 | 美女国内精品自产拍在线播放 | 国产精品一区久久久 | 91精品国产91久久久久游泳池 | 视频一区二区在线观看 | 免费黄色录像视频 | 精品国产1区2区3区 一区二区手机在线 | 国产精品久久久久久久久久免费看 | 久久久久网站 | 亚洲网站在线观看 | 久久久一区二区三区四区 | 国产精品免费播放 | www.久久久.com| 黄色一级大片在线观看 | 国产午夜精品一区二区三区四区 | 亚洲成av人片在线观看无码 | 综合久久综合久久 | 国产一区二区三区四区三区四 | 欧美一区视频 |