欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

UPX 功能介紹與使用方法

admin
2025年3月24日 22:33 本文熱度 257

UPX 是什么

UPX 全稱是 "Ultimate Packer for eXecutables",是一個免費、開源、編寫、可擴展、高性能的可執行程序打包程序。換句話說一個可執行文件的壓縮工具。主要的功能是將可執行的二進制程序、動態鏈接庫和其他的二進制文件壓縮為更小的體積,UPX 通常可以將文件大小減少 50% - 70%。從而減少磁盤空間占用、降低網絡傳輸所需帶寬、以及分發成本(UPX 創建于 1996年,那時大家都在使用軟盤,所以存儲空間十分寶貴,也凸顯了可執行程序壓縮的必要性)。

同時 UPX 還有以下優勢:

  • 可靠性: UPX 內部維護了一套校驗邏輯,對壓縮前和解壓后的文件進行校驗,以保證程序的完整性。
  • 安全性: 由于UPX 多年來一直是開源項目,因此任何開發者、防病毒軟件廠商都能看到 UPX 壓縮程序內部邏輯并驗證安全性。
  • 解壓速度: 在任何現代機器上,解壓速度都超過 500 MB/秒。
  • 無內存開銷: 解壓運行壓縮后的程序無需額外的內存開銷。
  • 出色的壓縮比: UPX 通常比傳統的 Zip 壓縮算法壓縮效果更好。使用 UPX 可以減小分發文件的大小,從而在網絡傳輸和存儲方面節省資源。
  • 通用性: 可以打包多種可執行格式,包括 Windows 應用程序和 DLL、macOS 應用程序和 Linux 可執行文件。
  • 可擴展: UPX 良好的代碼設計,很容易添加新的可執行文件格式支持和新的壓縮算法。

UPX 的爭議

UPX 除了上面提到的壓縮功能之外,還有另一個主要作用就是加殼。既字面意思,將可執行程序的外部再包一層外殼程序,并在運行時使用外殼程序將實際的程序來解壓運行。

通過 UPX 加殼有以下優勢:

  • 安全性:加殼可以提高可執行文件的安全性,因為攻擊者很難直接分析或修改外殼程序中的代碼。這樣可以防止惡意修改和病毒注入。
  • 反調試和反分析:一些外殼程序可以包含反調試和反分析的技術,使得分析者難以逆向工程和分析程序的邏輯。
  • 授權保護:加殼可以用于保護軟件的授權,使其只能在經過授權的環境中運行,從而防止盜版。
  • 代碼混淆:加殼可以將原始可執行文件的代碼混淆到外殼程序中,增加分析的復雜性,從而提高了對抗逆向工程的能力。

在過去的一段時間里,一些黑客或者惡意軟件作者使用 UPX 等加殼工具來隱藏惡意軟件和病毒,以逃避殺毒軟件和分析者的檢測。主要有以下幾個要點:

  • 病毒和惡意軟件的加殼:黑客和惡意軟件作者使用UPX等加殼工具來包裝他們的惡意代碼。這使得分析者和殺毒軟件難以識別和分析這些惡意軟件,因為它們需要解壓縮才能揭示其真實的目的和功能。
  • 病毒分發:加殼也可用于將惡意軟件嵌入到合法的可執行文件中,然后通過社會工程或其他手段欺騙用戶執行。用戶可能認為他們正在運行一個合法的程序,但實際上卻是運行了一個加殼的惡意軟件。
  • 反病毒工具的適應性:隨著黑客使用加殼技術來隱藏其活動,安全軟件公司也不得不不斷提高其產品的適應性,以識別和處理加殼的可執行文件。這導致了反病毒工具的不斷演進,以更好地應對這種挑戰。
  • 法律和道德問題:加殼技術的濫用引發了一系列法律和道德問題。黑客使用加殼來隱藏其犯罪活動,這導致了對加殼工具的合法性和使用的爭議。

正因為上面提到的一些爭議,導致大部分情況下,殺毒軟件會對加殼的可執行文件產生警報或誤報病毒。這是因為加殼技術會改變可執行文件的結構和行為,使殺毒軟件難以確定文件的真實性質。不過隨著殺毒軟件公司對檢測引擎的改進,這些誤報也在逐漸減少。

為什么使用 UPX

我使用 UPX 的目的是因為自己在公司內部做了一個運維工具,這個運維工具對部署的便捷程度要求比較高。運維工具使用 Go 語言開發,在項目編譯的同時將依賴的資源文件,借助 Go 語言的 embed 功能打包到二進制文件內部,使其運行只依賴主程序一個文件。

編譯的 Linux 可執行文件有 22 MB 左右,為了進一步方便運維同時部署此工具,決定使用 UPX 進一步壓縮體積。

如何使用

安裝

訪問官方下載地址:https://github.com/upx/upx/releases/latest

根據開發環境選擇不同的 upx 版本,我的開發環境是 Windows,所以選擇的也是 Windows 版本,需要注意的是,upx 可以跨平臺壓縮,也就是說可以在Windows 的開發平臺上壓縮 Linux 平臺的可執行程序。

下載完成后可以選擇直接解壓 upx 主程序使用,或者配置環境變量來使用。

使用

UPX 的基本使用格式為:upx [選項] 待壓縮的文件

壓縮級別參數

  • 默認級別: 通常是一個壓縮比和消耗時間的中間選項,如果不指定壓縮級別參數,UPX 會使用此級別。
  • -1 ~ -9: UPX 提供了 -1 到 -9 的壓縮級別參數。其中 -1 表示最低級別的壓縮,而 -9 表示最高級別的壓縮,通常級別越高,壓縮比越高(壓縮后體積越小),但壓縮所需時間也會更長。
  • --brute: 高級別的壓縮選項,類似于 -9,但壓縮的過程中會使用更多的壓縮技巧,可能會導致更長的壓縮時間。
  • --ultra-brute: UPX 中最高級別的壓縮,使用最激進的壓縮算法,盡可能的減小文件大小。需要更長的壓縮時間,并且運行時所需的解壓時間也會增加。
  • --best: 使用最佳壓縮結果的選項,通常效果等于 -9 或者 --ultra-brute
  • --fast: 使用最快壓縮速度的選項,通常效果等于 -1 或者 -2
  • --lzma: 使用 LZMA 算法進行壓縮,可以獲得比較高的壓縮比,但不會有 --ultra-brute 那么激進,且通常比 -9 更快。
  • --overlay: 選項將壓縮文件附加到可執行文件的末尾,而不是創建新文件。這可以用于一些特殊用途。
  • --force: 用于強制壓縮,即使 UPX 認為此文件不適合壓縮。
  • --all-filters: 嘗試所有可用的壓縮算法,以嘗試找到最佳的壓縮組合(個人感覺和默認差不多)。

其他參數

  • -o: 指定壓縮后文件輸出的名稱,如果不指定則默認覆蓋原始文件。
  • --list: 列出壓縮過的文件信息,例如壓縮比例、文件大小等。
  • --quiet: 或 -q 選項,使用安靜模式,減少輸出信息,在批處理或自動化的過程中使用。
  • --verbose: 或 -v 選項,啟用詳細輸出,有關壓縮進程的詳細信息。
  • --test: 用于測試壓縮程序是否能正常的解壓縮或運行,不會進行實際的壓縮操作。
  • --keep: 保留原始文件,默認情況下如果不指定輸出文件名,則會在壓縮結束后刪掉原始文件。
  • --threads: 指定用于壓縮的線程數,默認情況下與 CPU 核心數量相等。
  • --decompress: 用于解壓還原已經被 UPX 壓縮的文件。

壓縮效果展示

我這里使用一個體積為 23007232 字節(21.9MB),使用 Go 語言編譯后的二進制程序進行壓縮測試,演示在不同壓縮級別下的壓縮比、耗時、壓縮后的體積等信息,提供壓縮算法的選擇參考。

壓縮級別/算法壓縮率體積(字節)體積(MB)所需耗時
-149.43 %1137270410.81 秒
-346.84 %1077664010.22 秒
-538.34 %88201128.415 秒
-736.13 %83127767.9211 秒
-935.23 %81045207.7218 秒
默認級別36.13 %83127767.9210 秒
--brute29.87 %68713446.55107 秒
--ultra-brute29.74 %68433006.52128 秒
--lzma29.97 %68960806.5711 秒
--best35.21 %81002327.7210 秒
--fast49.43 %1137270410.81 秒

(高清圖片可點擊原文連接在我的博客查看)


參考來源: https://upx.github.io?


閱讀原文:原文鏈接


該文章在 2025/3/25 10:29:19 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved