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.
Files changed (123) hide show
  1. {pyarmor-8.4.6 → pyarmor-8.4.7}/PKG-INFO +1 -1
  2. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/__init__.py +1 -1
  3. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/__main__.py +17 -0
  4. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/context.py +5 -1
  5. pyarmor-8.4.7/pyarmor/cli/core.data.1 +0 -0
  6. pyarmor-8.4.7/pyarmor/cli/core.data.2 +0 -0
  7. pyarmor-8.4.7/pyarmor/cli/core.data.3 +0 -0
  8. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/default.cfg +7 -1
  9. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/generate.py +7 -0
  10. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/hdinfo.py +1 -1
  11. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/register.py +4 -2
  12. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/config.py +1 -1
  13. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/PKG-INFO +1 -1
  14. pyarmor-8.4.6/pyarmor/cli/core.data.1 +0 -0
  15. pyarmor-8.4.6/pyarmor/cli/core.data.2 +0 -0
  16. pyarmor-8.4.6/pyarmor/cli/core.data.3 +0 -0
  17. {pyarmor-8.4.6 → pyarmor-8.4.7}/MANIFEST.in +0 -0
  18. {pyarmor-8.4.6 → pyarmor-8.4.7}/README.md +0 -0
  19. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/README.rst +0 -0
  20. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/__init__.py +0 -0
  21. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/benchmark.py +0 -0
  22. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/build_meta.py +0 -0
  23. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/bootstrap.py +0 -0
  24. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/config.py +0 -0
  25. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/docker.py +0 -0
  26. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/merge.py +0 -0
  27. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/mixer.py +0 -0
  28. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/plugin.py +0 -0
  29. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/public_capsule.zip +0 -0
  30. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/repack.py +0 -0
  31. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/resource.py +0 -0
  32. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cli/shell.py +0 -0
  33. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/cobuilder.py +0 -0
  34. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/README-ZH.md +0 -0
  35. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/README.md +0 -0
  36. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-for-exe.bat +0 -0
  37. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-for-freeze.bat +0 -0
  38. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.bat +0 -0
  39. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/build-with-project.sh +0 -0
  40. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/hello.py +0 -0
  41. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/queens.py +0 -0
  42. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/cx_Freeze/setup.py +0 -0
  43. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/helloworld/foo.py +0 -0
  44. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.bat +0 -0
  45. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-app.sh +0 -0
  46. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.bat +0 -0
  47. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/obfuscate-pkg.sh +0 -0
  48. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.bat +0 -0
  49. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pack-obfuscated-scripts.sh +0 -0
  50. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/hello.py +0 -0
  51. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/queens.py +0 -0
  52. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/py2exe/setup.py +0 -0
  53. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Arithmetic.py +0 -0
  54. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Calls.py +0 -0
  55. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/CommandLine.py +0 -0
  56. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Constructs.py +0 -0
  57. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Dict.py +0 -0
  58. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Exceptions.py +0 -0
  59. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Imports.py +0 -0
  60. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Instances.py +0 -0
  61. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lists.py +0 -0
  62. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Lookups.py +0 -0
  63. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/NewInstances.py +0 -0
  64. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Numbers.py +0 -0
  65. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Setup.py +0 -0
  66. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Strings.py +0 -0
  67. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/Tuples.py +0 -0
  68. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/With.py +0 -0
  69. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/clockres.py +0 -0
  70. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/__init__.py +0 -0
  71. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/package/submodule.py +0 -0
  72. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/pybench.py +0 -0
  73. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/pybench/systimes.py +0 -0
  74. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/simple/queens.py +0 -0
  75. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testmod/hello.py +0 -0
  76. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testmod/queens.py +0 -0
  77. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/main.py +0 -0
  78. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/__init__.py +0 -0
  79. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/examples/testpkg/mypkg/foo.py +0 -0
  80. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/__init__.py +0 -0
  81. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/build_data_module.py +0 -0
  82. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/buildext.py +0 -0
  83. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_bind_key.py +0 -0
  84. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_license_info.py +0 -0
  85. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/get_platform_name.py +0 -0
  86. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/merge.py +0 -0
  87. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/repack.py +0 -0
  88. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/helper/superuntime.py +0 -0
  89. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/license.tri +0 -0
  90. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/packer.py +0 -0
  91. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/darwin/x86_64/_pytransform.dylib +0 -0
  92. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86/_pytransform.so +0 -0
  93. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/linux/x86_64/_pytransform.so +0 -0
  94. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86/_pytransform.dll +0 -0
  95. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/platforms/windows/x86_64/_pytransform.dll +0 -0
  96. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/plugins/README.md +0 -0
  97. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/plugins/check_ntp_time.py +0 -0
  98. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/polyfills/__init__.py +0 -0
  99. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/polyfills/argparse.py +0 -0
  100. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/product.key +0 -0
  101. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/project.py +0 -0
  102. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/protect_code.pt +0 -0
  103. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/protect_code2.pt +0 -0
  104. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/public.key +0 -0
  105. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/public_capsule.zip +0 -0
  106. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor-deprecated.py +0 -0
  107. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor-webui.py +0 -0
  108. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyarmor.py +0 -0
  109. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyimcore.py +0 -0
  110. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyshield.key +0 -0
  111. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pyshield.lic +0 -0
  112. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/pytransform.py +0 -0
  113. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/reform.py +0 -0
  114. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/register.py +0 -0
  115. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/sppmode.py +0 -0
  116. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor/utils.py +0 -0
  117. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/SOURCES.txt +0 -0
  118. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/dependency_links.txt +0 -0
  119. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/entry_points.txt +0 -0
  120. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/requires.txt +0 -0
  121. {pyarmor-8.4.6 → pyarmor-8.4.7}/pyarmor.egg-info/top_level.txt +0 -0
  122. {pyarmor-8.4.6 → pyarmor-8.4.7}/setup.cfg +0 -0
  123. {pyarmor-8.4.6 → pyarmor-8.4.7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.4.6
3
+ Version: 8.4.7
4
4
  Summary: A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
5
5
  Home-page: https://github.com/dashingsoft/pyarmor
6
6
  Author: Jondy Zhao
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
 
3
- __VERSION__ = '8.4.6'
3
+ __VERSION__ = '8.4.7'
4
4
 
5
5
  logger = logging.getLogger('cli')
6
6
 
@@ -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
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(HT_IPV4, name='*'))
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
- if len(name) == 1 or name.count(name[0]) == len(name):
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
- self._check_product_name(product)
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'):
@@ -1,6 +1,6 @@
1
1
  from sys import platform
2
2
 
3
- version = '8.4.6'
3
+ version = '8.4.7'
4
4
 
5
5
  # The corresponding version of pytransform.so
6
6
  core_version = 'r52.6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.4.6
3
+ Version: 8.4.7
4
4
  Summary: A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
5
5
  Home-page: https://github.com/dashingsoft/pyarmor
6
6
  Author: Jondy Zhao
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