58 lines
1.1 KiB
Python
58 lines
1.1 KiB
Python
import importlib
|
|
import importlib.machinery
|
|
import sys
|
|
import traceback
|
|
from pathlib import Path
|
|
|
|
_BINARY_DIR = Path(__file__).parent / 'binary'
|
|
_MODULES = [
|
|
'utils',
|
|
'i18n',
|
|
'login',
|
|
'globals',
|
|
'api',
|
|
'push',
|
|
'main',
|
|
]
|
|
|
|
|
|
def load_binary():
|
|
sys.path.append(str(_BINARY_DIR))
|
|
|
|
# 先载入并 patch utils
|
|
importlib.import_module('utils')
|
|
patch_module()
|
|
|
|
importlib.import_module('main')
|
|
return sys.modules['main']
|
|
|
|
|
|
def patch_module():
|
|
# 绕过 check_policy
|
|
def check_policy():
|
|
from loguru import logger
|
|
logger.info('Bypass check_policy')
|
|
|
|
sys.modules['utils'].check_policy = check_policy
|
|
|
|
# 屏蔽 sentry
|
|
import sentry_sdk
|
|
for key in dir(sentry_sdk):
|
|
if key.startswith('init') or key.startswith('capture'):
|
|
setattr(sentry_sdk, key, lambda *args, **kwargs: None)
|
|
sentry_sdk.capture_exception = lambda *args, **kwargs: traceback.print_exc()
|
|
|
|
|
|
|
|
def run_module(module):
|
|
module.main()
|
|
|
|
|
|
def main():
|
|
module = load_binary()
|
|
run_module(module)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|