pyarmor 8.4.6__zip → 8.4.7__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyarmor-8.4.6 → pyarmor-8.4.7}/PKG-INFO +1 -1
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/__init__.py +1 -1
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/__main__.py +17 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/context.py +5 -1
- pyarmor-8.4.7/pyarmor/cli/core.data.1 +0 -0
- pyarmor-8.4.7/pyarmor/cli/core.data.2 +0 -0
- pyarmor-8.4.7/pyarmor/cli/core.data.3 +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/default.cfg +7 -1
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/generate.py +7 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/hdinfo.py +1 -1
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/register.py +4 -2
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/config.py +1 -1
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/PKG-INFO +1 -1
- pyarmor-8.4.6/pyarmor/cli/core.data.1 +0 -0
- pyarmor-8.4.6/pyarmor/cli/core.data.2 +0 -0
- pyarmor-8.4.6/pyarmor/cli/core.data.3 +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/MANIFEST.in +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/README.md +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/README.rst +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/__init__.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/benchmark.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/build_meta.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/bootstrap.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/config.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/docker.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/merge.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/mixer.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/plugin.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/public_capsule.zip +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/repack.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/resource.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/shell.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cobuilder.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/README-ZH.md +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/README.md +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-for-exe.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-for-freeze.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.sh +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/hello.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/queens.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/setup.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/helloworld/foo.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.sh +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.sh +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.bat +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.sh +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/hello.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/queens.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/setup.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Arithmetic.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Calls.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/CommandLine.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Constructs.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Dict.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Exceptions.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Imports.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Instances.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lists.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lookups.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/NewInstances.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Numbers.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Setup.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Strings.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Tuples.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/With.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/clockres.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/__init__.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/submodule.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/pybench.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/systimes.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/simple/queens.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testmod/hello.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testmod/queens.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/main.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/__init__.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/foo.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/__init__.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/build_data_module.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/buildext.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_bind_key.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_license_info.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_platform_name.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/merge.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/repack.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/superuntime.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/license.tri +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/packer.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/darwin/x86_64/_pytransform.dylib +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86/_pytransform.so +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86_64/_pytransform.so +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86/_pytransform.dll +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86_64/_pytransform.dll +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/plugins/README.md +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/plugins/check_ntp_time.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/polyfills/__init__.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/polyfills/argparse.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/product.key +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/project.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/protect_code.pt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/protect_code2.pt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/public.key +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/public_capsule.zip +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor-deprecated.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor-webui.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyimcore.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyshield.key +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyshield.lic +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pytransform.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/reform.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/register.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/sppmode.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/utils.py +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/SOURCES.txt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/dependency_links.txt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/entry_points.txt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/requires.txt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/top_level.txt +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/setup.cfg +0 -0
- {pyarmor-8.4.6 → pyarmor-8.4.7}/setup.py +0 -0
|
@@ -326,6 +326,10 @@ def cmd_reg(ctx, args):
|
|
|
326
326
|
regsvr.register(regfile, args.product, group=group)
|
|
327
327
|
|
|
328
328
|
|
|
329
|
+
def cmd_man(ctx, args):
|
|
330
|
+
pass
|
|
331
|
+
|
|
332
|
+
|
|
329
333
|
def main_parser():
|
|
330
334
|
parser = argparse.ArgumentParser(
|
|
331
335
|
prog='pyarmor',
|
|
@@ -619,6 +623,19 @@ https://pyarmor.readthedocs.io/en/stable/reference/man.html#pyarmor-reg
|
|
|
619
623
|
cparser.set_defaults(func=cmd_reg)
|
|
620
624
|
|
|
621
625
|
|
|
626
|
+
def man_parser(subparsers):
|
|
627
|
+
'''Open Pyarmor.Man in web-browser'''
|
|
628
|
+
cparser = subparsers.add_parser(
|
|
629
|
+
'man',
|
|
630
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
631
|
+
description=man_parser.__doc__,
|
|
632
|
+
help='register Pyarmor or upgrade old Pyarmor license'
|
|
633
|
+
)
|
|
634
|
+
|
|
635
|
+
cparser.set_defaults(func=cmd_man)
|
|
636
|
+
return cparser
|
|
637
|
+
|
|
638
|
+
|
|
622
639
|
def log_settings(ctx, args):
|
|
623
640
|
if args.debug:
|
|
624
641
|
root = logging.getLogger()
|
|
@@ -466,7 +466,7 @@ class Context(object):
|
|
|
466
466
|
|
|
467
467
|
@property
|
|
468
468
|
def exclude_restrict_modules(self):
|
|
469
|
-
return self._opts('builder', 'exclude_restrict_modules')
|
|
469
|
+
return self._opts('builder', 'exclude_restrict_modules').split()
|
|
470
470
|
|
|
471
471
|
@property
|
|
472
472
|
def co_threshold(self):
|
|
@@ -604,6 +604,10 @@ class Context(object):
|
|
|
604
604
|
return runtime_package_template if len(platforms) < 2 else \
|
|
605
605
|
multi_runtime_package_template
|
|
606
606
|
|
|
607
|
+
@property
|
|
608
|
+
def runtime_obf_key_mode(self):
|
|
609
|
+
return self._opti('runtime', 'obf_key_mode')
|
|
610
|
+
|
|
607
611
|
#
|
|
608
612
|
# RFT settings
|
|
609
613
|
#
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
;; Pyarmor version
|
|
4
4
|
major = 8
|
|
5
5
|
minor = 4
|
|
6
|
-
patch =
|
|
6
|
+
patch = 7
|
|
7
7
|
|
|
8
8
|
;; Compatible core version
|
|
9
9
|
cli.core = 5.4.3
|
|
@@ -206,6 +206,12 @@ package_name_format = pyarmor_runtime_{suffix}
|
|
|
206
206
|
;; pyarmor_runtime.so
|
|
207
207
|
simple_extension_name = 1
|
|
208
208
|
|
|
209
|
+
;; Obfuscate runtime key
|
|
210
|
+
;; 0: no obfuscation
|
|
211
|
+
;; 1: simple obfuscation
|
|
212
|
+
;;
|
|
213
|
+
obf_key_mode = 0
|
|
214
|
+
|
|
209
215
|
;; Enable outer runtime key
|
|
210
216
|
outer = 0
|
|
211
217
|
|
|
@@ -100,6 +100,8 @@ class Builder(object):
|
|
|
100
100
|
bootpath = self.ctx.cfg.get('builder', 'bootstrap_file')
|
|
101
101
|
encoding = self.ctx.cfg.get('builder', 'encoding')
|
|
102
102
|
|
|
103
|
+
plugins = [x for x in self.ctx.plugins if hasattr(x, 'post_script')]
|
|
104
|
+
|
|
103
105
|
namelist = []
|
|
104
106
|
for res in self.ctx.resources + self.ctx.extra_resources:
|
|
105
107
|
logger.info('process resource "%s"', res.fullname)
|
|
@@ -126,6 +128,11 @@ class Builder(object):
|
|
|
126
128
|
fullpath = os.path.join(path, r.output_filename)
|
|
127
129
|
os.makedirs(os.path.dirname(fullpath), exist_ok=True)
|
|
128
130
|
|
|
131
|
+
for plugin in plugins:
|
|
132
|
+
patched_source = plugin.post_script(self.ctx, r, source)
|
|
133
|
+
if patched_source:
|
|
134
|
+
source = patched_source
|
|
135
|
+
|
|
129
136
|
logger.info('write %s', fullpath)
|
|
130
137
|
with open(fullpath, 'w', encoding=encoding) as f:
|
|
131
138
|
f.write(source)
|
|
@@ -49,7 +49,7 @@ def main(argv):
|
|
|
49
49
|
print('Default Harddisk Serial Number: %s' % get_hd_info(HT_HARDDISK))
|
|
50
50
|
print('Default Mac address: %s' % get_hd_info(HT_IFMAC))
|
|
51
51
|
print('Default IPv4 address: %s' % get_hd_info(HT_IPV4))
|
|
52
|
-
print('Multiple Mac addresses: %s' % get_hd_info(
|
|
52
|
+
print('Multiple Mac addresses: %s' % get_hd_info(HT_IFMAC, name='*'))
|
|
53
53
|
|
|
54
54
|
for name in args.devname:
|
|
55
55
|
if name.startswith('/'):
|
|
@@ -372,14 +372,16 @@ class WebRegister(Register):
|
|
|
372
372
|
os.remove(self.ctx.license_token)
|
|
373
373
|
|
|
374
374
|
def _check_product_name(self, name):
|
|
375
|
-
|
|
375
|
+
name = name.lower()
|
|
376
|
+
if name.count(name[0]) == len(name) or name.find('pyarmor') >= 0:
|
|
376
377
|
raise RuntimeError('invalid product name "%s"' % name)
|
|
377
378
|
|
|
378
379
|
def prepare(self, keyfile, product, upgrade=False):
|
|
379
380
|
reginfo = self.parse_keyfile(keyfile)
|
|
380
381
|
logger.info('prepare "%s"', keyfile)
|
|
381
382
|
|
|
382
|
-
|
|
383
|
+
if product:
|
|
384
|
+
self._check_product_name(product)
|
|
383
385
|
|
|
384
386
|
rcode = self._get_old_rcode() if upgrade else None
|
|
385
387
|
if upgrade and not rcode and keyfile.endswith('regcode-to-pro.txt'):
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|