pyarmor 8.5.9__zip → 8.5.10__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 (124) hide show
  1. {pyarmor-8.5.9 → pyarmor-8.5.10}/PKG-INFO +1 -1
  2. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/__init__.py +1 -1
  3. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/bug.py +14 -3
  4. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/context.py +30 -6
  5. pyarmor-8.5.10/pyarmor/cli/core.data.1 +0 -0
  6. pyarmor-8.5.10/pyarmor/cli/core.data.3 +0 -0
  7. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/default.cfg +5 -2
  8. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/generate.py +1 -4
  9. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/hdinfo.py +17 -1
  10. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/register.py +3 -1
  11. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/repack.py +1 -1
  12. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/config.py +1 -1
  13. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor.egg-info/PKG-INFO +1 -1
  14. pyarmor-8.5.10/pyarmor.egg-info/requires.txt +1 -0
  15. {pyarmor-8.5.9 → pyarmor-8.5.10}/setup.py +1 -1
  16. pyarmor-8.5.9/pyarmor/cli/core.data.1 +0 -0
  17. pyarmor-8.5.9/pyarmor/cli/core.data.3 +0 -0
  18. pyarmor-8.5.9/pyarmor.egg-info/requires.txt +0 -1
  19. {pyarmor-8.5.9 → pyarmor-8.5.10}/MANIFEST.in +0 -0
  20. {pyarmor-8.5.9 → pyarmor-8.5.10}/README.md +0 -0
  21. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/README.rst +0 -0
  22. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/__init__.py +0 -0
  23. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/benchmark.py +0 -0
  24. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/build_meta.py +0 -0
  25. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/__main__.py +0 -0
  26. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/bootstrap.py +0 -0
  27. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/config.py +0 -0
  28. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/core.data.2 +0 -0
  29. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/docker.py +0 -0
  30. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/merge.py +0 -0
  31. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/mixer.py +0 -0
  32. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/plugin.py +0 -0
  33. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/public_capsule.zip +0 -0
  34. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/resource.py +0 -0
  35. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cli/shell.py +0 -0
  36. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/cobuilder.py +0 -0
  37. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/README-ZH.md +0 -0
  38. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/README.md +0 -0
  39. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/build-for-exe.bat +0 -0
  40. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/build-for-freeze.bat +0 -0
  41. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/build-with-project.bat +0 -0
  42. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/build-with-project.sh +0 -0
  43. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/cx_Freeze/hello.py +0 -0
  44. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/cx_Freeze/queens.py +0 -0
  45. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/cx_Freeze/setup.py +0 -0
  46. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/helloworld/foo.py +0 -0
  47. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/obfuscate-app.bat +0 -0
  48. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/obfuscate-app.sh +0 -0
  49. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/obfuscate-pkg.bat +0 -0
  50. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/obfuscate-pkg.sh +0 -0
  51. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pack-obfuscated-scripts.bat +0 -0
  52. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pack-obfuscated-scripts.sh +0 -0
  53. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/py2exe/hello.py +0 -0
  54. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/py2exe/queens.py +0 -0
  55. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/py2exe/setup.py +0 -0
  56. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Arithmetic.py +0 -0
  57. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Calls.py +0 -0
  58. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/CommandLine.py +0 -0
  59. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Constructs.py +0 -0
  60. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Dict.py +0 -0
  61. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Exceptions.py +0 -0
  62. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Imports.py +0 -0
  63. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Instances.py +0 -0
  64. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Lists.py +0 -0
  65. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Lookups.py +0 -0
  66. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/NewInstances.py +0 -0
  67. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Numbers.py +0 -0
  68. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Setup.py +0 -0
  69. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Strings.py +0 -0
  70. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/Tuples.py +0 -0
  71. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/With.py +0 -0
  72. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/clockres.py +0 -0
  73. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/package/__init__.py +0 -0
  74. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/package/submodule.py +0 -0
  75. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/pybench.py +0 -0
  76. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/pybench/systimes.py +0 -0
  77. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/simple/queens.py +0 -0
  78. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/testmod/hello.py +0 -0
  79. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/testmod/queens.py +0 -0
  80. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/testpkg/main.py +0 -0
  81. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/testpkg/mypkg/__init__.py +0 -0
  82. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/examples/testpkg/mypkg/foo.py +0 -0
  83. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/__init__.py +0 -0
  84. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/build_data_module.py +0 -0
  85. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/buildext.py +0 -0
  86. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/get_bind_key.py +0 -0
  87. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/get_license_info.py +0 -0
  88. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/get_platform_name.py +0 -0
  89. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/merge.py +0 -0
  90. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/repack.py +0 -0
  91. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/helper/superuntime.py +0 -0
  92. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/license.tri +0 -0
  93. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/packer.py +0 -0
  94. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/platforms/darwin/x86_64/_pytransform.dylib +0 -0
  95. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/platforms/linux/x86/_pytransform.so +0 -0
  96. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/platforms/linux/x86_64/_pytransform.so +0 -0
  97. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/platforms/windows/x86/_pytransform.dll +0 -0
  98. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/platforms/windows/x86_64/_pytransform.dll +0 -0
  99. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/plugins/README.md +0 -0
  100. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/plugins/check_ntp_time.py +0 -0
  101. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/polyfills/__init__.py +0 -0
  102. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/polyfills/argparse.py +0 -0
  103. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/product.key +0 -0
  104. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/project.py +0 -0
  105. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/protect_code.pt +0 -0
  106. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/protect_code2.pt +0 -0
  107. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/public.key +0 -0
  108. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/public_capsule.zip +0 -0
  109. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyarmor-deprecated.py +0 -0
  110. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyarmor-webui.py +0 -0
  111. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyarmor.py +0 -0
  112. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyimcore.py +0 -0
  113. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyshield.key +0 -0
  114. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pyshield.lic +0 -0
  115. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/pytransform.py +0 -0
  116. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/reform.py +0 -0
  117. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/register.py +0 -0
  118. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/sppmode.py +0 -0
  119. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor/utils.py +0 -0
  120. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor.egg-info/SOURCES.txt +0 -0
  121. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor.egg-info/dependency_links.txt +0 -0
  122. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor.egg-info/entry_points.txt +0 -0
  123. {pyarmor-8.5.9 → pyarmor-8.5.10}/pyarmor.egg-info/top_level.txt +0 -0
  124. {pyarmor-8.5.9 → pyarmor-8.5.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyarmor
3
- Version: 8.5.9
3
+ Version: 8.5.10
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.5.9'
3
+ __VERSION__ = '8.5.10'
4
4
 
5
5
  logger = logging.getLogger('cli')
6
6
 
@@ -36,7 +36,7 @@ $tracelog
36
36
  $tb
37
37
  ''')
38
38
 
39
- ENABLE_DEBUG_HINTS = '''something is wrong
39
+ UNUSED_ENABLE_DEBUG_HINTS = '''something is wrong
40
40
  *=============================================================*
41
41
  * Please enable debug option `-d` to run it again *
42
42
  * pyarmor -d gen options ... *
@@ -45,11 +45,10 @@ ENABLE_DEBUG_HINTS = '''something is wrong
45
45
  * *
46
46
  * Please also check *
47
47
  * https://pyarmor.readthedocs.io/en/latest/questions.html *
48
- * or run `pyarmor man` to find solutions quickly *
49
48
  *=============================================================*
50
49
  '''
51
50
 
52
- SOLUTION_HINTS = Template('''something is wrong
51
+ UNUSED_SOLUTION_HINTS = Template('''something is wrong
53
52
  *=============================================================*
54
53
  * Please check *
55
54
  * https://pyarmor.readthedocs.io/en/latest/questions.html *
@@ -61,6 +60,17 @@ SOLUTION_HINTS = Template('''something is wrong
61
60
  *=============================================================*
62
61
  ''')
63
62
 
63
+ ENABLE_DEBUG_HINTS = 'please enable debug option `-d` to run it again'
64
+
65
+ SOLUTION_HINTS = Template('''something is wrong
66
+ *=============================================================*
67
+ * Please check console log to find out what's wrong *
68
+ * *
69
+ * If still not solved, please find solutions by *
70
+ * https://pyarmor.readthedocs.io/en/latest/questions.html *
71
+ *=============================================================*
72
+ ''')
73
+
64
74
 
65
75
  def generate_bug_report(e, logfile=LOG_FILE, output=BUG_FILE):
66
76
  'Generate file `pyarmor.report.bug` in current path'
@@ -111,6 +121,7 @@ def find_solutions(e):
111
121
  logger.error(ENABLE_DEBUG_HINTS)
112
122
  return
113
123
 
124
+ logger.info('generate bug file "%s"', BUG_FILE)
114
125
  generate_bug_report(e)
115
126
  logger.error(SOLUTION_HINTS.substitute(bugfile=BUG_FILE))
116
127
 
@@ -64,7 +64,11 @@ def __pyarmor__():
64
64
  ('armv6', ('armv6l',)),
65
65
  ('armv7', ('armv7l',)),
66
66
  ('aarch32', ('aarch32',)),
67
- ('aarch64', ('aarch64', 'arm64'))
67
+ ('aarch64', ('aarch64', 'arm64')),
68
+ ('ppc64le', ('ppc64le',)),
69
+ ('mips32el', ('mipsel', 'mips32el')),
70
+ ('mips64el', ('mips64el',)),
71
+ ('riscv64', ('riscv64',)),
68
72
  )
69
73
  for alias, archlist in arch_table:
70
74
  if mach in archlist:
@@ -92,12 +96,21 @@ __pyarmor__ = ExtensionFileLoader(
92
96
  '''
93
97
 
94
98
 
95
- def format_platform(plat, arch):
99
+ def format_platform(plat=None, arch=None):
96
100
  from struct import calcsize
97
101
  from fnmatch import fnmatchcase
98
102
 
103
+ # Fix pyarmor.cli.core 6.5.2 issue, may be removed in 6.5.3
104
+ if plat is None and arch is None:
105
+ if os.getenv('PYARMOR_PLATFORM'):
106
+ plat, arch = os.getenv('PYARMOR_PLATFORM').split('.')
107
+ else:
108
+ from platform import system, machine
109
+ plat, arch = system().lower(), machine().lower()
110
+
99
111
  plat_table = (
100
- ('windows', ('windows', 'cygwin*')),
112
+ ('windows', ('windows',)),
113
+ ('cygwin', ('cygwin*',)),
101
114
  ('darwin', ('darwin',)),
102
115
  ('linux', ('linux*',)),
103
116
  ('freebsd', ('freebsd*', 'openbsd*', 'isilon onefs')),
@@ -201,9 +214,10 @@ class Context(object):
201
214
  return self._read_config(flist, encoding=encoding)
202
215
 
203
216
  def read_token(self):
204
- if os.path.exists(self.license_token):
205
- with open(self.license_token, 'rb') as f:
206
- return f.read()
217
+ for filename in (self.license_token, self.license_group_token):
218
+ if os.path.exists(filename):
219
+ with open(filename, 'rb') as f:
220
+ return f.read()
207
221
 
208
222
  def save_token(self, data):
209
223
  with open(self.license_token, 'wb') as f:
@@ -211,6 +225,12 @@ class Context(object):
211
225
  raise RuntimeError('got invalid token %r' % data)
212
226
  f.write(data)
213
227
 
228
+ def save_group_token(self, data):
229
+ with open(self.license_group_token, 'wb') as f:
230
+ if not data.endswith(b'=='):
231
+ raise RuntimeError('got invalid token %r' % data)
232
+ f.write(data)
233
+
214
234
  def clear_token(self):
215
235
  if os.path.exists(self.license_token):
216
236
  with open(self.license_token, 'wb') as f:
@@ -334,6 +354,10 @@ class Context(object):
334
354
  def license_token(self):
335
355
  return os.path.join(self.reg_path, '.license.token')
336
356
 
357
+ @property
358
+ def license_group_token(self):
359
+ return os.path.join(self.reg_path, '.license.group.token')
360
+
337
361
  @property
338
362
  def license_info(self):
339
363
  from .register import parse_token
Binary file
Binary file
@@ -3,10 +3,10 @@
3
3
  ;; Pyarmor version
4
4
  major = 8
5
5
  minor = 5
6
- patch = 9
6
+ patch = 10
7
7
 
8
8
  ;; Compatible core version
9
- cli.core = 6.5.2
9
+ cli.core = 6.5.3
10
10
 
11
11
  ;; Deprecated since Pyarmor 8.2.5
12
12
  ; cli.runtime = 3.2.5
@@ -193,6 +193,9 @@ clear_frame_locals = 0
193
193
  ;; Whether encrypt name in statement import
194
194
  rft_mix_import_name = 0
195
195
 
196
+ ;; Strip leading name package
197
+ strip_package_name = 1
198
+
196
199
  ;;
197
200
  ;; Compatiable options
198
201
  ;;
@@ -141,10 +141,7 @@ class Builder(object):
141
141
  continue
142
142
 
143
143
  logger.info('obfuscating %s', r)
144
- code = self._generate_obfuscated_script(r)
145
- if code is None:
146
- self._copy_script(path, r)
147
- continue
144
+ code = Pytransform3.generate_obfuscated_script(self.ctx, r)
148
145
  source = r.generate_output(
149
146
  template, code, relative=relative, pkgname=pkgname,
150
147
  bootpath=bootpath, rev=rev
@@ -36,6 +36,22 @@ def get_hd_info(hdtype, name=None):
36
36
  return str(e)
37
37
 
38
38
 
39
+ def get_all_ifmac():
40
+ try:
41
+ buf = Pytransform3.get_hd_info(HT_IFMAC, name='*')
42
+ i = 0
43
+ n = len(buf)
44
+ rlist = []
45
+ while i < n and buf[i]:
46
+ j = i + 1 + buf[i]
47
+ rlist.append(':'.join(['%02x' % x for x in buf[i+1:j]]))
48
+ i = j
49
+ except Exception as e:
50
+ return str(e)
51
+
52
+ return '<%s>' % ','.join(set(rlist))
53
+
54
+
39
55
  def main(argv):
40
56
  parser = argparse.ArgumentParser()
41
57
  parser.add_argument('devname', nargs='*', help=(
@@ -49,7 +65,7 @@ def main(argv):
49
65
  print('Default Harddisk Serial Number: %s' % get_hd_info(HT_HARDDISK))
50
66
  print('Default Mac address: %s' % get_hd_info(HT_IFMAC))
51
67
  print('Default IPv4 address: %s' % get_hd_info(HT_IPV4))
52
- print('Multiple Mac addresses: %s' % get_hd_info(HT_IFMAC, name='*'))
68
+ print('Multiple Mac addresses: %s' % get_all_ifmac())
53
69
  print('Domain: %s' % get_hd_info(HT_DOMAIN))
54
70
 
55
71
  for name in args.devname:
@@ -199,7 +199,7 @@ class Register(object):
199
199
  raise CliError('this group device license is not for '
200
200
  'this docker host')
201
201
  logger.debug('extracting %s', name)
202
- self.ctx.save_token(f.read(name))
202
+ self.ctx.save_group_token(f.read(name))
203
203
  return
204
204
  if 'group.info' in namelist:
205
205
  logger.info('refer to http://pyarmor.readthedocs.io/en/stable/how-to/register.html'
@@ -217,6 +217,8 @@ class Register(object):
217
217
  rlist = []
218
218
  with socket(AF_INET, SOCK_STREAM) as s:
219
219
  s.connect((host, port))
220
+ logger.info('socket addr: %s', str(s.getsockname()))
221
+ logger.info('remote addr: %s', str(s.getpeername()))
220
222
  s.sendall(b'PADH' + b'x' * 60)
221
223
  while True:
222
224
  flag = s.recv(1)
@@ -554,7 +554,7 @@ def repack_pyzarchive(pyzpath, pyztoc, obfpath, rtname, cipher=None):
554
554
  fullpath = fullpath + 'c'
555
555
  if os.path.exists(fullpath):
556
556
  logger.info('replace item "%s"', name)
557
- with open(fullpath, 'r') as f:
557
+ with open(fullpath, 'r', encoding='utf-8') as f:
558
558
  co = compile(f.read(), '<frozen %s>' % name, 'exec')
559
559
  code_dict[name] = co
560
560
  else:
@@ -1,6 +1,6 @@
1
1
  from sys import platform
2
2
 
3
- version = '8.5.9'
3
+ version = '8.5.10'
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.5.9
3
+ Version: 8.5.10
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
@@ -0,0 +1 @@
1
+ pyarmor.cli.core~=6.5.3
@@ -113,7 +113,7 @@ setup(
113
113
  },
114
114
 
115
115
  install_requires=[
116
- 'pyarmor.cli.core~=6.5.2'
116
+ 'pyarmor.cli.core~=6.5.3'
117
117
  ],
118
118
 
119
119
  entry_points={
Binary file
Binary file
@@ -1 +0,0 @@
1
- pyarmor.cli.core~=6.5.2
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