本日はソースコードの難読化について調べてみました。
難読化ってなんだ?
難読化とは、作成したソースコードの動作を変えずに、人間にとって読み取りにくく加工することです。アプリケーションの配布時やリリース時に必要になります。
難読化の効果
ソースコードの難読化を行うこと以下のようなメリットがあります。
- コード上のロジックやアイディアの流出防止
- セキュリティの向上
- 改ざん防止
ソースコードを難読化することで、可読性を下げ、コードの解析を難しくします。難読化をすることで、構造が分かりずらくなり、重要な技術や情報を保護することができます。これにより、攻撃者がコードを理解し、攻撃ポイントを見つけるのを難しくなり、セキュリティ向上の効果も付与されます。
暗号化との違い
難読化は、他者からの攻撃や改善を防ぐために使用されます。似たような用語に 暗号化 があります。難読化とは違い、暗号化の目的はデータを完全に保護することをです。暗号化されたデータを読めるのは、復号するための鍵を持っている人に限られます。
pythonでの難読化ツール
Pyminifier
Pyminifierは、Pythonのコードを難読化、圧縮、および最小化することができます。
PyArmor
PyArmorは、Pythonスクリプトを難読化するためのコマンドラインツールです。
参考
https://cloudnavi.nhn-techorus.com/archives/2727
https://www.agtech.co.jp/blog/2022/10/to-protect-mobile-applications/
https://miyashinblog.com/pyarmor/
https://and-engineer.com/articles/ZJks2BAAACAA_iVM