Skip to content

Commit 34409dd

Browse files
committed
Refine cross protection code
1 parent 6d2f02f commit 34409dd

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

src/protect_code.pt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ def protect_pytransform():
4141
else:
4242
filename = pytransform.os.path.join({rpath}, {spath}, libname)
4343

44-
size = pytransform.os.path.getsize(filename) & 0xFFFFFFF0
45-
n = size >> 2
4644
with open(filename, 'rb') as f:
47-
buf = f.read(size)
48-
fmt = 'I' * n
49-
checksum = sum(pytransform.struct.unpack(fmt, buf)) & 0xFFFFFFFF
50-
if checksum not in {checksum}:
45+
buf = bytearray(f.read())
46+
value = sum(buf)
47+
if getattr(pytransform.sys, 'frozen', False) and sys.platform == 'darwin':
48+
value += 1217
49+
50+
if value not in {checksum}:
5151
raise RuntimeError('unexpected %s' % filename)
5252

5353
assert_builtin(sum)

src/utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -528,8 +528,7 @@ def copy3(src, dst, onlycopy=False):
528528
data = _patch_extension(target, keylist, suffix)
529529
with open(target, 'wb') as f:
530530
f.write(data)
531-
532-
checklist.append(_get_checksum(target))
531+
checklist.append(sum(bytearray(data)))
533532

534533
if not platforms:
535534
libfile = pytransform._pytransform._name

0 commit comments

Comments
 (0)