Perché l'eseguibile di Dock non produce stringhe utili, a differenza di altre app di OS X?

1

Quando eseguo il comando strings sul file eseguibile nella maggior parte delle app OS X (• .app/Contents/MacOS/ •), viene visualizzato un elenco di nomi di routine, possibili preferenze nascoste, ecc. Quando eseguo il comando sul Dock eseguibile, ottengo spazzatura. Ciò che rende l'eseguibile Dock diverso dalla maggior parte degli altri programmi Mac?

    
posta Daniel 01.08.2012 - 17:44
fonte

2 risposte

3

Questo perché molti binari di OS X sono crittografati. Vengono decodificati in tempo reale da "Non rubare Mac OS X.kext" nel / Sistema / Libreria / Estensioni. Non so perché Apple lo fa. La stringa Ottieni informazioni del file:

The purpose of this Apple software is to protect Apple copyrighted materials from unauthorized copying and use. You may not copy, modify, reverse engineer, publicly display, publicly perform, sublicense, transfer or redistribute this file, in whole or in part. If you have obtained a copy of this Apple software and do not have a valid license from Apple to use it, please immediately destroy or delete it from your computer.

    
risposta data 01.08.2012 - 19:07
fonte
1

È molto comune comprimere e abbattere un programma che è una parte essenziale del sistema e viene eseguito continuamente.

Le stringhe sono lasciate a disposizione per semplificare il debug, ma occupano spazio aggiuntivo di cui il computer non ha bisogno durante l'esecuzione. È sempre un compromesso decidere se eliminare le informazioni di debug da un eseguibile, ma in questo caso (o nel kernel o altre funzioni di base) può servire a ottimizzare la velocità di esecuzione indipendentemente dal fatto che rende leggermente più difficile eseguire il debug di problemi o colpire alle interiora di un programma.

Probabilmente non sapremo il motivo per cui questo è stato fatto, ma è prassi comune campionare le app nel tempo e selezionare quelle che sfruttano al massimo il tempo della CPU in modo da ottimizzare solo il codice che lo richiede al contrario di ottimizzando tutto.

    
risposta data 01.08.2012 - 19:07
fonte

Leggi altre domande sui tag