Maison  >  Article  >  développement back-end  >  Solution de code source Python crypté PyArmor

Solution de code source Python crypté PyArmor

WBOY
WBOYavant
2023-05-05 15:01:062398parcourir

加密Python源码方案 PyArmor

Il existe de nombreux schémas de cryptage pour le code source de Python. Voyons maintenant comment PyArmor crypte Python.

1. Introduction à PyArmor

  • PyArmor est un outil de ligne de commande utilisé pour obscurcir les scripts python. Il lie le script obscurci à une machine fixe, ou fait expirer le script obscurci et ne peut plus être utilisé après une certaine période de temps. .
  • Vous pouvez vérifier son utilisation via parmor -h, et seule une partie est interceptée pour l'explication ci-dessous :
(tt) PS C:test> pyarmor -h
usage: pyarmor [-h] [-v] [-q] [-d] [--home HOME] [--boot BOOT]...
optional arguments:
-h, --help show this help message and exit
-v, --versionshow program's version number and exit
-q, --silent Suppress all normal output
-d, --debugPrint exception traceback and debugging message
--home HOMEChange pyarmor home path
--boot BOOTChange boot platform
The most commonly used pyarmor commands are:
obfuscate (o) Obfuscate python scripts
licenses (l) Generate new licenses for obfuscated scripts
pack (p) Pack obfuscated scripts to one bundle
init (i) Create a project to manage obfuscated scripts
config (c) Update project settings
build (b)Obfuscate all the scripts in the project
info Show project information
checkCheck consistency of project
hdinfo Show all available hardware information
benchmarkRun benchmark test in current machine
register Make registration keyfile work
download Download platform-dependent dynamic libraries
runtimeGenerate runtime package separately
help Display online documentation
See "pyarmor <command> -h" for more information on a specific command.
More usage refer to https://pyarmor.readthedocs.io

(1) Principales fonctions de parmor

  1. Utilisez la commande obfuscate pour crypter le script.
  2. Utilisez la commande licenses pour générer un nouveau fichier de licence licence.lic pour le script chiffré Si vous devez définir la période d'utilisation du script chiffré ou restreindre l'utilisation du script sur une machine spécifique, vous devez générer. un nouveau fichier de licence et chiffrez-le avec le nouveau fichier de licence.
  3. Peut crypter l'intégralité du package python.
  4. peut être utilisé avec pyinstaller pour empaqueter le projet python dans un package d'installation exécutable indépendamment.
  5. Vous pouvez également utiliser certaines des solutions qu'il propose pour améliorer encore la sécurité des scripts cryptés. Lorsque cela est nécessaire pour des projets réels, consultez simplement son site officiel.

2. Exemples d'utilisation

(1) Installation

pip install pyarmor -i https://pypi.douban.com/simple/
-i https://pypi.douban.com/simple/ 是使用国内的豆瓣源,提升安装速度,具体可参见我的其他文章。

(2) Chiffrement général

# module1.py内容如下
def module1_func1():
print("I'm module1.py")
return 
# main.py内容如下
import module1
print("I'm main.py")
module1.module1_func1()。

Exécutez la commande pour chiffrer : parmor o main.py.

PyArmor chiffrera main.py et tous les fichiers *.py dans le même répertoire, et générera un dossier dist, qui contient tous les fichiers nécessaires à l'exécution du script de chiffrement :

  1. Créer. un sous-répertoire de sortie dist.
  2. Générez le script principal chiffré main.py et enregistrez-le dans le répertoire de sortie dist.
  3. Cryptez tous les autres fichiers *.py dans le même répertoire et enregistrez-les dans le répertoire de sortie dist.
  4. Générez tous les fichiers auxiliaires nécessaires à l'exécution du script de cryptage et enregistrez-les dans le répertoire de sortie dist.

Vérification : Allez dans le répertoire dist, python main.py.

Le fichier crypté ressemble à ceci :

from pytransform import pyarmor_runtime
pyarmor_runtime()
__pyarmor__(__name__, __file__, b'x50x59x41x52x4dx4fx52x00x00x03x08x00x55x0dx0dx0ax09x33xe0x02x00x00x00x00x01x00x00x00x40x00x00x00x63x01x00x00x00x00x00x18x26xa4x75x12x0cx32x8fxd9xa6xf8x0ax0bx17x1exc7xfex00x00x00x00x00x00xx22x0cxa0x75x0cx1ax13x8ax26xb4x02x46x1bx8cx5dxafxd0x81xc2x22x59xc0x1dxd2x83x99x01x09xb1x78x4cxdcx58x9bxdfx17xd9xe9x07xa4xa7xc6x51xdexaax20xbfx7cx43xbbx83x87xafx82x9ex65x2dxaexb9x5bx14xfcxf8x1dxc7x09xe5x65xa7x8dx5ax62x9dx78xa3x82x4cx53x17xc9x3ax15xa4xe7x66xdax3fxf2x9d', 2)
还会根据不同平台生成相关依赖:在pytransform文件夹下,例如windows生成相关.dll,linux生成.so等。

(3) Cryptage avec licences

1.生成新的许可文件
pyarmor l -e 2022-09-09 test01
执行这条命令会生成一个带有效期的认证文件: 创建license.lic与license.lic.txt,保存在licenses/test01目录下
2.使用新生成的许可文件加密脚本
pyarmor o --with-license .licensestest01license.lic main.py
3.同样可以在dist目录下找到相关,此时如果过期了,则会提示:License is expired

(4) Il peut également être lié à une machine fixe

1.在该机器上运行命令获取硬件信息
pyarmor hdinfo
2.然后生成绑定的固定机器的许可文件
pyarmor l --bind-disk "100304PBN2081SF3NJ5T" --bind-mac "20:c1:d2:2f:a0:96" code-002
3.使用这个许可文件加密脚本,加密脚本就只能在指定机器上运行
pyarmor o --with-license licenses/code-002/license.lic main.py

Pour plus de méthodes d'utilisation, veuillez vous référer à son site officiel site Web :
https://pyarmor.readthedocs.io/en/latest/.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer