不知道这个pkg是哪来的,简单解包了一下,看了一下它的postinstall脚本,发现是一个pyinstaller打包的python脚本。
又解包了一下这个pyinstaller的包,得到一个w14.pyc文件
有必要保护得这么到位吗……
这个pyc文件还是python 3.10的,所以不能简单反编译复原出脚本,但是反python汇编还是做得到的,结果如下:
看上去桌面上的授权文件是pkg本身“删掉”的,并不是Waves Central,而且pkg删不掉桌面上的授权文件的话会报错导致安装失败。所以不需要锁定,直接运行pkg即可。另外其实你重新安装了插件也是要重新生成授权比较好的,如果实在放心不下,可以等pkg安装成功之后去/Library/Application Support/Waves/Licenses/里锁定那个拷贝过去的文件。
pkg做的事情也就只是把WavesLicenseEngine.bundle给替换掉,并且给它签上名用来过系统验证,然后搜索桌面上的wle文件,把这个文件给剪切(os.move)到Waves的授权文件夹。
鉴于这个脚本里的WavesLicenseEngine.bundle不知道是哪来的,有过期的风险,我们可以考虑以后用其它破解包中原装的bundle文件去替换,然后自己把wle授权放到/Library/Application Support/Waves/Licenses/里,这样的操作是等效的。
最后附上我对这个w14.py源代码的猜测:
import os
import time
import shutil
path1 = os.path.join(os.path.expanduser('~'), 'desktop')
path2 = os.path.dirname(os.path.realpath(__file__))
os.system('sudo chmod 777 /Library/Application\\ Support/Waves/Modules/WavesLicenseEngine.bundle/Contents/MacOS/WavesLicenseEngine')
os.system('sudo xattr -cr /Library/Application\\ Support/Waves/Modules/WavesLicenseEngine.bundle')
os.system('codesign --force --deep --sign - /Library/Application\\ Support/Waves/Modules/WavesLicenseEngine.bundle')
def getflist1(path, suffix):
for fname in os.listdir(path):
if fname.endswith(suffix):
res = os.path.join(path, fname)
return res
return None
path = os.path.join(os.path.expanduser('~'), 'desktop')
res = getflist1(path, '.wle')
print(res)
class NonFatalError(Exception):
pass
shutil.rmtree("/Library/Application Support/Waves/Licenses/")
os.mkdir("/Library/Application Support/Waves/Licenses/")
time.sleep(1)
shutil.move(res, "/Library/Application Support/Waves/Licenses/")
本帖最后由 qzhsjz 于 23-4-23 16:03 编辑
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x