dashingsoft / pyarmor

A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
http://pyarmor.dashingsoft.com
Other
3.32k stars 282 forks source link

[BUG] (docker group license) invalid license token, try to run pyarmor reg to register license again, pyarmor==8.3.9 #1502

Closed hadywalied closed 1 year ago

hadywalied commented 1 year ago

referring to issue #1498

@jondy Bro, the problem persists even after upgrading and all

pyarmor.error.log

(ADT) [root@ip-172-31-26-205 LUT]# cat pyarmor.error.log 
3127 MainProcess 2023-09-26 13:56:29,749
Traceback (most recent call last):
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/__main__.py", line 702, in main
    main_entry(sys.argv[1:])
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/__main__.py", line 690, in main_entry
    return args.func(ctx, args)
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/__main__.py", line 226, in cmd_gen
    builder.process(options, packer=packer)
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/generate.py", line 156, in process
    self._obfuscate_scripts()
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/generate.py", line 119, in _obfuscate_scripts
    code = Pytransform3.generate_obfuscated_script(self.ctx, r)
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/core/__init__.py", line 103, in generate_obfuscated_script
    return m.generate_obfuscated_script(ctx, res)
  File "<maker>", line 665, in generate_obfuscated_script
  File "/root/anaconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/__init__.py", line 16, in process
    return meth(self, res, *args, **kwargs)
  File "<maker>", line 504, in process
  File "<maker>", line 510, in coserialize
  File "<maker>", line 555, in _build_ast_body
RuntimeError: invalid license token, try to run `pyarmor reg` to register license again
jondy commented 1 year ago

First check this https://pyarmor.readthedocs.io/en/latest/licenses.html#check-device-for-group-license

Also run pyarmor -d reg xxxx.zip to check machine id

hadywalied commented 1 year ago

@jondy I've checked it, I can obfuscate small projects on docker no problems The issue is with the 700+ file project, you understand me ?

jondy commented 1 year ago

Do you run pyarmor-auth in docker host?

hadywalied commented 1 year ago

Yes, check the logs in the first issue #1498

jondy commented 1 year ago

Do you check docker host by this way? https://pyarmor.readthedocs.io/en/latest/licenses.html#check-device-for-group-license

Is machine id of docker host same after reboot?

hadywalied commented 1 year ago

yes it's the same b'k2a942195a0b2c0ba5d287ed7c1ddd3ea'

jondy commented 1 year ago

Run pyarmor-auth with extra option --debug, it will print request data. It should same when building the big project:

pyarmor-auth --debug ...

...
INFO receive request from xxxx
DEBUG request data (%d): %s
...

If request data is changed, I think the problem maybe is that pyarmor-auth could not handle too many requests.

hadywalied commented 1 year ago

I did it with --debug flag

docker host

(ADT) ubuntu@ip-172-31-26-205:~$ pyarmor-auth --debug  pyarmor-device-regfile-6013.4.zip 
2023-10-01 12:33:23,539: work path: /home/ubuntu/.pyarmor/docker
2023-10-01 12:33:23,540: register "pyarmor-device-regfile-6013.4.zip"
2023-10-01 12:33:23,550: extracting license.lic
2023-10-01 12:33:23,551: extracting .pyarmor_capsule.zip
2023-10-01 12:33:23,551: group license for machines: ['tokens/kaf7296b34e86aa8d71b692b23582b207']
2023-10-01 12:33:23,552: got machine id: kaf7296b34e86aa8d71b692b23582b207
2023-10-01 12:33:23,552: extracting tokens/kaf7296b34e86aa8d71b692b23582b207
2023-10-01 12:33:23,620: machine id: [b'kaf7296b34e86aa8d71b692b23582b207', b'g66cca70ced0155eae9c2ab0890cfb4b7', b'bbee50abdcf30b156b57837543fda3e10', b'ae907ebb4314414f9420e8bd16cdd7772']
2023-10-01 12:33:23,620: listen container auth request on 0.0.0.0:29092
2023-10-01 12:33:53,414: receive request from ('172.31.28.57', 52818)
2023-10-01 12:33:53,414: request data (64): b'PADHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
2023-10-01 12:33:53,414: send auth result to ('172.31.28.57', 52818)
2023-10-01 12:33:53,414: response data (136): b'kaf7296b34e86aa8d71b692b23582b207\ng66cca70ced0155eae9c2ab0890cfb4b7\nbbee50abdcf30b156b57837543fda3e10\nae907ebb4314414f9420e8bd16cdd7772\x00'
2023-10-01 12:42:19,236: receive request from ('172.31.28.57', 55858)
2023-10-01 12:42:19,236: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00mqalnmgiphdpniofpmlc'
2023-10-01 12:42:19,245: send auth result to ('172.31.28.57', 55858)
2023-10-01 12:42:19,245: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00+i\x19e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x01\x00\x00\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00mqalnmgiphdpniofpmlc\x00\x00\x00\x00\x00\x00.\xb9v\x88\xd6L\xf4e\xa1\xf5o\xa1\x94?%&DG\xc1\x15D\xdcl\xcd\xcb\xf1\n`\xb9\x0bQ|Y.\xda\x96,T\x9c\x06\xb0!<\xc1\xffja\x04\x82\x01\xde.yb\xdf\xe0\x1bN\xa5\x0e\x843 g\x11\xe8lW\x9aY\xc8\x11\x12\xfe\x93\xe2\\\x87\\i\xcbE,\xc6\xe8S\x01t\x12=D\xb9Q~p\xbb \x7f\r\x14\x81\x0f\xc0\xe9\xffv\x1a\xe1\x86\xc0\xf8\x13\xab9F\xaeI\xb7o\xd8\xb8~+ >\xe3\xfa\xf7\xfc\xc3\x1d\x19\x96\x1f\xceCH\x95o)\x16|\x8cd\xc7\xc1e\xbbz\x0b\xb0\tF\xc2Qv\xa34\x0cyJ\xb3\xa9\xc2\x13N\xf2\xd5\xcfM]\x84\xd8^\xd6\x8a\xa1\xaf\xa2\xde\xda\xf0M\x07\x01q\xc9xJ\xe7)\xe7\x05\x9c;\x12\xa7Fz\xd8\xbcn)\x00\xfc\x1f\x94nud\x80\x92\xaaxYCB\\j\xdc\xfd\x00G\xcf\r\x04\x1d|\xccR\xce)\xd1*[*3\\\x8fF@\xd9t\'\x9b\x94i\x80U\xe3\xcb \xcb\xe5\x11\xe46c617374696320426c6f636b2053746f'

...

2023-10-01 12:42:47,410: receive request from ('172.31.28.57', 54596)
2023-10-01 12:42:47,410: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00eknfgfbekfmnekeelnpd'
2023-10-01 12:42:47,413: send auth result to ('172.31.28.57', 54596)
2023-10-01 12:42:47,414: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00Gi\x19e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x01\x00\x00\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00eknfgfbekfmnekeelnpd\x00\x00\x00\x00\x00\x00m\x81\x85hr\xce\xa4\xc2\xc1q2K>KI\xff\xbd5\x1f\x82\x1d\xf9l\xd7Q\x88&\xd2\xc9\x8e{\x08t\xa8!\x85/\xe0\xdb\x10\xe8\xb3\xbb\xaemh\xaa\x9e\xd6\xf5>V\xc1\x8eC~2\xea\x90p\xee4*9cn\x923Q\x1c\xd1\xe7G\xe7O\x07?~\xf5!\xbd\xd6\x86\xa0\xb5\xdb\xaau|\x04\xbd\x81\xb2!7$\xdd\xac]\xc3R+kL\x87\xd2\xb0\xab\x02\xb9\xa2S\x07\x01\xb5I\xd6.1\xcbiq\x0e\xcc\xda\x87\xa06\xf6\xfe\x136\xb2{\xe3J9K\x14r\x86\xeflT]\xe3\xe0\t`\x0c\r?\x9c\x89\xfcp\x11\xde\x15\xc9\x1c\xda\x145R#\x1f\x14\xaa\x9e\xb0\xb0\x8a\xa8\x01\x19,M\xf6\x0e\xd1Ry\xb5\xbau\xf7>\xedH\x1e\xc4eW\xcf\xdd\xad\x0e\xdb\x04\\a\x1a[\x8a\xb1N\xd1R\x01?Suk\x89Ly&Z%\x93V*\x85\x8b\x9c<\x9c6\t]pFGx\xc2\xf7\xad}\x13\xe4\x04\xb3N\xb1\x18Z\xf5\x1c\x80\x01\x01\xc3\xb6$D6c617374696320426c6f636b2053746f'
2023-10-01 12:42:47,442: receive request from ('172.31.28.57', 54604)
2023-10-01 12:42:47,442: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec'
2023-10-01 12:42:47,444: invalid license token, try to run `pyarmor reg` to register license again

docker machine

(ADT) [root@ip-172-31-26-205 LUT]# pyarmor gen --pack ./dist/ADTv1/ADT_launcher -r ADT.py @./Builder/file.list
INFO     Python 3.7.7
INFO     Pyarmor 8.3.9 (group), 006013, ADTv1
INFO     Platform linux.x86_64
INFO     implicitly set output to ".pyarmor/pack/dist"
INFO     extracting bundle "./dist/ADTv1/ADT_launcher"
INFO     search inputs ...
INFO     find script ADT.py
INFO     find script /home/data/ADT/LUT/Core/ElectronicsCore/Amplifiers/circuits/A010001F/A010001_Code.py

...

INFO     obfuscating file geometry.py
INFO     patch runtime file
INFO     write .pyarmor/pack/dist/Utility/geometry.py
INFO     obfuscating file parseBool.py
INFO     patch runtime file
INFO     write .pyarmor/pack/dist/Utility/parseBool.py
INFO     obfuscating file filePaths.py
ERROR    invalid license token, try to run `pyarmor reg` to register license again
jondy commented 1 year ago

How about apply this patch in docker host?

--- a/pyarmor/cli/docker.py
+++ b/pyarmor/cli/docker.py
@@ -53,6 +53,7 @@ class DockerAuthHandler(socketserver.BaseRequestHandler):
     def generate_runtime_key(self, userdata):
         ctx = CONFIG['ctx']
         ctx.cmd_options['user_data'] = userdata
+        logging.info('machine id is: %s', Pytransform3.get_hd_info(21))
         return Builder(ctx).generate_runtime_key()

It will print machine id before checking license, then run pyarmor-auth reg xxxx in docker host, and check whether machine id is changed when raising exception.

jondy commented 1 year ago

I have tested to obfuscate 1000 scripts in docker container, it still works.

hadywalied commented 1 year ago

I applied the patch you sent image

and still the result is the same, no output is present in the terminal image

image

jondy commented 1 year ago

Please download debug version pytransform3.so from http://pyarmor.dashingsoft.com/downloads/temp/docker/cp3.10/pytransform3.so Replase cp3.10 with actual Python version in docker host.

Then overwite /path/to/pyarmor/cli/core/pytransform3.so, and test it again.

It should print more error message in docker host console pyarmor-auth

hadywalied commented 1 year ago

docker host

❯ pyarmor-auth pyarmor-device-regfile-6013.2.zip
2023-10-02 15:06:32,886: work path: /home/hadywalied/.pyarmor/docker
2023-10-02 15:06:32,887: register "pyarmor-device-regfile-6013.2.zip"
2023-10-02 15:06:32,921: listen container auth request on 0.0.0.0:29092
2023-10-02 15:07:38,466: receive request from ('192.168.4.5', 48380)
2023-10-02 15:07:38,466: send auth result to ('192.168.4.5', 48380)
2023-10-02 15:07:42,343: receive request from ('192.168.4.5', 55950)
2023-10-02 15:07:42,344: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:42,349: send auth result to ('192.168.4.5', 55950)
2023-10-02 15:07:42,353: receive request from ('192.168.4.5', 55960)
2023-10-02 15:07:42,353: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:42,356: send auth result to ('192.168.4.5', 55960)
2023-10-02 15:07:42,358: receive request from ('192.168.4.5', 55964)
2023-10-02 15:07:42,359: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:42,362: send auth result to ('192.168.4.5', 55964)

...

2023-10-02 15:07:44,263: receive request from ('192.168.4.5', 56618)
2023-10-02 15:07:44,264: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:44,266: send auth result to ('192.168.4.5', 56618)
2023-10-02 15:07:44,307: receive request from ('192.168.4.5', 56634)
2023-10-02 15:07:44,307: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:44,310: send auth result to ('192.168.4.5', 56634)
2023-10-02 15:07:44,321: receive request from ('192.168.4.5', 56638)
2023-10-02 15:07:44,321: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:44,324: send auth result to ('192.168.4.5', 56638)
2023-10-02 15:07:44,379: receive request from ('192.168.4.5', 56650)
2023-10-02 15:07:44,379: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-02 15:07:44,382: send auth result to ('192.168.4.5', 56650)
2023-10-02 15:07:44,393: receive request from ('192.168.4.5', 56656)
2023-10-02 15:07:44,394: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
LOG:crypt3.c:247:this license is not for this machine
LOG:crypt3.c:247:this license is not for this machine
2023-10-02 15:07:44,395: invalid license token, try to run `pyarmor reg` to register license again
jondy commented 1 year ago

It's very strange, :(

I rebuild pytransform3.so with more print statement, please download it from same place and try it again.

Sorry for this, because I can't reproduce it in my side.

jondy commented 1 year ago

There is another way to test pyarmor-auth in docker host, first start pyarmor-auth, then run this client script test.py

import socket
import struct
import time

HOST = '127.0.0.1' 
PORT = 29092

i = 1
while True: 
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.connect((HOST, PORT))
        s.sendall(b'PADH' + bytes([0] * 32))
        data = s.recv(4)
        _, n = struct.unpack('!HH', data)
        data = s.recv(n)
    print('Received %d: %s' % (i, repr(data)))
    i += 1
    time.sleep(0.1)
jondy commented 1 year ago

And please report what's docker host? Physical device, cloud server or something else.

Does something happend in docker host after too many connections?

pyarmor-auth is a very simple server, it receives client request and send the result.

It's very strange that it could work for many requests but suddenly doesn't work.

hadywalied commented 1 year ago

I've made some debugging, I used the updated pytransform3.so you mentioned and did the test I did before and also did the test.py you sent, and also I did a modified version of test.py replacing the data in sendall( ) to be matched with a data sample of previous attempts e.g. 2023-10-01 12:42:47,410: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00eknfgfbekfmnekeelnpd'

I tested on two host machines and got the same results

machine 1 my personal laptop running Manjaro Linux

machine 2 an AWS EC2 with an ENI (fixed network interface) running Ubuntu 22.04

docker container using the same docker image (Based on Centos 7)

python version Python 3.7.7

and here are the results:

docker host

❯ pyarmor-auth --debug pyarmor-device-regfile-6013.2.zip
2023-10-03 14:42:13,829: work path: /home/hadywalied/.pyarmor/docker
2023-10-03 14:42:13,832: register "pyarmor-device-regfile-6013.2.zip"
2023-10-03 14:42:13,835: extracting license.lic
2023-10-03 14:42:13,835: extracting .pyarmor_capsule.zip
2023-10-03 14:42:13,835: group license for machines: ['tokens/k56bee40f20ffceada4530608f5e758fa']
2023-10-03 14:42:13,836: got machine id: k56bee40f20ffceada4530608f5e758fa
2023-10-03 14:42:13,837: extracting tokens/k56bee40f20ffceada4530608f5e758fa
2023-10-03 14:42:13,906: machine id: [b'k56bee40f20ffceada4530608f5e758fa', b'g9af768fb3eaf262abc7588203f4cbdb5', b'b9e4d227bd4ca5e35d7a37588027a9dc6', b'a1b873543a35c1aa00fabf59dcf7c73ff']
2023-10-03 14:42:13,906: listen container auth request on 0.0.0.0:29092
2023-10-03 14:42:56,742: receive request from ('192.168.4.5', 54396)
2023-10-03 14:42:56,742: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00olnqefkkagkfgpnemhgd'
2023-10-03 14:42:56,743: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:42:56,748: send auth result to ('192.168.4.5', 54396)
2023-10-03 14:42:56,748: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00@\xfe\x1be\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x01\x00\x00\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00olnqefkkagkfgpnemhgd\x00\x00\x00\x00\x00\x00R\x98\x14\x93B\xbd\x19\xa7a\xf0"\xe7\x8d\xce\x9e\x92[\x18^x\xa5l\x12\xa0\x9f\xf7\xbf\x14\xe6\xecb\xb8\xb3\x853F#\xdb\x16>@_(x\xb1\x80\x83\x90\xf3=\xd9\x1b7\xe9\'\xd5\xea\xd1\xa4Z\x8d\x0f\x0c\x1d\x03\xc5BG\xf0Tt\xa1j\xa0H\xdeq\x82\xc5\x9aO\x81\x13\xec\x1f\x9a>\x90\x82\x15\xf8\x0ff\x91\xfc8\xbd\xd8l<\x11c\xa6O\xd2\xa7\xd3*\xdc\x9dzP!I \x80\xffG{\xce\xb6\xc1\xef\xbd\x04E\xb0\xa4\xec\xca\xa4\x14\x13pF\t\xf6\xa5\xaf\xf6\xfc\xc1:p|\x88\x82\x0c_zj\x02\x18\xee}"\xd5\'\x89\xad]\x87\xc9\\\x05-\xc8\xbd\xeb\xb7\x1b\x9a\xfd\xa6\x03\xe2\xbfE\xb3\xd4\xc0\xa62\xce\xadTl7\xa8}\x00O\xe2\x10j\x83\xac\xe4KVE\xe8"\xef\xc7\x9f\xbf\xfbh\x06\x80\xed\x0e\xe6&\x0f(\xac|\x8d\xe5\x06\x8bUS\xf8\xf1\xa18\xb6\x96\xe5\xe7\x9c)Z\x08\x85\xe9\xf7\x89\xfcBq\x92\xd5\xba\xe5\xe1Fm\x96\xbfe\x7fmX\xf8U\x00\x00\xd8:\x1eX\xf8U\x00\x00\x00;\x1eX\xf8U\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2023-10-03 14:42:56,753: receive request from ('192.168.4.5', 54412)
2023-10-03 14:42:56,753: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00cqjnlleplbkjpmbmceeq'
2023-10-03 14:42:56,754: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:42:56,756: send auth result to ('192.168.4.5', 54412)
2023-10-03 14:42:56,756: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00@\xfe\x1be\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x0175\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00cqjnlleplbkjpmbmceeq\x00\x00\x00\x00\x00\x00n\x86\xb95\xffo\x9d\x12\xe81+b?$\x07\x0c\x8f\xc2\x14E\xa9x\xb3\x0c\x81P<\x1f\x1f\xad\xdd\x9c\x99\xfb\xf9+-w\xe3dl\xe3\x94\x1a\xbb\x08\x17\xd9l\xc3\xdf\x9a\xaa\x07,D:2\x1e\x0f(\xbb\xf7\xb4?"t\xa9D\xfa\xd1#\x8d\xb9\x0b0!\xde\x0c\xe2H\xcb=\xe0\xdb\x1f\xe3\xf4a\xc9\xfeEg\x96{\xdb\xac\\\xb6\xda\x18e\x02\x96\x84z\x906p\xcd0\xd8\xe3\xfdg\xdc\x95(\n\x8f\x08\xb9\xe9\xc0\x07o\x1c\xb4M\xde\xa0\xd9[\xa4\x92\x89\xd4\x99V\xc6{\xa3h\xec\xc9\xe4Z@j\xd1\xfd\xb7\x84\x94\xf8\xd9@0\xe1S\xd2\x14\x9f\xfd\xce\xd3\x11\x05\xd6r\x1c\x10\xd5#E\xb9:\x98\xfb\xf1\xb4\x88\x81\x14\xb7\xc7\\\xb5\xce\x9c\xd2\xc4\x85\xae$C\x0c\xc4b\xc2\x88[R\xeb\xd9\xd7xV\xae]\x9e\x8f\xf83r\xd9q\xa7#\xc5M#{\xf7\\\xc8\x19\x95\x06\x9e\x8e\x9dg\xc6\xf6\xc0\xac\xc5d\x19W\xfdj\xd0ov\x8ceQ\xa7\x1a\x11\x0b\xeezs981052a05-part1\x00\x00\x00\x00\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\r\x00\x00'

...

2023-10-03 14:42:58,836: receive request from ('192.168.4.5', 55162)
2023-10-03 14:42:58,836: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fbddmhppajhijdnmdgkk'
2023-10-03 14:42:58,836: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:42:58,839: send auth result to ('192.168.4.5', 55162)
2023-10-03 14:42:58,839: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00B\xfe\x1be\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x0175\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00fbddmhppajhijdnmdgkk\x00\x00\x00\x00\x00\x00o\x84\x90\xcf\x99\xf8\xb5SI\x83\xe3"\x04\xf4\x86\x91\x07\xd1%\xb8R\xc3H\x93cT\xa7\x1f\xc1r\x0fc\x08]\xd2\xbaN\x8c\xd1]~\x1d8\x13\xbf\xdd\x13W;7\xa7\xd33\x1a\xdd\xe2-.0t\xa2c\xb6A\xc4\xd8\xdcL\xb7CX\x16F\xbe\xe1\x00\x9dX\xd3\x17\x92M\xa9\xf7\xe4\x9b\x8f\x1f\xc7Z\x06m\xb9`\xcc\xa8Mm\xe0\x82g1\x19\xa3\x80EFc\xfaU[\x13\x0c\xe4\xe8%\'#\x11\x7f\x940\xb8\x1a\xaa\x9b\xec\x82\xde.\x99|\xdfp2.\xe5\xf3\xc5\xfe\\1~,\xd6\x91\xb2^\xe4/\x10,\\v,\x9e\xd4\x0b\xf2X\xb4bP\xf4\xd3)NU/\xeb6\x16\x1c\xd2{\xd8\x0c\xb0r\xec\xbcJ\xae\xb83\x0c\xc0_jv\t\x9d2\xad\xd0\xaa\xe5\xad\xc7\x8f\xf0\x12\x8d@V8`>\xe0;\x85\xe9U\x02\x13\x1c\x903\x10\x9d\xf0g\xfe\xd4\x08\xdf\x11p\xe4\xbcw\x99\xdb\x10\x89\x19\xbcS\xac\xd7\xd3\xee\xbch3\xb7|\xfd.|\xe7C\x1e\xd6\xc1\x97981052a05-part1\x00\x00\x00\x00\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\r\x00\x00'
2023-10-03 14:42:58,852: receive request from ('192.168.4.5', 55168)
2023-10-03 14:42:58,852: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00ffjjaeabelehhkeniijc'
2023-10-03 14:42:58,853: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
machine id 'k8fb2924e6f26ce411f317324405be71a', token machine is 'k56bee40f20ffceada4530608f5e758fa
                                Master MicroADTv1283.2Zi�q*?������^M���2�Q��ҝ1vW6@��Y�M�\P⑓�%Hd�M<�F�Z�n����X `�.nXh)��@�Ѩ%�2U8�
M`�߹JMbZ�w���A�6q-[�fةc�n8��'
crypt3.c:251:this license is not for this machine
01:node name       : hady
02:wlp0s20f3       : 181deau12aa
03:vmnet1          : 00PVc00001
04:vmnet2          : 00PVc00002
05:vmnet8          : 00PVc00008
06:docker0         : 02Baedech
07:disk info       : ata-CT500MX500SSD1_1943E2252594
08:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518
09:disk info       : nvme-eui.0025388981052a05
10:disk info       : wwn-0x500a0751e2252594
machine id 'k4aac58c6ecdfc6f2caa83d1a199de149', token machine is 'k56bee40f20ffceada4530608f5e758fa
                                Master MicroADTv1283.2Zi�q*?������^M���2�Q��ҝ1vW6@��Y�M�\P⑓�%Hd�M<�F�Z�n����X `�.nXh)��@�Ѩ%�2U8�
M`�߹JMbZ�w���A�6q-[�fةc�n8��'
crypt3.c:251:this license is not for this machine
2023-10-03 14:42:58,854: invalid license token, try to run `pyarmor reg` to register license again

docker machine

❯ docker exec -it ADT_v1 bash -l
(base) [root@hady /]# conda activate ADT
(ADT) [root@hady /]# cd /home/data/Projects/ADT-v1/LUT
(ADT) [root@hady LUT]# pyarmor gen --pack ./dist/ADTv1/ADT_launcher -r ADT.py @./Builder/file.list
INFO     Python 3.7.7
INFO     Pyarmor 8.3.5 (group), 006013, ADTv1
INFO     Platform linux.x86_64
INFO     implicitly set output to ".pyarmor/pack/dist"
INFO     extracting bundle "./dist/ADTv1/ADT_launcher"
INFO     search inputs ...
INFO     find script ADT.py
INFO     find script /home/data/Projects/ADT-v1/LUT/Core/ElectronicsCore/Amplifiers/circuits/A010001F/A010001_Code.py
INFO     find script /home/data/Projects/ADT-v1/LUT/Core/ElectronicsCore/Amplifiers/circuits/A010001F/A010001_LT.py
INFO     find script /home/data/Projects/ADT-v1/LUT/Core/ElectronicsCore/Amplifiers/circuits/A010001F/A010001_NG.py
INFO     find script /home/data/Projects/ADT-v1/LUT/Core/ElectronicsCore/Amplifiers/circuits/A010001F/A010001_SP.py

...

INFO     write .pyarmor/pack/dist/A010029_Code.py
INFO     process resource "A010029_SP"
INFO     obfuscating file A010029_SP.py
INFO     patch runtime file
INFO     write .pyarmor/pack/dist/A010029_SP.py
INFO     process resource "A010030_Code"
INFO     obfuscating file A010030_Code.py
INFO     patch runtime file
INFO     write .pyarmor/pack/dist/A010030_Code.py
INFO     process resource "A010030_SP"
INFO     obfuscating file A010030_SP.py
ERROR    invalid license token, try to run `pyarmor reg` to register license again

your version of test.py: it worked fine for 1000 iterations no problems.

my modified verison of test.py: just changed the s.sendall() with a sample of the code above.

HOST = '127.0.0.1' PORT = 29092

i = 1 while True: with socket.socket(socket.AF_INET, socket.SOCKSTREAM) as s: s.connect((HOST, PORT)) s.sendall(b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec') data = s.recv(4) , n = struct.unpack('!HH', data) data = s.recv(n) print('Received %d: %s' % (i, repr(data))) i += 1 time.sleep(0.1)


`pyarmor-auth`

``` shell 

❯ pyarmor-auth --debug pyarmor-device-regfile-6013.2.zip
2023-10-03 14:55:06,758: work path: /home/hadywalied/.pyarmor/docker
2023-10-03 14:55:06,759: register "pyarmor-device-regfile-6013.2.zip"
2023-10-03 14:55:06,760: extracting license.lic
2023-10-03 14:55:06,760: extracting .pyarmor_capsule.zip
2023-10-03 14:55:06,761: group license for machines: ['tokens/k56bee40f20ffceada4530608f5e758fa']
2023-10-03 14:55:06,761: got machine id: k56bee40f20ffceada4530608f5e758fa
2023-10-03 14:55:06,761: extracting tokens/k56bee40f20ffceada4530608f5e758fa
2023-10-03 14:55:06,794: machine id: [b'k56bee40f20ffceada4530608f5e758fa', b'g9af768fb3eaf262abc7588203f4cbdb5', b'b9e4d227bd4ca5e35d7a37588027a9dc6', b'a1b873543a35c1aa00fabf59dcf7c73ff']
2023-10-03 14:55:06,794: listen container auth request on 0.0.0.0:29092
2023-10-03 14:55:12,390: receive request from ('127.0.0.1', 46288)
2023-10-03 14:55:12,390: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec'
2023-10-03 14:55:12,390: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:55:12,395: send auth result to ('127.0.0.1', 46288)
2023-10-03 14:55:12,395: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00 \x01\x1ce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x01\x00\x00\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec\x00\x00\x00\x00\x00\x00\x1eU\xa3\xcc\xb3`\xc1i\x9f\x82\xa1 \x86=$\x04n\x11\xa9\x05\x0f\xf2\xc4{\x9e3VW\x8fy\x0f\xdbLF)\x8e\xdc\x9d6*\x07\x9d\xfaq\xba\xf4\x19\xf3OC\x18\xe6\r\x13\xc9\xe2`76\xc2\x8dn\xac\xbd\xd4\xbd\x84wpH\xb2\x14J\x08\x04\xb6\xd1$\x9f\xb0M\xd7\x03\xa9\xcb7\xd2\xdb\x8f\xbf\xe5H\xe2\x01i\xf4\xb3\xca`\xadl:\xd4h\xa2\xe8\xb0w\x19\x1e\xbf\x12k\x98\xd1\xac\xb7@\xe6\xb9\xec\xc9\xc3Vc\xb6]\xf6\xd97G0\x96\xca&\xd5\xf2-\xe2ek+$\x15\xc3\xabq\xea\xb6]\xc5\x16\xcbQ\x9d\xb2\x01o\xf6\xf4\x97\xbf\x17\xdd\xb7\xa0\x02;\xe6\xf2o\xa8\xcfF\x89\xd3\xd3\xd0KyK\xf23mx\x1cw\x9b\xbfK8\x19\tD\xa5K\x05<$~S\x00\x969\x04\xaf8\x8b\x93\x0fBxI\n|\x9a\x90x\x14\xc5\x04\xacg\x9d\xb1\xd2v3\x8e\xd1\x8e\x91\xff\xf8\xcf\x89u\xe5B\x85\xce\xf5\xb2\xf9]\xb2e\x16r7=\xf8\xb4!\xbb\xda37V\x00\x00\xd8*\xdf37V\x00\x00\x00+\xdf37V\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2023-10-03 14:55:12,496: receive request from ('127.0.0.1', 46290)
2023-10-03 14:55:12,496: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec'
2023-10-03 14:55:12,497: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:55:12,510: send auth result to ('127.0.0.1', 46290)
2023-10-03 14:55:12,510: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00 \x01\x1ce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x0175\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec\x00\x00\x00\x00\x00\x00\x96\x99\x8c\xcf\xa6\x02\x8b\xb1S\xa2\xc2\x16\xb9g\xad\xd2xHQ\x14\xd3\x88\xaf\xfe7\xf9\xa3x$o\x81tg\xf7\x1e\xe3\x98\x91~\xe7DJ-\x088\xef\x07,lY\xc1\x88w\xc61_\x809H\x88\xba\x9a\xec\x1e\x91d\xb0\xa0\xbdM\x9f\x81\xa3\x0cG\xb7uP\xe2\x11;\xc7LP\xa8^>?\x1dm\x16\xf1~x\x96\xad\x8d\x88#Z\xf4d\xfd\xc5\x1e\x98\x05\x94\x1a\x8c\xeb\xe7\xa3\xbeU\xcfd#\t\x08%\xa6 \xd0\xff\x06\xd8\xe8\x95}\x15RG\xa8\rmY7\xa2C\x81\xbe\xd6\x84\xd8Whz\x1a>\xa6\x00\x0b\x8b\xdfa>\x1eb\xb3T\x15\xb8e\xf4\x02&\xb3\xf4\x1f\xd7\xbdc\xd3\xe1c:T<\xe8q\x98\xca\x17\x7f$\xc5>\x05o\xab5~\x81\xfa\xa8\x88\xd1\xf6\xbb\xcc\x00\xba\xd0M\xd3\xf4\xf64Q\xef+\x1c\xad\xb9k\xac\x98\xc5\'\xf8\xbf^\x7f\xbc\x1a3\xbbBx\xb2Pv\xde\xd8JR\x91Ji\x82\xe2KK2t\xf7\x10]\x9a\x90o\x1a\xd3h\xea981052a05-part1\x00\x00\x00\x00\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\r\x00\x00'

...

2023-10-03 14:55:21,770: receive request from ('127.0.0.1', 59216)
2023-10-03 14:55:21,770: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec'
2023-10-03 14:55:21,770: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
2023-10-03 14:55:21,777: send auth result to ('127.0.0.1', 59216)
2023-10-03 14:55:21,777: response data (751): b'\x00\x00\x02\xeb\x8br-o\x01\x00\x00\x00\xeb\x02\x00\x00pyarmor-vax-006013\x00\x00)\x01\x1ce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\x10\x01\x00\x00\x00\x00\x00\x000\x82\x01\n\x02\x82\x01\x01\x00\xd1\xcd\x1a\xb0\x1aD\xa9#\x9b\xf1 z\xbe\x1b\xb8*\xc9\x7f\x9c\xbc\xf0\xcd\xb4O\xba{\xfda\x0c\xddC\x8c\x07\xaaH\x8f\xa3\xf5\xe6\xfe_?\xc1C`\\7|gMF\xbb\x0c\xd1\xb37K\x91c\xb7\xf6=\x05Q\x99t\xa8\xb9\xfa\xf9r\xd3\xc8\x18\x13\x075\x1e\x98\x8b\xb1\x9d`\xc1\x9cd\xc5\xe1\xed\xdb\xe7\x99\x088\x9d\xc7\xc2\x8dD\xa3\xdb\xc2Dr\x9e\xb9\xba\xf3\x965\xfa\xb6R\x8aYPT\x9c\x0c\xf7\t\xack\x9e\xd2\xc6\xbdZ\xe4M\xf3qN\x1c\x1a:"\xc4\xf6v\xe3\xd4\xf4$;+\xc3!n\x1bR3\xee)\xc9\xc2\x00I%\x99>\xe8\xdez\xe9\xa9n\xa8\x9b\xd43\xf2E\x83v\xe8\xacz\x81IUJ\'\x9cjI\x1a\xbf)\xb7\xf0Q\xb2$LI\x8c\x18\xc1\x0ed\x04/"b\x0f\x1a\xfb\xf3B2\xd7JG-Q\xd6#p\x96R\x18b\xd8\xa6\x95N\x06\xcd\x9f\xbfx\xcd\x16n\xde\x0c\xffn{P\x81MLfSe\x83\xa7L\rw\x1b\x0e\x97\xa1\x02\x03\x01\x00\x0175\x9b\x01\x00\x00[\x00\x00\x00@\x00\x00\x005\x00\x00\x00u\x00\x00\x00\x06\x00\x00\x00{\x00\x00\x00\x00\x01\x00\x00i.ADTv1\xa7\xd8\x7fW\xd6-\x0303c\x96\xf9\x8f\x88\x17\x9f\xb6U\x0b`k\xcb6\x017\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec\x00\x00\x00\x00\x00\x00O0\x14\xcbWfy\xfb;W\x17\x82&\xdb\xef\xef8\xa2{k\x96\xcd\x94\xe2\x0fh^\x81f\x8b\x11\xcf\xa9\x81q{\xbc\x10V\x1a\xeb\xccr\xec\xb18\xde\xf7\xe7\xeaIQ\x9d\xd9\x03I\x0f\xd8\x83)\x82~%\xa2\xc4\xc2\xa4\xd9\xfc\xad\xb9a\x9cW\x03\x980s4\xe9\xb3\xfe\x98\xd4H\xb5\xfbV\x04\x1d!\x8e\x19\xbfR\x1c\x13\x14v\xcd\x8e`\xe5`\x7f~\x94no*`\xba\x87\xa1\xb1\xfe\x91\xd8\xadB\x92z_\xed3\xc5\xf6\x18^\xc8\xc2I^f\xb4\xb4W>\xd9`\x87\x0b\xcf\x97\x0b*\xddc\xc8P\xc0\xf2U|&\xdci\x9e\x12mK\xd3\xde\xb2I\x90\xf3n\xb1;0/\x03\xfd\xe6\x8d8q\x83\xf8\x8f\xb8\xc1\xa0^\x1f8\xd15t\x81\xdfH\xca\xcf\\\x81\xba-\xb2\xf4\x1f6\xbe\x82\xaf\xff\x98b<T\x0b\xe2\xecL\x97\xcb\xbb\xa1x\xf9rX\x19\xa80\xba9Wp:{\x05UA5M\x90G2\xa5_B;U\xd5)\xca\xa7c\xa7Q\xd9\xfd?4981052a05-part1\x00\x00\x00\x00\x00\x00\x0e\x03\x00\x00\x00\x00\x00\x00\r\x00\x00'
2023-10-03 14:55:21,877: receive request from ('127.0.0.1', 59226)
2023-10-03 14:55:21,878: request data (32): b'PADK\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec'
2023-10-03 14:55:21,879: machine id is: b'ld11c988b28f5da2476a67589400ad7e1'
machine id 'k8fb2924e6f26ce411f317324405be71a', token machine is 'k56bee40f20ffceada4530608f5e758fa
M���2�Q��ҝ1vW6@��Y�M�\P⑓�%Hd�M<�F�Z�n����X `�.nXh)��@�Ѩ%�2U8�                                      Master MicroADTv1283.2Zi�q*?������^Jݑ
M`�߹JMbZ�w���A�6q-[�fةc�n8��'
crypt3.c:251:this license is not for this machine
01:node name       : hady
02:wlp0s20f3       : 181deau12aa
03:vmnet1          : 00PVc00001
04:vmnet2          : 00PVc00002
05:vmnet8          : 00PVc00008
06:docker0         : 02Baedech
07:disk info       : ata-CT500MX500SSD1_1943E2252594
08:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518
09:disk info       : nvme-eui.0025388981052a05
10:disk info       : wwn-0x500a0751e2252594
machine id 'k4aac58c6ecdfc6f2caa83d1a199de149', token machine is 'k56bee40f20ffceada4530608f5e758fa
M���2�Q��ҝ1vW6@��Y�M�\P⑓�%Hd�M<�F�Z�n����X `�.nXh)��@�Ѩ%�2U8�                                      Master MicroADTv1283.2Zi�q*?������^Jݑ
M`�߹JMbZ�w���A�6q-[�fةc�n8��'
crypt3.c:251:this license is not for this machine
2023-10-03 14:55:21,885: invalid license token, try to run `pyarmor reg` to register license again
hadywalied commented 1 year ago

so here is the fun part

I modified test.py again,

just changed PADK to PADH

test.py import socket import struct import time

HOST = '127.0.0.1' PORT = 29092

i = 1 while True: with socket.socket(socket.AF_INET, socket.SOCKSTREAM) as s: s.connect((HOST, PORT)) s.sendall(b'PADH\x00\x00\x00\x00\x00\x00\x00\x00fogdainofllnpjhioiec') data = s.recv(4) , n = struct.unpack('!HH', data) data = s.recv(n) print('Received %d: %s' % (i, repr(data))) i += 1 time.sleep(0.1)

this one worked for 1000 iterations fine

jondy commented 1 year ago

@hadywalied

It seems the problem still wrong machine id.

First download another debug version which could print hardware information. http://pyarmor.dashingsoft.com/downloads/temp/debug/cp3.10/pytransform3.so Then

python3.10
>>> from pyarmor.cli.core import pytransform3
>>> pytransform3.get_hd_info(20)
>>> pytransform3.get_hd_info(21)

Paste the output log.

And in your case, token machine is start with k, try to generate new device license with Pyarmor 8.3.8. The token machine should be started with l if it's generated by Pyarmor 8.3.8, it fix one group license issues for multiple network interfaces.

jondy commented 1 year ago

And I note there is net interface wlp0s20f3.

Does it exists before run pyarmor-auth? Check this by ifconfig

jondy commented 1 year ago

I think generating new machine id by Pyarmor 8.3.9+ should fix this problem since machine id which starts with l isn't changed.

The machine id starts with k is changed, but it is not generated by Pyarmor 8.3.8+

hadywalied commented 1 year ago

@jondy I updated Pyarmor to 8.3.10 and generated another device file license took number 4 for that matter.

then I downloaded the .so file you sent and tried pyarmor-auth got this error

❯ pyarmor-auth pyarmor-device-regfile-6013.4.zip
2023-10-04 15:35:49,365: work path: /home/hadywalied/.pyarmor/docker
2023-10-04 15:35:49,368: register "pyarmor-device-regfile-6013.4.zip"
01:node name       : had79
02:wlp0s20f3       : 181d�7512aa
03:disk info       : nvme-eui.0025388981052a05-part35
04:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
05:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
06:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
07:disk info       : wwn-0x500a0751e2252594-part32
08:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
09:disk info       : nvme-eui.0025388981052a05-part34
10:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
11:disk info       : nvme-eui.0025388981052a05-part38
12:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
13:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
14:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
15:disk info       : wwn-0x500a0751e2252594-part31
16:disk info       : nvme-eui.0025388981052a05-part37
17:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
18:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
19:disk info       : wwn-0x500a0751e22525934
20:disk info       : ata-CT500MX500SSD1_1943E22525934
21:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
22:disk info       : nvme-eui.0025388981052a05-part36
23:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
24:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
25:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
26:disk info       : nvme-eui.0025388981052a05-part33
27:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
28:disk info       : nvme-eui.0025388981052a05-part31
29:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
30:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
31:disk info       : nvme-eui.0025388981052a05-part32
32:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
33:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
34:disk info       : nvme-eui.0025388981052a035
35:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
36:node name       : had79
37:wlp0s20f3       : 181d�7512aa
38:disk info       : nvme-eui.0025388981052a05-part35
39:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
40:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
41:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
42:disk info       : wwn-0x500a0751e2252594-part32
43:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
44:disk info       : nvme-eui.0025388981052a05-part34
45:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
46:disk info       : nvme-eui.0025388981052a05-part38
47:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
48:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
49:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
50:disk info       : wwn-0x500a0751e2252594-part31
51:disk info       : nvme-eui.0025388981052a05-part37
52:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
53:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
54:disk info       : wwn-0x500a0751e22525934
55:disk info       : ata-CT500MX500SSD1_1943E22525934
56:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
57:disk info       : nvme-eui.0025388981052a05-part36
58:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
59:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
60:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
61:disk info       : nvme-eui.0025388981052a05-part33
62:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
63:disk info       : nvme-eui.0025388981052a05-part31
64:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
65:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
66:disk info       : nvme-eui.0025388981052a05-part32
67:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
68:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
69:disk info       : nvme-eui.0025388981052a035
70:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
71:node name       : had79
72:wlp0s20f3       : 181d�7512aa
73:disk info       : nvme-eui.0025388981052a05-part35
74:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
75:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
76:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
77:disk info       : wwn-0x500a0751e2252594-part32
78:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
79:disk info       : nvme-eui.0025388981052a05-part34
80:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
81:disk info       : nvme-eui.0025388981052a05-part38
82:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
83:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
84:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
85:disk info       : wwn-0x500a0751e2252594-part31
86:disk info       : nvme-eui.0025388981052a05-part37
87:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
88:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
89:disk info       : wwn-0x500a0751e22525934
90:disk info       : ata-CT500MX500SSD1_1943E22525934
91:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
92:disk info       : nvme-eui.0025388981052a05-part36
93:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
94:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
95:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
96:disk info       : nvme-eui.0025388981052a05-part33
97:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
98:disk info       : nvme-eui.0025388981052a05-part31
99:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
100:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
101:disk info       : nvme-eui.0025388981052a05-part32
102:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
103:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
104:disk info       : nvme-eui.0025388981052a035
105:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
106:node name       : had79
107:wlp0s20f3       : 181d�7512aa
108:disk info       : nvme-eui.0025388981052a05-part35
109:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
110:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
111:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
112:disk info       : wwn-0x500a0751e2252594-part32
113:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
114:disk info       : nvme-eui.0025388981052a05-part34
115:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
116:disk info       : nvme-eui.0025388981052a05-part38
117:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
118:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
119:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
120:disk info       : wwn-0x500a0751e2252594-part31
121:disk info       : nvme-eui.0025388981052a05-part37
122:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
123:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
124:disk info       : wwn-0x500a0751e22525934
125:disk info       : ata-CT500MX500SSD1_1943E22525934
126:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
127:disk info       : nvme-eui.0025388981052a05-part36
128:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
129:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
130:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
131:disk info       : nvme-eui.0025388981052a05-part33
132:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
133:disk info       : nvme-eui.0025388981052a05-part31
134:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
135:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
136:disk info       : nvme-eui.0025388981052a05-part32
137:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
138:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
139:disk info       : nvme-eui.0025388981052a035
140:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
141:node name       : had79
142:wlp0s20f3       : 181d�7512aa
143:vmnet1          : P56c00001
144:vmnet2          : P56c00002
145:vmnet8          : P56c00008
146:docker0         : 42b5�6a95
147:disk info       : 0998-55C35
148:disk info       : E4BE63B6BE637FC32
149:disk info       : A8F43838F4380AD38
150:disk info       : 6200c893-ca45-438b-bc86-9c659608fb631
151:disk info       : 99acff72-0c0d-4a02-a3d2-e142f594af133
152:disk info       : 62eeb192-6fd5-48cb-a351-a4e6428d51866
153:disk info       : 9E78B42878B3FD539
154:disk info       : CA99-CF838
2023-10-04 15:35:49,465: could not get docker host machine id
Traceback (most recent call last):
  File "/home/hadywalied/miniconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/register.py", line 198, in _get_docker_hostname
    s.connect((host, port))
socket.gaierror: [Errno -2] Name or service not known
Traceback (most recent call last):
  File "/home/hadywalied/miniconda3/envs/ADT/bin/pyarmor-auth", line 8, in <module>
    sys.exit(main())
  File "/home/hadywalied/miniconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/docker.py", line 107, in main
    main_entry()
  File "/home/hadywalied/miniconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/docker.py", line 90, in main_entry
    register_pyarmor(ctx, args.regfile[0])
  File "/home/hadywalied/miniconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/docker.py", line 62, in register_pyarmor
    reg.register_regfile(regfile)
  File "/home/hadywalied/miniconda3/envs/ADT/lib/python3.7/site-packages/pyarmor/cli/register.py", line 171, in register_regfile
    raise CliError('could not get docker host machine id')
pyarmor.cli.CliError: could not get docker host machine id
hadywalied commented 1 year ago

also I ran the code you sent

PyDev console: starting.
Python 3.7.7 (default, Mar 26 2020, 15:48:22) 
[GCC 7.3.0] on linux
from pyarmor.cli.core import pytransform3
print(pytransform3.get_hd_info(20))
print(pytransform3.get_hd_info(21))
01:node name       : had79
02:wlp0s20f3       : 181d�7512aa
03:disk info       : nvme-eui.0025388981052a05-part35
04:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
05:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
06:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
07:disk info       : wwn-0x500a0751e2252594-part32
08:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
09:disk info       : nvme-eui.0025388981052a05-part34
10:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
11:disk info       : nvme-eui.0025388981052a05-part38
12:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
13:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
14:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
15:disk info       : wwn-0x500a0751e2252594-part31
16:disk info       : nvme-eui.0025388981052a05-part37
17:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
18:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
19:disk info       : wwn-0x500a0751e22525934
20:disk info       : ata-CT500MX500SSD1_1943E22525934
21:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
22:disk info       : nvme-eui.0025388981052a05-part36
23:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
24:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
25:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
26:disk info       : nvme-eui.0025388981052a05-part33
27:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
28:disk info       : nvme-eui.0025388981052a05-part31
29:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
30:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
31:disk info       : nvme-eui.0025388981052a05-part32
32:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
33:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
34:disk info       : nvme-eui.0025388981052a035
35:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
36:node name       : had79
37:wlp0s20f3       : 181d�7512aa
38:disk info       : nvme-eui.0025388981052a05-part35
39:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part35
40:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part35
41:disk info       : ata-CT500MX500SSD1_1943E2252594-part32
42:disk info       : wwn-0x500a0751e2252594-part32
43:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part34
44:disk info       : nvme-eui.0025388981052a05-part34
45:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part34
46:disk info       : nvme-eui.0025388981052a05-part38
47:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part38
48:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part38
49:disk info       : ata-CT500MX500SSD1_1943E2252594-part31
50:disk info       : wwn-0x500a0751e2252594-part31
51:disk info       : nvme-eui.0025388981052a05-part37
52:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part37
53:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part37
54:disk info       : wwn-0x500a0751e22525934
55:disk info       : ata-CT500MX500SSD1_1943E22525934
56:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part36
57:disk info       : nvme-eui.0025388981052a05-part36
58:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part36
59:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part33
60:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part33
61:disk info       : nvme-eui.0025388981052a05-part33
62:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part32
63:disk info       : nvme-eui.0025388981052a05-part31
64:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part31
65:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518-part32
66:disk info       : nvme-eui.0025388981052a05-part32
67:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_1-part31
68:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K913518_31
69:disk info       : nvme-eui.0025388981052a035
70:disk info       : nvme-SAMSUNG_MZVLB512HAJQ-000L2_S3RGNE0K9135138
b'k45132dd90bb1c2b24d63c9c1c68d3537'
b'l45132dd90bb1c2b24d63c9c1c68d3537'
jondy commented 1 year ago

Please verify this issue with 8.3.10, don't use debug version.

Make sure machine id in the group license is startswith l, not startswith k

For example, in docker host

$ pyarmor-auth --debug pyarmor-device-regfile-6013.4.zip         
    ...
    2023-10-03 14:55:06,761: group license for machines:['tokens/k56bee40f20ffceada4530608f5e758fa'] 
    ...

This is wrong, because this group license is for machine k56bee...

It should start with l....

Actually I have documentated it should generate new group device license after upgrading Pyarmor to fix group license issue.

I'll refine documentation to make it more clear.

hadywalied commented 1 year ago

@jondy bro I made a new license and pyarmor-auth still doesn't start

Why did you close the issue, it hasn't been resolved yet

jondy commented 1 year ago

Hi bro, please report issue in details, at least with

  1. reproduced steps.
  2. necessary log (not all logs)
  3. excpeted results.
  4. actual results.

I have spent a lot of time to research this issue, and finally found you still use old group license file.

Generally if machine id could keep same, it should not be problem.

Please check the documentation to understand how group license works and check the output log to fix the problem.