1. 程式人生 > >對Python源碼加密及反編譯前後對比

對Python源碼加密及反編譯前後對比

python 加密

關於python的加密

目前軟件開發商對 Python 加密時可能會有兩種形式,一種是對python轉成的exe進行

保護,另一種是直接對.py或者.pyc文件進行保護,下面將列舉兩種形式的保護流程。

1、 對 python轉exe加殼

下載最新版加殼工具,使用加殼工具直接對demo.exe進行加殼操作

2、對.py/.pyc加密

第一步,使用加殼工具對 python 安裝目錄下的 python.exe 進行加殼,將 python.exe 拖入到加殼工具 VirboxProtector 中,配置後直接點擊加殼。

第二步,對.py/.pyc 進行加密,使用 DSProtector 對.py/.pyc 進行保護。

安全技術:

l 虛擬機外殼:精銳5的外殼保護工具,創新性的引入了預分析和自動優化引擎,有效的解決了虛擬化保護代碼時的安全性和性能平衡問題。

l 碎片代碼執行:利用自身成熟的外殼中的代碼提取技術,抽取大量、大段代碼,加密混淆後在安全環境中執行,最大程度上減少加密鎖底層技術和功能的依賴,同時大量大段地移植又保證了更高的安全性。

l Virbox加密編譯引擎:集編譯、混淆等安全功能於一身,由於在編譯階段介入,可優化空間是普遍虛擬化技術無法比擬的,對代碼、變量的混淆程度也有了根本的提升。

l 反黑引擎:內置R0級核心態反黑引擎,基於黑客行為特征 的(反黑數據庫)反制手段。精準打擊調試、註入、內存修改等黑客行為,由被動挨打到主動防護。


加密效果:

加密之前

以pyinstall 的打包方式為例,使用pyinstxtractor.py文件對log_322.exe進行反編譯,執行後會生成log_322.exe_extracted文件夾,文件夾內會生成pyc文件。

技術分享圖片

成功之後會在同目錄下生成一個文件夾

技術分享圖片

技術分享圖片

使用010 Editor添加幾個字節,重命名為pyc文件

註【此處和python的版本有關,Python27的可以直接解壓為pyc文件,Python34還需要添加幾個字節】

技術分享圖片

然後使用EasyPython Decompiler 工具反編譯pyc

技術分享圖片

成功之後通目錄下會生成dis文件,生成出的dis文件可以用文本編輯器打開,看到源碼

技術分享圖片

反編譯後的log_322.exe的源碼

技術分享圖片

加密之後:


技術分享圖片


技術分享圖片


【註:不同的打包方式原理不同,源碼存放的位置也不同,所以需要保護的具體模塊也是不同的】

加密之後再嘗試解壓log322.exe失敗,已經無法進行反編譯,使用常規反編譯工具也是無法進行分析的。

技術分享圖片



對Python源碼加密及反編譯前後對比