3 votos

Un trabajo de launchd sin archivo plist, ¿cómo funciona y cómo encontrar qué trabajo lo desencadena?

Me está costando mucho averiguar cómo esos programas no deseados se autoiniciaron en el sistema. Estoy ejecutando MacOS Big Sur.

Por ejemplo, eche un vistazo al siguiente trabajo:

$ launchctl list | grep -i thunder
405 0   com.xunlei.Thunder.ThunderHelper

$ launchctl print gui/$(id -u)/com.xunlei.Thunder.ThunderHelper
com.xunlei.Thunder.ThunderHelper = {
    active count = 4
    copy count = 0
    one shot = 0
    path = (submitted by otherbsd.330)
    state = running

    program identifier = com.xunlei.Thunder.ThunderHelper
    parent bundle identifier = com.xunlei.Thunder
    parent bundle version = 4368
    inherited environment = {
        SSH_AUTH_SOCK => /private/tmp/com.apple.launchd.ZGX7Lm6JIp/Listeners
    }

    default environment = {
        PATH => /usr/bin:/bin:/usr/sbin:/sbin
    }

    environment = {
        XPC_SERVICE_NAME => com.xunlei.Thunder.ThunderHelper
    }

    domain = com.apple.xpc.launchd.user.domain.501.100006.Aqua
    asid = 100006
    minimum runtime = 10
    exit timeout = 5
    runs = 1
    successive crashes = 0
    pid = 405
    immediate reason = semaphore
    forks = 0
    execs = 1
    initialized = 1
    trampolined = 1
    started suspended = 0
    proxy started suspended = 0
    last exit code = (never exited)

    semaphores = {
        successful exit => 0
    }

    event triggers = {
    }

    endpoints = {
        "com.xunlei.Thunder.ThunderHelper" = {
            port = 0x9a333
            active = 0
            managed = 1
            reset = 0
            hide = 0
        }
    }

    dynamic endpoints = {
        "com.xunlei.Thunder.MessageHelper" = {
            port = 0xac607
            active = 1
            managed = 0
            reset = 0
            hide = 0
        }
    }

    pid-local endpoints = {
        "com.apple.tsm.portname" = {
            port = 0xbecaf
            active = 1
            managed = 0
            reset = 0
            hide = 0
        }
        "com.apple.axserver" = {
            port = 0xbe833
            active = 1
            managed = 0
            reset = 0
            hide = 0
        }
    }

    instance-specific endpoints = {
    }

    event channels = {
    }

    sockets = {
    }

    instances = {
    }

    spawn type = interactive (4)
    jetsam priority = 3
    jetsam memory limit (active) = (unlimited)
    jetsam memory limit (inactive) = (unlimited)
    jetsamproperties category = daemon
    submitted job. ignore execute allowed
    jetsam thread limit = 32
    cpumon = default
    job state = running

    properties = {
        partial import = 0
        xpc bundle = 0
        keepalive = 0
        runatload = 0
        low priority i/o = 0
        low priority background i/o = 0
        dataless file mode = 0
        legacy timer behavior = 0
        exception handler = 0
        supports transactions = 1
        supports pressured exit = 0
        supports idle hysteresis = 0
        enter kdp before kill = 0
        wait for debugger = 0
        app = 0
        system app = 0
        creates session = 0
        inetd-compatible = 0
        inetd listener = 0
        abandon process group = 0
        event monitor = 0
        penalty box = 0
        role account = 0
        launch only once = 0
        system support = 0
        inferred program = 0
        joins gui session = 0
        joins host session = 0
        parameterized sandbox = 0
        resolve program = 1
        abandon coalition = 0
        high bits aslr = 0
        reslide shared cache = 0
        disable resliding = 0
        extension = 0
        nano allocator = 0
        no initgroups = 0
        start on fs mount = 0
        needs implicit endpoint = 0
        is copy = 0
        disallow all lookups = 0
        system service = 0
        protected by submitter = 0
        multiple instances = 0
    }
}

Me pregunto cómo se inició este trabajo de forma automática. ¿Cómo funciona realmente?

¿Qué hace submitted by otherbsd.330 ¿el camino quiere decir aquí?

No encuentro un archivo plist en ninguna parte que sea responsable de este trabajo.

Muchas gracias.


Por cierto, no estoy seguro de que las siguientes palabras estén relacionadas con esta pregunta o no. Puede ignorar las siguientes palabras. Sólo quiero proporcionar más información que pueda ayudar en esta cuestión.

Hice otra pregunta con respecto a cómo eliminar los iterms de inicio de sesión ocultos de $HOME/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm . Hasta ahora, no hay respuesta todavía. Dentro de backgrounditems.btm tiene esto ThunderHelper proceso también. Ya que no encuentro una forma adecuada de eliminar el iterm de inicio de sesión. Está oculto y no se muestra en las preferencias del sistema. Borro el archivo completamente con el comando rm backgrounditems.btm pero mágicamente, después de apagar y reiniciar el sistema, este iterm de inicio de sesión se creará automáticamente de nuevo dentro de un nuevo backgrounditems.btm archivo.

Estoy pensando en cambiar el propietario y el permiso de grupo de este archivo. Hacer que Root sea el propietario y que el resto de usuarios sólo tengan permiso de lectura. No he probado este enfoque. Espero que funcione.

1voto

Ted Wrigley Puntos 101

Los trabajos de launchd pueden ser enviados directamente (a través de launchctl, y probablemente a través del código de cocoa) sin usar un archivo plist. Como veo esta línea:

parent bundle identifier = com.xunlei.Thunder

que sugiere que la aplicación con ese identificador de paquete (probablemente 'Xunlei Thunder', una cosa de red peer-to-peer) está configurando una aplicación de ayuda (ThunderHelper) para ejecutarse de forma independiente en el fondo.

0voto

moodforaday Puntos 2633

"KnockKnock" es una aplicación gratuita que le ayudará a localizar todo tipo de procesos de "auto-lanzamiento".

Busque los "Elementos de lanzamiento" para launchd procesos:

Launch Items

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X