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()