| Server IP : 198.38.94.67 / Your IP : 216.73.217.142 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/hooks/ |
Upload File : |
import importlib.util
import os
from collections import namedtuple
ENTRYPOINT = "im_hook"
ModuleInfo = namedtuple("ModuleInfo", ("object", "mtime", "ctime"))
modules: dict[str, ModuleInfo] = {}
def import_hook(path):
file_stat = os.stat(path)
if (
path in modules
and modules[path].mtime == file_stat.st_mtime
and modules[path].ctime == file_stat.st_ctime
):
return modules[path].object
spec = importlib.util.spec_from_file_location(path, path)
hook_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(hook_module)
modules[path] = ModuleInfo(
object=hook_module, mtime=file_stat.st_mtime, ctime=file_stat.st_ctime
)
return hook_module
def remove_hook(path):
if path in modules:
modules.pop(path)
def execute_hook(path, dict_param):
hook_module = import_hook(path)
entrypoint = getattr(hook_module, ENTRYPOINT)
return entrypoint(dict_param)