Python程式碼混淆處理工具:Intensio-Obfuscator

程式設計師的貓發表於2020-08-24

工具簡介

Intensio-Obfuscator可以直接將Python原始碼進行轉換,並輸出經過混淆處理後的Python程式碼。它會自動將變數名、類名以及函式名替換為隨機字元,並定義長度,移除註釋內容,自動換行,並給每一行程式碼增加隨機指令碼(所有的隨機值都是不同的)。

工具執行要求

Python版本>=v3.5

檔案支援

Intensio-Obfuscator目前支援的Python檔案程式碼版本為v2.x以及v3.x版本.

工具安裝

廣大使用者可以直接使用git命令將專案程式碼從GitHub程式碼庫中克隆至本地:

$ git clone https://github.com/Hnfull/Intensio-Obfuscator.git
$ python3 -m pip install -r Intensio-Obfuscator/requirements.txt
$ cd Intensio-Obfuscator/src/intensio_obfuscator
$ python3 intensio_obfuscator.py --help

功能介紹

替換:替換所有的變數名、類名以及函式名,移除所有的換行符

填充:在每一行程式碼後新增隨機指令碼,並移除所有的換行符

移除:移除程式碼中的全部註釋以及換行

低階混淆:生成32個字元的隨機字串,替換原始碼中定義的變數名、類名以及函式名

中級混淆:生成64個字元的隨機字串,替換原始碼中定義的變數名、類名以及函式名

高階混淆:生成128個字元的隨機字串,替換原始碼中定義的變數名、類名以及函式名

工具使用

參量 說明
-h,–help 顯示此幫助訊息並退出
-i, –input 源目錄-指示包含您的檔案的目錄
-o, –output 輸出目錄將被混淆-指示將包含檔案的空目錄
-mlen,–mixerlength 定義生成的隨機字串的長度[ lower:32
-ind,–indent 指示python原始碼的縮排,可能的值:[ 2
-rts,-replacetostr 啟用replace string to string mixed混淆功能
–excludewords 檔案以排除特定單詞(請參閱文件中的格式)僅用於-rts, --replacetostr混淆功能
-ps,-paddingscript 啟用padding script混淆功能
-rfn,–replacefilename 啟用replace file name混淆功能
–excludefiles 檔案以排除檔名(請參閱文件中的格式)僅用於-rfn, --replacefilename混淆功能
-rth,–replacetohex 啟用replace string to hex混淆(python files 2 only)
–version 檢查當前版本
-v,–verbose 提高詳細程度
intensio_obfuscator -i /Users/nzoe/PycharmProjects/ -o /Users/nzoe/PycharmProjects/test -mlen lower -rts -ps  -rth -ind 2

如果你想要在使用“替換”功能時排除掉某些變數名、類名或函式名的話,可以編輯下面這個檔案:

intensio/exclude_python_words.txt
本作品採用《CC 協議》,轉載必須註明作者和本文連結
你還差得遠吶!

相關文章