Rumah >pembangunan bahagian belakang >Tutorial Python >Penyelesaian kod sumber Python yang disulitkan PyArmor

Penyelesaian kod sumber Python yang disulitkan PyArmor

WBOY
WBOYke hadapan
2023-05-05 15:01:062451semak imbas

加密Python源码方案 PyArmor

Terdapat banyak skema penyulitan untuk kod sumber python Sekarang mari kita pelajari cara PyArmor menyulitkan ular sawa.

1. Pengenalan kepada PyArmor

  • PyArmor ialah alat baris arahan yang digunakan untuk mengelirukan skrip ular sawa ke mesin tetap, atau At a masa tertentu, skrip yang dikelirukan akan tamat tempoh dan tidak boleh digunakan.
  • Anda boleh menyemak penggunaannya melalui pyarmor -h Hanya sebahagian daripadanya dipintas di bawah untuk penjelasan:
(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) Fungsi utama. of pyarmor

  1. Gunakan perintah obfuscate untuk menyulitkan skrip.
  2. Gunakan lesen arahan untuk menjana lesen fail lesen baharu.lic untuk skrip yang disulitkan jika anda perlu menetapkan tempoh penggunaan skrip yang disulitkan atau mengehadkan penggunaan skrip mesin tertentu, anda perlu menjana fail lesen baharu dan menyulitkan skrip menggunakan fail lesen baharu.
  3. boleh menyulitkan keseluruhan pakej python.
  4. boleh bekerjasama dengan pyinstaller untuk membungkus projek python ke dalam pakej pemasangan boleh dijalankan secara bebas.
  5. Anda juga boleh menggunakan beberapa penyelesaian yang disediakan untuk meningkatkan lagi keselamatan skrip yang disulitkan apabila diperlukan untuk projek sebenar, cuma semak tapak web rasminya.

2. Contoh penggunaan

(1) Pasang

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

(2) Penyulitan umum

rreee

Jalankan arahan Sulitkan: pyarmor main.py.

PyArmor akan menyulitkan main.py dan semua fail *.py dalam direktori yang sama, dan akan menjana folder dist, yang mengandungi semua fail yang diperlukan untuk menjalankan skrip penyulitan The basic proses:

  1. Buat dist subdirektori output.
  2. Janakan skrip utama yang disulitkan main.py dan simpan dalam direktori output dist.
  3. Sulitkan semua fail *.py lain dalam direktori yang sama dan simpannya ke dist direktori output.
  4. Janakan semua fail tambahan yang diperlukan untuk menjalankan skrip penyulitan dan simpannya ke dist direktori output.

Pengesahan: Pergi ke direktori dist, python main.py.

Fail yang disulitkan kelihatan seperti ini:

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

(3) Penyulitan dengan lesen

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

(4) Ia juga boleh diikat Tetapkan pada mesin tetap

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

Untuk kaedah penggunaan lanjut, sila rujuk tapak web rasminya:
https://pyarmor.readthedocs.io/en/latest/.

Atas ialah kandungan terperinci Penyelesaian kod sumber Python yang disulitkan PyArmor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam