支持的平台列表¶
PyArmor 的核心函数使用 C 来实现,对于常用的平台和部分嵌入式系统都已经 有编译好的动态库。
最常用平台的动态库已经打包在 PyArmor 的安装包里面,只要安装好之后即可 使用,参考 预安装的动态库清单 。
其他平台的动态库并没有随着安装包发布,参考 其他平台的动态库清单 。
在这些平台下面, pyarmor 会搜索 ~/.pyarmor/platforms/SYSTEM/ARCH
,其中 SYSTEM.ARCH
是一个 标准平台名称 。如果还没有下载,那么会
从远程服务器下载相应平台的动态库。
有些平台 pyarmor 无法自动识别,但是在 其他平台的动态库清单 中有可
用的动态库。可以直接下载下来,保存到这个平台的搜索路径
~/.pyarmor/platforms/SYSTEM/ARCH
下面。如果不能确定存放的路径,可
以使用命令 pyarmor -d download
查看,在开始的时候会显示 pyarmor
去那里查找动态库。如果需要让 pyarmor 自动识别这个平台,请把下面这个
脚本的输出发送到 jondy.zhao@gmail.com
from platform import *
print('system name: %s' % system())
print('machine: %s' % machine())
print('processor: %s' % processor())
print('aliased terse platform: %s' % platform(aliased=1, terse=1))
if system().lower().startswith('linux'):
print('libc: %s' % libc_ver())
print('distribution: %s' % linux_distribution())
如果需要在上面没有列出的平台使用 PyArmor,请发送邮件到 jondy.zhao@gmail.com
标准平台名称¶
这些名称可用于命令 obfuscate, build, runtime, download 中来指定平台名称。
- windows.x86
- windows.x86_64
- linux.x86
- linux.x86_64
- darwin.x86_64
- vs2015.x86
- vs2015.x86_64
- linux.arm
- linux.armv7
- linux.aarch32
- linux.aarch64
- android.aarch64
- linux.ppc64
- darwin.arm64
- freebsd.x86_64
- alpine.x86_64
- alpine.arm
- poky.x86
名称 | 操作系统 | CPU架构 | 特征 | 下载 | 说明 |
---|---|---|---|---|---|
windows.x86 | Windows | i686 | 反调试、JIT、高级模式 | _pytransform.dll | 使用 i686-pc-mingw32-gcc 交叉编译 |
windows.x86_64 | Windows | AMD64 | 反调试、JIT、高级模式 | _pytransform.dll | 使用 x86_64-w64-mingw32-gcc 交叉编译 |
linux.x86 | Linux | i686 | 反调试、JIT、高级模式 | _pytransform.so | 使用 GCC 编译 |
linux.x86_64 | Linux | x86_64 | 反调试、JIT、高级模式 | _pytransform.so | 使用 GCC 编译 |
darwin.x86_64 | MacOSX | x86_64, intel | 反调试、JIT、高级模式 | _pytransform.dylib | 使用 CLang 编译(MacOSX10.11) |
名称 | 操作系统 | CPU架构 | 特征 | 下载 | 说明 |
---|---|---|---|---|---|
vs2015.x86 | Windows | x86 | _pytransform.dll | 使用 VS2015 编译 | |
vs2015.x86_64 | Windows | x64 | _pytransform.dll | 使用 VS2015 编译 | |
linux.arm | Linux | armv5 | _pytransform.so | 32-bit Armv5 (arm926ej-s) | |
linux.armv7 | Linux | armv7 | 反调试、JIT | _pytransform.so | 32-bit Armv7 Cortex-A, hard-float, little-endian |
linux.aarch32 | Linux | aarch32 | 反调试、JIT | _pytransform.so | 32-bit Armv8 Cortex-A, hard-float, little-endian |
linux.aarch64 | Linux | aarch64 | 反调试、JIT | _pytransform.so | 64-bit Armv8 Cortex-A, little-endian |
linux.ppc64 | Linux | ppc64le | _pytransform.so | 适用于 POWER8 | |
darwin.arm64 | iOS | arm64 | _pytransform.dylib | 使用 CLang 编译(iPhoneOS9.3sdk) | |
freebsd.x86_64 | FreeBSD | x86_64 | _pytransform.so | 不支持获取硬盘序列号 | |
alpine.x86_64 | Alpine Linux | x86_64 | _pytransform.so | 可用于 Docker(musl-1.1.21) | |
alpine.arm | Alpine Linux | arm | _pytransform.so | 可用于 Docker(musl-1.1.21), 32 bit Armv5T, hard-float, little-endian | |
poky.x86 | Inel Quark | i586 | _pytransform.so | 使用 i586-poky-linux 交叉编译 | |
android.aarch64 | Android | aarch64 | _pytransform.so | Build by android-ndk-r20/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang |