nagromme said:
BTW, re the idea that apps should not be writable. How would that affects apps that are customized using their package contents? (Like UT 2004--adding maps is done inside the package--or can be, at least.) Do you mean the literal executable itself would not be writable? Or the entire surrounding package?
Many apps (including Adobe products) write data into the application contents when it is first run. Commonly this is used to save serial numbers and the name of the owner and business. If the application contents is not writable then this becomes a problem.
If only the literal executable is not writable but the application folder structure is writable then you have not solved the original problem. For example, take
TextEdit.app. Within
TextEdit.app is a
Contents folder. Inside the contents folder is a
MacOS folder. Inside the
MacOS folder is the executable
TextEdit.
Now, assume that
TextEdit is not writable by anyone, but the
MacOS folder is writable as you suggested. Since the folder is writable, it is possible to create a new folder in
MacOS called
trojanHackmaster. Since the
MacOS folder is writable it is also possible to move the
TextEdit executable into the
trojanHackmaster folder even though the
TextEdit executable is not writable by anyone. Moving the file between folders is determined by the folder permissions, not the permissions of the file being moved.
Now that the
TextEdit executable has been moved, a new executable named
TextEdit can be saved into the
MacOS folder. This executable can do whatever it likes to the system (within the current user or application permissions). If the new executable then executes the
trojanHackmaster/TextEdit executable when it has finished its nasty work then the end user will not be aware of any difference in the application.