为保护python源文件程序的知识产权,避免被不法分子直接剽窃
这是一个 Python 源文件打包工具,支持将 Python 文件打包为动态库(pyd/so)、可执行文件(exe)以及 ZIP 包。工具能够分析依赖并在打包时包含依赖文件。
pysectool/
Readme.md
Readme.txt
example.so
example1.py
example1.so
main.py
banner.txt #banner文件
packager_v1.py #打包工具 v1版 提供给python文件打包为so文件功能
packager_v2.py #打包工具 v2版 提供给python文件夹打包为so文件功能
setup.py
- pyd/so : 使用 Cython 打包为动态库。
- exe : 使用 PyInstaller 打包为可执行文件。
- ZIP : 包含依赖时会自动创建包含主模块和依赖的 ZIP 包。
支持添加混淆、反调试、反分析、加密等安全功能。
python packager.py <source_file> -o <output_dir> -f <format> [--no-deps] [--no-optimize] -b <banner><source_file>: 要打包的 Python 源文件路径。 -o, --output: 输出目录。 -f, --format: 打包格式,支持 pyd, so, exe,默认为 pyd。 --no-deps: 不包含依赖。 --no-optimize: 不优化代码。 -b 制定banner文件
python setup.py installexample1.py 内容如下:
import subprocess
def check_ping():
"""要求用户输入 IP 地址,并检测该 IP 是否可以 ping 通"""
ip = input("请输入要检测的 IP 地址: ")
try:
# 在 Linux 系统上使用 ping 命令,发送 4 个数据包
result = subprocess.run(['ping', '-c', '4', ip], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
if result.returncode == 0:
print(f"IP {ip} 可以 ping 通。")
else:
print(f"IP {ip} 无法 ping 通。")
except Exception as e:
print(f"检测过程中出现错误: {e}")
if __name__ == "__main__":
check_ping()python-packager example1.py -o . -f so #生成example1.somain程序调用example1.so
import example1
if __name__ == "__main__":
example1.check_ping()(venv) (base) root@uweic:/home/workspace/pysectool# python main.py
请输入要检测的 IP 地址: 10.1.2.100
IP 10.1.2.100 可以 ping 通。python setup.py installpython-packager example1.py -o . -f so -b banner.txt #生成example1.sopython main.py
