在最强模式下,如何让某个属性名不被混淆加密 #2248
Replies: 3 comments 1 reply
-
|
参考这里的 exclude 名称规则 |
Beta Was this translation helpful? Give feedback.
-
|
试过了,还是不行,代码如下:我把waiting属性名排除了 |
Beta Was this translation helpful? Give feedback.
-
|
subprocess.run([ 还是重命名了 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
加密命令:
subprocess.run([
"pyarmor", "gen", # 主命令:混淆加密
"--recursive", # 递归加密所有子文件夹里的 .py 文件
"--output", "dist", # 把加密后的代码输出到 dist 文件夹
"--enable-jit", # 启用 JIT 编译(最强防反编译),运行时动态解密,反编译后全是乱码
"--mix-str", # 字符串混淆(所有字符串变成乱码)
"--assert-call", # 插入断言,确保调用的函数是经过加密的,防止调试/篡改, 插入大量 assert,调试器一跑就崩溃, 这个选项隐含启用 --private
"--assert-import", # 启用自动检查模块功能,确保导入的脚本是经过加密的,确保加密的模块没有被替换, 这个选项隐含启用 --private
"--enable-rft", # 运行时函数加密,函数运行时才解密,静态分析完全失效
"--enable-bcc", # 字节码加密(最高级别)
"--obf-module", "1", # 加密模块对应 .pyc ,默认是 1
"--exclude", EXCLUDE_DIR, # 排除 这个 PackagingAndUpdatingScripts (存放:打包和更新版本脚本) 文件夹里的所有 .py 文件
"--pack", "onefile", # 此处打包成单exe文件,使用 --pack <onefile,onedir,FC,DC,NAME.spec> 加密脚本然后在打包成为单文件或者单目录
MAIN_PY # 入口文件(
], check=True)
代码中,需要做属性是否存在判断:
waiting = getattr(self, 'waiting', None)
if waiting:
print('001')
# 状态变更通知
self.waiting.set_status(msg)
print('002')
打包加密后,这个属性是被混淆加密的,我如何才能让这个waiting名不被处理, 代码中可以写特殊标记吗?
Beta Was this translation helpful? Give feedback.
All reactions