用 Cython + Pyinstaller 安全地打包程式
前言
Pyinstaller 是很多人打包 Python 程式執行檔的第一選擇,但單純使用 Pyinstaller 打包的執行檔很容易被反編譯,如果要保護辛苦寫的程式碼不被輕易看光,可以搭配 Cython 將程式預先編譯成二進制檔案 (pyd),如此一來反編譯的難度會提升不少。
程式調整
- 由於 Pyinstaller 必須要指定一個 py 檔開始打包,這表示主程式會是明碼的,這時候可以再多建一個入口程式,由入口程式去 import 並執行主程式
- Pyinstaller 會自動解析 py 程式 import 的套並打包,但無法解析 pyd 檔,所以可以直接在入口程式 import 所有被使用到的套件,包括各程式彼此間的 import
下面舉個簡單的例子: