¿Por qué el ejecutable Dock no produce cadenas útiles, a diferencia de otras aplicaciones de OS X?

1

Cuando ejecuto el comando strings en el archivo ejecutable en la mayoría de las aplicaciones de OS X (• .app/Contents/MacOS/ •), obtengo una lista de nombres de rutina, posibles preferencias ocultas, etc. Cuando ejecuto el comando en el Dock ejecutable, me sale la basura. ¿En qué se diferencia el ejecutable Dock de la mayoría de los otros programas de Mac?

    
pregunta Daniel 01.08.2012 - 17:44

2 respuestas

3

Esto se debe a que muchos binarios de OS X están cifrados. Se descifran en tiempo real con el mensaje "No robar Mac OS X.kext" en su / Sistema / Biblioteca / Extensiones. No sé por qué Apple lo hace. La cadena Obtener información del archivo:

  

El propósito de este software de Apple es proteger los materiales con derechos de autor de Apple de la copia y el uso no autorizados. No puede copiar, modificar, realizar ingeniería inversa, mostrar públicamente, realizar públicamente, otorgar licencias, transferir o redistribuir este archivo, en su totalidad o en parte. Si ha obtenido una copia de este software de Apple y no tiene una licencia válida de Apple para usarla, destrúyala inmediatamente o elimínela de su computadora.

    
respondido por el duci9y 01.08.2012 - 19:07
1

Es muy común comprimir y desarmar un programa que es una parte esencial del sistema y se ejecuta todo el tiempo.

Las cadenas se dejan para facilitar la depuración, pero ocupan espacio extra que la computadora no necesita cuando se ejecuta. Siempre es un intercambio decidir si se debe quitar la información de depuración de un ejecutable, pero en este caso (o en el núcleo u otras funciones principales) puede servir para optimizar la velocidad de ejecución, ya sea que sea o no un poco más difícil depurar los problemas o atacar en las entrañas de un programa.

Es probable que no sepamos la razón por la que se hizo esto, pero es una práctica común muestrear aplicaciones a lo largo del tiempo y seleccionar las que utilizan la mayor parte del tiempo de CPU para que solo optimice el código que lo requiera en lugar de optimizándolo todo.

    
respondido por el bmike 01.08.2012 - 19:07

Lea otras preguntas en las etiquetas