About | ACP | Buy | Forum | Industry Watch | Learning Curve | Search | Twitter | Xnews
Home » Learning Curve

Guerilla CLIX

A digression with free downloads. Part one of two.


Buy It

Try It

The Apple OS X transition from 10.6 to 10.7 - and beyond to 10.8 - in some ways represents a sea change in how this 'best of breed' operating system works for the end user. Successive iterations of OS X took it from the clean and elegant original design to something more and more complex - and unwieldy, leading 'Pogueman' to formalise his principle: that software seems to continue to improve until it's improved so much it's finally become unusable.

Privacy concerns mount as the system engineers at Apple grow more and more profligate about storing sensitive information in more and more poorly documented locations. A mere 'scrub' of user areas is no longer sufficient protection - scrubbing an entire hard drive from a privileged process or a 'wipe and reinstall' with maximum shredding seem the only alternatives.

But neither of these operations can be performed on a daily basis, even though disaster can strike at any time.


This article is a meandering look at what's happened with OS X in the past year or so, and what you can do to better protect yourself. The article will blend security and privacy concerns with an overall need to 'tidy' a system up on a regular basis. The order of topics is somewhat random.

This article assumes use of 10.7 or better. A second part of this series will deal exclusively with 10.8.

CLIX downloads are also included.

1. Safari 6 & Cookies

Get it over with, short and not particularly sweet: Safari 6 strews cookies all over the place. The old location:

~/Library/Cookies

Has a new file:

Cookies.binarycookies

And as its strange name implies, it's a binary file.

$ hexdump Cookies.binarycookies
0000000 63 6f 6f 6b 00 00 00 00 00 00 00 00 07 17 20 05
0000010

The format's a new one, signified by its magic.

0000000000000000 cook

And of course it contains a lot of information. Cookies can now be stored in cache, in the dedicated cookie file, or in 'local storage'. So Cookies.binarycookies won't have it all, and removing that file won't clean your system of all cookies.

You're also bound to find cookies from a lot of sites you never heard of, this because Safari's promise to block cookies from sites you never visit has never really worked properly.



[For the insatiably curious: youtube-nocookie.com is registered to Google, and accessing it at root on port 80 yields a 404. Ed.]

Checking server [whois.markmonitor.com]
Results:

MarkMonitor is the Global Leader in Online Brand Protection.

Registrant:
        DNS Admin
        Google Inc.
        1600 Amphitheatre Parkway
        Mountain View CA 94043
        US
        dns-admin@google.com +1.6502530000 Fax: +1.6506188571

    Domain Name: youtube-nocookie.com

<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content='initial-scale=1, minimum-scale=1, width=device-width'>
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}
    html{background:#fff;color:#222;padding:15px}
    body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* >
    body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}
    p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}
    a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;
    max-width:none;padding-right:0}}
  </style>
  <a href=//www.google.com/><img src=//www.google.com/images/errors/logo_sm.gif alt=Google></a>
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>The requested URL <code>/</code> was not found on this server.  <ins>That’s all we know.</ins>

Obviously cookies are a major concern when using Safari 6.

Safari 6 also stores cookies in the /var/folders hive - in the part you can't get to without privilege escalation. This part can have some rather strange remnants such as the following unused path (237 bytes long):

/private/var/folders/zz/zyxvpxvq6csfxvn_n00000s0000068/C
/com.apple.SoftwareUpdate/content/downloads/56/07/041-6215/0ulfdubx0svowmm8oq36wo1yynibgcuxyw
/FlashbackMalwareRemover.pkg/content/downloads/56/07/041-6215/0ulfdubx0svowmm8oq36wo1yynibgcuxyw

The obvious way to get rid of Safari cookies is to let Safari 6 do it. But given Safari's track record in not quite doing things as advertised, it's better to know where the cookies are stored so you can take care of things yourself. The best way to do this - as your favourite sites will replace their cookies almost immediately - is to close all open sessions before asking the app to remove them.

The new 'Guerilla CLIX' package inspects and removes files in /var/folders whilst leaving the directory structure intact.

2. Document Revisions

Forget the fact for a moment how some of the features of the lions are so agonisingly slow that they got people scratching their heads, muttering 'WTF' under their breath. Ponder instead the uncanny architecture they're proposing. Such as with the document revision system aka versioning system - the stuff hidden away from you at /.DocumentRevisions-V100 (and other places).

Document revisions were introduced in 10.7 and are supposed to be a wave of the future. Not everyone is keen on waves like that. The 'back-assward' logic involved smells of a 'user experience engineer' with little time at a keyboard. But there's always something more, isn't there? For the system is one of the biggest privacy leaks on OS X.

Where are the system preferences for this system? How does a user turn the system off? Or better yet - revert? What happens to copies of files that no longer exist because the user has destroyed them - totally destroyed them? Is there now a file system hook that further slows the system down so that every file removal must first pass through the revision system for further tidying?

This is what the system looks like after it's been tidied.

total 0
d--x--x--x   7 root  wheel   238 Aug 26 03:06 .
drwxr-xr-x  33 root  wheel  1190 Aug 27 11:55 ..
drwx------   3 root  wheel   102 Sep  3 03:27 .cs
drw-------   2 root  wheel    68 Sep  3 02:46 ChunkTemp
d--x--x--x   3 root  wheel   102 Aug 26 03:06 PerUID
drwx------   2 root  wheel    68 Sep  3 03:27 db-V1
drwx--x--x   2 root  wheel    68 Sep  3 02:46 staging

.DocumentRevisions-V100/.cs:
total 0
drwx------  3 root  wheel  102 Sep  3 03:27 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..
drwx------  3 root  wheel  102 Aug 26 03:06 ChunkStorage

.DocumentRevisions-V100/.cs/ChunkStorage:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  3 root  wheel  102 Sep  3 03:27 ..
drwx------  3 root  wheel  102 Aug 26 03:06 0

.DocumentRevisions-V100/.cs/ChunkStorage/0:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  3 root  wheel  102 Aug 26 03:06 ..
drwx------  3 root  wheel  102 Aug 26 03:06 0

.DocumentRevisions-V100/.cs/ChunkStorage/0/0:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  3 root  wheel  102 Aug 26 03:06 ..
drwx------  2 root  wheel   68 Sep  3 03:26 0

.DocumentRevisions-V100/.cs/ChunkStorage/0/0/0:
total 0
drwx------  2 root  wheel   68 Sep  3 03:26 .
drwx------  3 root  wheel  102 Aug 26 03:06 ..

.DocumentRevisions-V100/ChunkTemp:
total 0
drw-------  2 root  wheel   68 Sep  3 02:46 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..

.DocumentRevisions-V100/PerUID:
total 0
d--x--x--x  3 root     wheel  102 Aug 26 03:06 .
d--x--x--x  7 root     wheel  238 Aug 26 03:06 ..
d--x------  8 osxuser  wheel  272 Sep  3 00:04 501

.DocumentRevisions-V100/PerUID/501:
total 0
d--x------  8 osxuser  wheel  272 Sep  3 00:04 .
d--x--x--x  3 root     wheel  102 Aug 26 03:06 ..
d--x--x--x  3 root     wheel  102 Aug 28 20:07 5
d--x--x--x  3 root     wheel  102 Aug 30 20:41 9
d--x--x--x  3 root     wheel  102 Aug 30 20:41 a
d--x--x--x  3 root     wheel  102 Sep  1 20:12 c
d--x--x--x  3 root     wheel  102 Sep  2 14:05 d
d--x--x--x  3 root     wheel  102 Sep  2 20:21 f

.DocumentRevisions-V100/PerUID/501/5:
total 0
d--x--x--x  3 root     wheel  102 Aug 28 20:07 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:20 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/5/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:20 .
d--x--x--x  3 root  wheel  102 Aug 28 20:07 ..

.DocumentRevisions-V100/PerUID/501/9:
total 0
d--x--x--x  3 root     wheel  102 Aug 30 20:41 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:20 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/9/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:20 .
d--x--x--x  3 root  wheel  102 Aug 30 20:41 ..

.DocumentRevisions-V100/PerUID/501/a:
total 0
d--x--x--x  3 root     wheel  102 Aug 30 20:41 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:20 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/a/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:20 .
d--x--x--x  3 root  wheel  102 Aug 30 20:41 ..

.DocumentRevisions-V100/PerUID/501/c:
total 0
d--x--x--x  3 root     wheel  102 Sep  1 20:12 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:21 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/c/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:21 .
d--x--x--x  3 root  wheel  102 Sep  1 20:12 ..

.DocumentRevisions-V100/PerUID/501/d:
total 0
d--x--x--x  3 root     wheel  102 Sep  2 14:05 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:21 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/d/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:21 .
d--x--x--x  3 root  wheel  102 Sep  2 14:05 ..

.DocumentRevisions-V100/PerUID/501/f:
total 0
d--x--x--x  3 root     wheel  102 Sep  2 20:21 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  2 root     wheel   68 Sep  3 03:21 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/f/com.apple.documentVersions:
total 0
d--x--x--x  2 root  wheel   68 Sep  3 03:21 .
d--x--x--x  3 root  wheel  102 Sep  2 20:21 ..

.DocumentRevisions-V100/db-V1:
total 0
drwx------  2 root  wheel   68 Sep  3 03:27 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..

.DocumentRevisions-V100/staging:
total 0
drwx--x--x  2 root  wheel   68 Sep  3 02:46 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..

This is what the system looks like after a few days of renewed use.

total 0
d--x--x--x   7 root  wheel   238 Aug 26 03:06 .
drwxr-xr-x  33 root  wheel  1190 Aug 27 11:55 ..
drwx------   5 root  wheel   170 Sep  3 02:46 .cs
drw-------   2 root  wheel    68 Sep  3 02:46 ChunkTemp
d--x--x--x   3 root  wheel   102 Aug 26 03:06 PerUID
drwx------   4 root  wheel   136 Aug 27 11:55 db-V1
drwx--x--x   2 root  wheel    68 Sep  3 02:46 staging

.DocumentRevisions-V100/.cs:
total 5624
drwx------  5 root  wheel      170 Sep  3 02:46 .
d--x--x--x  7 root  wheel      238 Aug 26 03:06 ..
drwx------  3 root  wheel      102 Aug 26 03:06 ChunkStorage
-rw-r--r--  1 root  wheel   159744 Sep  3 02:20 ChunkStoreDatabase
-rw-r--r--  1 root  wheel  2719232 Sep  3 02:46 ChunkStoreDatabase-wal

.DocumentRevisions-V100/.cs/ChunkStorage:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  5 root  wheel  170 Sep  3 02:46 ..
drwx------  3 root  wheel  102 Aug 26 03:06 0

.DocumentRevisions-V100/.cs/ChunkStorage/0:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  3 root  wheel  102 Aug 26 03:06 ..
drwx------  3 root  wheel  102 Aug 26 03:06 0

.DocumentRevisions-V100/.cs/ChunkStorage/0/0:
total 0
drwx------  3 root  wheel  102 Aug 26 03:06 .
drwx------  3 root  wheel  102 Aug 26 03:06 ..
drwx------  3 root  wheel  102 Aug 27 11:55 0

.DocumentRevisions-V100/.cs/ChunkStorage/0/0/0:
total 14344
drwx------  3 root  wheel      102 Aug 27 11:55 .
drwx------  3 root  wheel      102 Aug 26 03:06 ..
-rw-------  1 root  wheel  7342171 Sep  3 02:46 2

.DocumentRevisions-V100/ChunkTemp:
total 0
drw-------  2 root  wheel   68 Sep  3 02:46 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..

.DocumentRevisions-V100/PerUID:
total 0
d--x--x--x  3 root     wheel  102 Aug 26 03:06 .
d--x--x--x  7 root     wheel  238 Aug 26 03:06 ..
d--x------  8 osxuser  wheel  272 Sep  3 00:04 501

.DocumentRevisions-V100/PerUID/501:
total 0
d--x------  8 osxuser  wheel  272 Sep  3 00:04 .
d--x--x--x  3 root     wheel  102 Aug 26 03:06 ..
d--x--x--x  3 root     wheel  102 Aug 28 20:07 5
d--x--x--x  3 root     wheel  102 Aug 30 20:41 9
d--x--x--x  3 root     wheel  102 Aug 30 20:41 a
d--x--x--x  3 root     wheel  102 Sep  1 20:12 c
d--x--x--x  3 root     wheel  102 Sep  2 14:05 d
d--x--x--x  3 root     wheel  102 Sep  2 20:21 f

.DocumentRevisions-V100/PerUID/501/5:
total 0
d--x--x--x  3 root     wheel  102 Aug 28 20:07 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  7 root     wheel  238 Aug 28 20:09 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/5/com.apple.documentVersions:
total 0
d--x--x--x  7 root     wheel    238 Aug 28 20:09 .
d--x--x--x  3 root     wheel    102 Aug 28 20:07 ..
-r--r--r--@ 1 osxuser  staff  51909 Aug 28 20:09 0055CE8B-0164-4C10-89ED-A2CE27E2DAC1.png
-r--r--r--@ 1 osxuser  staff  53211 Aug 28 20:07 41AC09C9-B5E6-4B71-BA07-3F85B7C70EB3.png
-r--r--r--@ 1 osxuser  staff  48313 Aug 28 20:07 67D91EAD-D0BB-4F68-BDCC-84EF56F2B394.png
-r--r--r--@ 1 osxuser  staff  53046 Aug 28 20:08 7E1ED952-94C2-4968-9323-F83DF8C6357F.png
-r--r--r--@ 1 osxuser  staff  52790 Aug 28 20:08 D204F669-0C49-4E50-849F-94DA45E4B5D4.png

.DocumentRevisions-V100/PerUID/501/9:
total 0
d--x--x--x  3 root     wheel  102 Aug 30 20:41 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  4 root     wheel  136 Aug 30 20:41 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/9/com.apple.documentVersions:
total 0
d--x--x--x  4 root     wheel     136 Aug 30 20:41 .
d--x--x--x  3 root     wheel     102 Aug 30 20:41 ..
-r--r--r--@ 1 osxuser  staff  712159 Aug 30 20:41 73DCB245-272F-4FD5-80D2-C42228B8E264.jpg
-r--r--r--@ 1 osxuser  staff  846795 Aug 29 23:36 9E806027-277F-454B-A199-2E923FE832E2.jpg

.DocumentRevisions-V100/PerUID/501/a:
total 0
d--x--x--x  3 root     wheel  102 Aug 30 20:41 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  4 root     wheel  136 Aug 30 20:41 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/a/com.apple.documentVersions:
total 0
d--x--x--x  4 root     wheel     136 Aug 30 20:41 .
d--x--x--x  3 root     wheel     102 Aug 30 20:41 ..
-r--r--r--@ 1 osxuser  staff  147599 Aug 29 22:44 1BD178FD-A287-42DC-97DF-86A01166822F.jpg
-r--------@ 1 osxuser  staff   73521 Aug 30 20:41 C92F9135-FFA6-4C07-A3E5-4FA0197BF13C.jpg

.DocumentRevisions-V100/PerUID/501/c:
total 0
d--x--x--x  3 root     wheel  102 Sep  1 20:12 .
d--x------  8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  8 root     wheel  272 Sep  1 20:15 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/c/com.apple.documentVersions:
total 0
d--x--x--x  8 root     wheel     272 Sep  1 20:15 .
d--x--x--x  3 root     wheel     102 Sep  1 20:12 ..
-r--r--r--@ 1 osxuser  staff  314546 Sep  1 20:12 20B0F31E-495F-44DA-89CB-843776D86020.png
-r--r--r--@ 1 osxuser  staff  313340 Sep  1 20:14 2A3A826C-98A7-47B9-AAB0-FF0EF2D65240.png
-r--r--r--@ 1 osxuser  staff  313945 Sep  1 20:13 4B4658C1-8D16-48C5-B33A-2E7297C74733.png
-r--r--r--@ 1 osxuser  staff  370892 Sep  1 20:02 A0172EAC-71C6-425D-B16A-4BBB7BD95E8A.png
-r--r--r--@ 1 osxuser  staff  313424 Sep  1 20:13 D95503E1-B2D5-40AF-843D-C51FA4A7D8FF.png
-r--r--r--@ 1 osxuser  staff  312597 Sep  1 20:15 FDC1F7AE-4113-464A-8A4C-37603BB1A60B.png

.DocumentRevisions-V100/PerUID/501/d:
total 0
d--x--x--x    3 root     wheel   102 Sep  2 14:05 .
d--x------    8 osxuser  wheel   272 Sep  3 00:04 ..
d--x--x--x  106 root     wheel  3604 Sep  3 02:46 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/d/com.apple.documentVersions:
total 0
d--x--x--x  106 root     wheel  3604 Sep  3 02:46 .
d--x--x--x    3 root     wheel   102 Sep  2 14:05 ..
-r--------@   1 osxuser  staff  7329 Sep  3 01:52 017E7B99-7CA3-4691-89E7-550F9BB589B5.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:14 01BB75D7-65D6-402F-BD1A-A8E43566DC3E.m
-r--------@   1 osxuser  staff  7430 Sep  3 02:13 0218F9D5-2658-4A30-A263-5892A35EDBB7.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:07 0309F170-1FA4-439C-8A89-2E743CAAED8D.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 04AC4168-778B-4363-A294-B41C75793F55.m
-r--------@   1 osxuser  staff  8438 Sep  2 14:23 059A5A64-4E5C-45E3-81C3-CCBE120E45BD.m
-r--------@   1 osxuser  staff  7700 Sep  3 02:29 06451AC8-DA69-4245-A268-1010C581C1FB.m
-r--------@   1 osxuser  staff  8261 Sep  2 14:05 096522F1-1682-48C0-AEF7-E630A999B04C.m
-r--------@   1 osxuser  staff  8438 Sep  2 14:23 09829802-68F0-4284-94E1-DB35AD7482FD.m
-r--------@   1 osxuser  staff  7706 Sep  3 02:31 09E7FFCD-30C7-49B2-ACC5-4AFEE72AEFBE.m
-r--------@   1 osxuser  staff  8434 Sep  2 14:23 0E321AFF-7DFA-4725-8F1E-97B1A80E5B6E.m
-r--------@   1 osxuser  staff  7228 Sep  1 15:54 100F6527-26AD-4A05-9014-EDAE8BF82BE2.m
-r--------@   1 osxuser  staff  7228 Sep  1 15:54 10F41D72-38BD-4891-901E-F7F3E9577198.m
-r--------@   1 osxuser  staff  8165 Sep  2 14:06 13A410C6-5EEA-4319-B7B0-E0476025B246.m
-r--------@   1 osxuser  staff  7371 Sep  3 02:03 16821BB2-85D5-4E67-B6ED-5595B661825F.m
-r--------@   1 osxuser  staff  7327 Sep  3 01:46 19516BA6-AF8E-4E56-B4C6-7847ED5D66F1.m
-r--------@   1 osxuser  staff  7331 Sep  3 01:50 1C6F60EF-B194-466F-BAA2-144D36632A4E.m
-r--------@   1 osxuser  staff  7745 Sep  3 02:36 1CC9191E-3EA2-4970-828D-793E779040FB.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:29 206FDCD9-C6FD-40C9-AB10-E03C007F3F38.m
-r--------@   1 osxuser  staff  8504 Sep  2 17:45 22D13AB5-0B45-4B55-A3B0-33F50F304536.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 243E9869-CBAB-44B5-B767-F5AFEC3CD95F.m
-r--------@   1 osxuser  staff  8433 Sep  2 14:23 263D0E89-1D4B-4574-9E13-08B4010FC9C5.m
-r--------@   1 osxuser  staff  7353 Sep  3 02:00 28ADAC9D-7E48-4F99-A97A-E47A5CB463E9.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:09 29005B79-26C9-4DED-A392-018E135A1D70.m
-r--------@   1 osxuser  staff  7695 Sep  3 02:28 29C6E1E2-B109-471B-9894-9DD3AE974092.m
-r--------@   1 osxuser  staff  8347 Sep  2 14:22 2C15F0B0-7A80-4D90-8687-5B257E920CBA.m
-r--------@   1 osxuser  staff  7562 Sep  3 02:22 310F8A4F-3D46-463D-900B-CD0EA01FECC1.m
-r--------@   1 osxuser  staff  8583 Sep  2 17:53 331B23A0-6988-48C2-B01A-6057F26024C9.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:27 37EE6F0E-2A8E-45A5-9CA7-0AF064452A9A.m
-r--------@   1 osxuser  staff  7467 Sep  3 02:15 3AB2CC3D-7CF6-457D-BD7D-BA0F0103AEEF.m
-r--------@   1 osxuser  staff  7519 Sep  3 02:17 3D2E7FAB-79D3-4ADC-8138-0F4D0F72D78E.m
-r--------@   1 osxuser  staff  8271 Sep  2 14:17 3DB9827D-F439-4152-BAE1-695984C379A1.m
-r--------@   1 osxuser  staff  7423 Sep  3 02:04 44086594-64A5-4926-B663-336C5EA3911D.m
-r--------@   1 osxuser  staff  7325 Sep  3 01:57 44D90AF3-9646-453A-83D2-597EFD927D70.m
-r--------@   1 osxuser  staff  7474 Sep  3 02:15 49FE360A-28FB-420B-A0FE-63FF261622CF.m
-r--------@   1 osxuser  staff  8474 Sep  2 14:29 4D6809CE-1377-4DB0-91D1-B3C42B31D678.m
-r--------@   1 osxuser  staff  7304 Sep  2 20:15 4E2D270E-83B0-4944-9958-476B0ABCF959.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:05 4F8E582F-12BD-4D53-BA27-E2E9F5401F21.m
-r--------@   1 osxuser  staff  8432 Sep  2 14:23 50978D8E-4E1F-439E-A06B-5D64F658B186.m
-r--------@   1 osxuser  staff  7289 Sep  3 01:52 57DC8C39-7C50-4170-A033-7A95414A639B.m
-r--------@   1 osxuser  staff  7565 Sep  3 02:09 5AAFDAB5-CE0A-46C9-A284-A437A2E49125.m
-r--------@   1 osxuser  staff  7535 Sep  3 02:07 5C056CF6-EA41-4A62-A789-743C15188335.m
-r--------@   1 osxuser  staff  8460 Sep  2 14:28 5DBD4112-188B-4607-8235-1C374521E941.m
-r--------@   1 osxuser  staff  7966 Sep  3 02:41 627FEE96-6F7B-4684-904C-F5ADF19CBA69.m
-r--------@   1 osxuser  staff  8280 Sep  2 14:15 630640D4-C099-406E-B4A6-14619A0FD3DE.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:27 6552B468-F8A3-4217-98B4-2DAF01F94394.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:11 670DFA17-EAC7-4A80-84AA-D9B35735E6BE.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:28 67C9BCB7-3833-4F66-A8A2-66430610214E.m
-r--------@   1 osxuser  staff  7310 Sep  2 20:17 6A6F970A-6E3C-427A-84D4-1B2C7DC4E5CE.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:14 6A7F0CA9-2A2E-4BC5-B751-24FAF9A172FF.m
-r--------@   1 osxuser  staff  7699 Sep  3 02:29 6BC1800F-BE99-4866-B6B9-824ECE2D64D0.m
-r--------@   1 osxuser  staff  7333 Sep  3 01:50 6F9FE3B1-7993-4142-822A-CB779575DEF0.m
-r--------@   1 osxuser  staff  7310 Sep  2 20:17 73B66DBE-0075-46F8-95C7-6FAC736A9FD1.m
-r--------@   1 osxuser  staff  7964 Sep  3 02:46 7C711DA1-42CA-4CE6-99B3-1D129600E970.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:05 812D3ED3-DB7F-4719-BFFC-C1DE480BC61D.m
-r--------@   1 osxuser  staff  8357 Sep  1 02:00 82B67D9D-6969-42C7-902A-61DA7B9D5D31.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:25 84DCB954-C0F8-47C1-85D9-DD2FC43E946D.m
-r--------@   1 osxuser  staff  7484 Sep  3 02:05 851F874F-84F6-4964-AF2D-C2321587AB88.m
-r--------@   1 osxuser  staff  8265 Sep  2 14:13 8522A632-1896-437E-A622-3E97A4602E4B.m
-r--------@   1 osxuser  staff  8399 Sep  2 14:24 897318DE-941C-4D5C-9577-A1E7EC306988.m
-r--------@   1 osxuser  staff  8502 Sep  2 17:45 8995F5CE-F954-49E1-8A70-9217CA6BA739.m
-r--------@   1 osxuser  staff  8443 Sep  2 14:22 8BD5F630-ECAE-4E9E-8369-2B6B4483442F.m
-r--------@   1 osxuser  staff  7566 Sep  3 02:09 8F514D6B-3E0C-42A8-878C-236FAB63A224.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:30 92CB9849-CF76-4528-8953-6F77375449EB.m
-r--------@   1 osxuser  staff  7717 Sep  3 02:25 94AE6588-9795-4E9E-97EC-3F943686E257.m
-r--------@   1 osxuser  staff  7808 Sep  3 02:37 9624EC8C-B558-4AFF-91D1-5AEE0DFD2D76.m
-r--------@   1 osxuser  staff  7227 Sep  2 20:12 978E67E5-9ADA-47B4-9BCB-D08C6B29FDE0.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:32 9B4027D0-8C54-4E00-8C32-D824A7A2BC29.m
-r--------@   1 osxuser  staff  7308 Sep  3 01:44 A09643FD-37B6-4EC2-A803-728C42504A59.m
-r--------@   1 osxuser  staff  7486 Sep  3 02:15 A1B19A3E-FF72-414B-8D73-66948BF80074.m
-r--------@   1 osxuser  staff  7308 Sep  2 20:16 A48D69B9-282A-4E7A-AE44-F4BFE158D707.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:15 A7595BDF-F8C7-41A6-957E-92879754A8FA.m
-r--------@   1 osxuser  staff  7273 Sep  3 02:01 AE32D158-137B-4230-9BB4-AD47EADBF210.m
-r--------@   1 osxuser  staff  7310 Sep  3 01:45 B133BC95-E161-425E-9A13-CFAC76A067B0.m
-r--------@   1 osxuser  staff  7708 Sep  3 02:23 BBB8CC9E-2073-4C01-96E7-E3CE864529FA.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:05 BD8F7BCE-9E81-4E29-B8D9-B25D8D28BFDB.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:08 C2A6F18E-CFAA-4C85-9638-59C516D9FD67.m
-r--------@   1 osxuser  staff  7697 Sep  3 02:27 C3A7004F-7964-468E-BDF3-69162962631E.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:09 C5DFD7BC-449C-4AC5-B116-7DE3A6FD2E5F.m
-r--------@   1 osxuser  staff  7308 Sep  2 20:16 C5E136DF-2DDA-4FD7-9026-B76F1E90FF9F.m
-r--------@   1 osxuser  staff  7700 Sep  3 02:29 C9ECCCBB-C50A-4F38-B275-8E699C722976.m
-r--------@   1 osxuser  staff  7281 Sep  2 20:14 CDC06DE4-3788-48FD-9A8A-4C03DFF7D858.m
-r--------@   1 osxuser  staff  7705 Sep  3 02:30 CF382E58-FA09-400B-A4D5-61C2151F4D85.m
-r--------@   1 osxuser  staff  7281 Sep  2 20:14 CF9D7B36-362C-4542-A7D0-9F65A60E2779.m
-r--------@   1 osxuser  staff  7272 Sep  3 02:02 D09374C9-858A-433D-AC73-85E9B4696E8A.m
-r--------@   1 osxuser  staff  7745 Sep  3 02:35 D1C0B0AC-21C3-407D-B09E-4DAF6936A864.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:32 D2BD8CE2-627E-4537-97CE-0A5C1F74FDFA.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 D3A41180-2936-4512-9E16-F4F2995BAE22.m
-r--------@   1 osxuser  staff  7307 Sep  2 20:16 D5ED3ED7-AEC5-4D14-85F6-1D649CFE08C2.m
-r--------@   1 osxuser  staff  8456 Sep  2 17:54 D7FBE5A5-4143-4762-9E00-F3A953B7142D.m
-r--------@   1 osxuser  staff  7518 Sep  3 02:20 DFA0CC0D-BED5-4C74-8EA1-A5DD347EB611.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:28 E3104D98-CDD1-4FF6-B8DB-DBC3A953F1BB.m
-r--------@   1 osxuser  staff  8500 Sep  2 17:45 E5CABED2-B7A4-44E8-BF17-232B2910E720.m
-r--------@   1 osxuser  staff  8576 Sep  2 17:53 E9511890-3581-4065-A750-B62A635ABCD6.m
-r--------@   1 osxuser  staff  8345 Sep  2 14:19 EDFDC771-2478-4094-8F43-59611BADCE56.m
-r--------@   1 osxuser  staff  8454 Sep  2 17:44 F064E858-30E5-41F1-A3ED-B3BF1EA4BBAE.m
-r--------@   1 osxuser  staff  7561 Sep  3 02:22 F0E321ED-EFF3-4602-B983-B86740DE9E44.m
-r--------@   1 osxuser  staff  7718 Sep  3 02:23 F5F33D2F-467D-4008-AAB7-2DDE2B87C034.m
-r--------@   1 osxuser  staff  7485 Sep  3 02:05 F7862B99-12F5-4C13-9380-D09555ED65C4.m
-r--------@   1 osxuser  staff  7964 Sep  3 02:41 FA736635-C118-4E52-BFB5-4A95340D69F6.m
-r--------@   1 osxuser  staff  8569 Sep  2 17:53 FB02F3C4-3021-4B41-9D2C-819AF4B19D5B.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:29 FB4B398E-E161-43E2-867E-1283F9738F9A.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:13 FCD22F66-1E44-4207-B003-EE3F733444B7.m
-r--------@   1 osxuser  staff  7706 Sep  3 02:23 FEA04E2A-A9E0-478C-BD33-86FA9CA1EB10.m

.DocumentRevisions-V100/PerUID/501/f:
total 0
d--x--x--x   3 root     wheel  102 Sep  2 20:21 .
d--x------   8 osxuser  wheel  272 Sep  3 00:04 ..
d--x--x--x  12 root     wheel  408 Sep  3 01:49 com.apple.documentVersions

.DocumentRevisions-V100/PerUID/501/f/com.apple.documentVersions:
total 0
d--x--x--x  12 root     wheel   408 Sep  3 01:49 .
d--x--x--x   3 root     wheel   102 Sep  2 20:21 ..
-r--------@  1 osxuser  staff  8454 Sep  2 20:24 33C8F9B9-761D-4E4D-8F09-7C94FBDA063B.m
-r--------@  1 osxuser  staff  8453 Sep  2 20:22 3A3C2599-AA8E-49AF-B5B7-B79171274484.m
-r--------@  1 osxuser  staff  8454 Sep  2 20:22 592A3A56-C6A1-4369-B2A5-6F0E33C75D70.m
-r--------@  1 osxuser  staff  8456 Sep  3 01:49 5FD49725-01C2-461D-9F6A-56AC6A922F47.m
-r--------@  1 osxuser  staff  8460 Sep  3 01:49 7420DFA4-CAD0-42BD-84DC-7FD76A871427.m
-r--------@  1 osxuser  staff  8456 Sep  2 20:25 8760F6B8-E4D2-4A55-B01B-7317B2F4E12C.m
-r--------@  1 osxuser  staff  8458 Sep  2 20:21 A39610EE-AE10-449D-A746-1073EE6A3C9D.m
-r--------@  1 osxuser  staff  8456 Sep  2 20:25 DFF98137-733D-4ABA-AB56-7B9B455B0AE4.m
-r--------@  1 osxuser  staff  8456 Sep  2 17:54 FD659CC1-80AC-43A6-82F5-418CB922C552.m
-r--------@  1 osxuser  staff  8460 Sep  2 20:21 FE31A5C7-6D94-4DDE-A57A-8480DFA40D16.m

.DocumentRevisions-V100/db-V1:
total 6912
drwx------  4 root  wheel      136 Aug 27 11:55 .
d--x--x--x  7 root  wheel      238 Aug 26 03:06 ..
-rw-r--r--  1 root  wheel    94208 Sep  3 02:00 db.sqlite
-rw-r--r--  1 root  wheel  3444352 Sep  3 02:48 db.sqlite-wal

.DocumentRevisions-V100/staging:
total 0
drwx--x--x  2 root  wheel   68 Sep  3 02:46 .
d--x--x--x  7 root  wheel  238 Aug 26 03:06 ..

What's particularly painful to witness is the long list of Objective-C files. They're repeated here.

.DocumentRevisions-V100/PerUID/501/d/com.apple.documentVersions:
total 0
d--x--x--x  106 root     wheel  3604 Sep  3 02:46 .
d--x--x--x    3 root     wheel   102 Sep  2 14:05 ..
-r--------@   1 osxuser  staff  7329 Sep  3 01:52 017E7B99-7CA3-4691-89E7-550F9BB589B5.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:14 01BB75D7-65D6-402F-BD1A-A8E43566DC3E.m
-r--------@   1 osxuser  staff  7430 Sep  3 02:13 0218F9D5-2658-4A30-A263-5892A35EDBB7.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:07 0309F170-1FA4-439C-8A89-2E743CAAED8D.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 04AC4168-778B-4363-A294-B41C75793F55.m
-r--------@   1 osxuser  staff  8438 Sep  2 14:23 059A5A64-4E5C-45E3-81C3-CCBE120E45BD.m
-r--------@   1 osxuser  staff  7700 Sep  3 02:29 06451AC8-DA69-4245-A268-1010C581C1FB.m
-r--------@   1 osxuser  staff  8261 Sep  2 14:05 096522F1-1682-48C0-AEF7-E630A999B04C.m
-r--------@   1 osxuser  staff  8438 Sep  2 14:23 09829802-68F0-4284-94E1-DB35AD7482FD.m
-r--------@   1 osxuser  staff  7706 Sep  3 02:31 09E7FFCD-30C7-49B2-ACC5-4AFEE72AEFBE.m
-r--------@   1 osxuser  staff  8434 Sep  2 14:23 0E321AFF-7DFA-4725-8F1E-97B1A80E5B6E.m
-r--------@   1 osxuser  staff  7228 Sep  1 15:54 100F6527-26AD-4A05-9014-EDAE8BF82BE2.m
-r--------@   1 osxuser  staff  7228 Sep  1 15:54 10F41D72-38BD-4891-901E-F7F3E9577198.m
-r--------@   1 osxuser  staff  8165 Sep  2 14:06 13A410C6-5EEA-4319-B7B0-E0476025B246.m
-r--------@   1 osxuser  staff  7371 Sep  3 02:03 16821BB2-85D5-4E67-B6ED-5595B661825F.m
-r--------@   1 osxuser  staff  7327 Sep  3 01:46 19516BA6-AF8E-4E56-B4C6-7847ED5D66F1.m
-r--------@   1 osxuser  staff  7331 Sep  3 01:50 1C6F60EF-B194-466F-BAA2-144D36632A4E.m
-r--------@   1 osxuser  staff  7745 Sep  3 02:36 1CC9191E-3EA2-4970-828D-793E779040FB.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:29 206FDCD9-C6FD-40C9-AB10-E03C007F3F38.m
-r--------@   1 osxuser  staff  8504 Sep  2 17:45 22D13AB5-0B45-4B55-A3B0-33F50F304536.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 243E9869-CBAB-44B5-B767-F5AFEC3CD95F.m
-r--------@   1 osxuser  staff  8433 Sep  2 14:23 263D0E89-1D4B-4574-9E13-08B4010FC9C5.m
-r--------@   1 osxuser  staff  7353 Sep  3 02:00 28ADAC9D-7E48-4F99-A97A-E47A5CB463E9.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:09 29005B79-26C9-4DED-A392-018E135A1D70.m
-r--------@   1 osxuser  staff  7695 Sep  3 02:28 29C6E1E2-B109-471B-9894-9DD3AE974092.m
-r--------@   1 osxuser  staff  8347 Sep  2 14:22 2C15F0B0-7A80-4D90-8687-5B257E920CBA.m
-r--------@   1 osxuser  staff  7562 Sep  3 02:22 310F8A4F-3D46-463D-900B-CD0EA01FECC1.m
-r--------@   1 osxuser  staff  8583 Sep  2 17:53 331B23A0-6988-48C2-B01A-6057F26024C9.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:27 37EE6F0E-2A8E-45A5-9CA7-0AF064452A9A.m
-r--------@   1 osxuser  staff  7467 Sep  3 02:15 3AB2CC3D-7CF6-457D-BD7D-BA0F0103AEEF.m
-r--------@   1 osxuser  staff  7519 Sep  3 02:17 3D2E7FAB-79D3-4ADC-8138-0F4D0F72D78E.m
-r--------@   1 osxuser  staff  8271 Sep  2 14:17 3DB9827D-F439-4152-BAE1-695984C379A1.m
-r--------@   1 osxuser  staff  7423 Sep  3 02:04 44086594-64A5-4926-B663-336C5EA3911D.m
-r--------@   1 osxuser  staff  7325 Sep  3 01:57 44D90AF3-9646-453A-83D2-597EFD927D70.m
-r--------@   1 osxuser  staff  7474 Sep  3 02:15 49FE360A-28FB-420B-A0FE-63FF261622CF.m
-r--------@   1 osxuser  staff  8474 Sep  2 14:29 4D6809CE-1377-4DB0-91D1-B3C42B31D678.m
-r--------@   1 osxuser  staff  7304 Sep  2 20:15 4E2D270E-83B0-4944-9958-476B0ABCF959.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:05 4F8E582F-12BD-4D53-BA27-E2E9F5401F21.m
-r--------@   1 osxuser  staff  8432 Sep  2 14:23 50978D8E-4E1F-439E-A06B-5D64F658B186.m
-r--------@   1 osxuser  staff  7289 Sep  3 01:52 57DC8C39-7C50-4170-A033-7A95414A639B.m
-r--------@   1 osxuser  staff  7565 Sep  3 02:09 5AAFDAB5-CE0A-46C9-A284-A437A2E49125.m
-r--------@   1 osxuser  staff  7535 Sep  3 02:07 5C056CF6-EA41-4A62-A789-743C15188335.m
-r--------@   1 osxuser  staff  8460 Sep  2 14:28 5DBD4112-188B-4607-8235-1C374521E941.m
-r--------@   1 osxuser  staff  7966 Sep  3 02:41 627FEE96-6F7B-4684-904C-F5ADF19CBA69.m
-r--------@   1 osxuser  staff  8280 Sep  2 14:15 630640D4-C099-406E-B4A6-14619A0FD3DE.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:27 6552B468-F8A3-4217-98B4-2DAF01F94394.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:11 670DFA17-EAC7-4A80-84AA-D9B35735E6BE.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:28 67C9BCB7-3833-4F66-A8A2-66430610214E.m
-r--------@   1 osxuser  staff  7310 Sep  2 20:17 6A6F970A-6E3C-427A-84D4-1B2C7DC4E5CE.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:14 6A7F0CA9-2A2E-4BC5-B751-24FAF9A172FF.m
-r--------@   1 osxuser  staff  7699 Sep  3 02:29 6BC1800F-BE99-4866-B6B9-824ECE2D64D0.m
-r--------@   1 osxuser  staff  7333 Sep  3 01:50 6F9FE3B1-7993-4142-822A-CB779575DEF0.m
-r--------@   1 osxuser  staff  7310 Sep  2 20:17 73B66DBE-0075-46F8-95C7-6FAC736A9FD1.m
-r--------@   1 osxuser  staff  7964 Sep  3 02:46 7C711DA1-42CA-4CE6-99B3-1D129600E970.m
-r--------@   1 osxuser  staff  7429 Sep  3 02:05 812D3ED3-DB7F-4719-BFFC-C1DE480BC61D.m
-r--------@   1 osxuser  staff  8357 Sep  1 02:00 82B67D9D-6969-42C7-902A-61DA7B9D5D31.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:25 84DCB954-C0F8-47C1-85D9-DD2FC43E946D.m
-r--------@   1 osxuser  staff  7484 Sep  3 02:05 851F874F-84F6-4964-AF2D-C2321587AB88.m
-r--------@   1 osxuser  staff  8265 Sep  2 14:13 8522A632-1896-437E-A622-3E97A4602E4B.m
-r--------@   1 osxuser  staff  8399 Sep  2 14:24 897318DE-941C-4D5C-9577-A1E7EC306988.m
-r--------@   1 osxuser  staff  8502 Sep  2 17:45 8995F5CE-F954-49E1-8A70-9217CA6BA739.m
-r--------@   1 osxuser  staff  8443 Sep  2 14:22 8BD5F630-ECAE-4E9E-8369-2B6B4483442F.m
-r--------@   1 osxuser  staff  7566 Sep  3 02:09 8F514D6B-3E0C-42A8-878C-236FAB63A224.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:30 92CB9849-CF76-4528-8953-6F77375449EB.m
-r--------@   1 osxuser  staff  7717 Sep  3 02:25 94AE6588-9795-4E9E-97EC-3F943686E257.m
-r--------@   1 osxuser  staff  7808 Sep  3 02:37 9624EC8C-B558-4AFF-91D1-5AEE0DFD2D76.m
-r--------@   1 osxuser  staff  7227 Sep  2 20:12 978E67E5-9ADA-47B4-9BCB-D08C6B29FDE0.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:32 9B4027D0-8C54-4E00-8C32-D824A7A2BC29.m
-r--------@   1 osxuser  staff  7308 Sep  3 01:44 A09643FD-37B6-4EC2-A803-728C42504A59.m
-r--------@   1 osxuser  staff  7486 Sep  3 02:15 A1B19A3E-FF72-414B-8D73-66948BF80074.m
-r--------@   1 osxuser  staff  7308 Sep  2 20:16 A48D69B9-282A-4E7A-AE44-F4BFE158D707.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:15 A7595BDF-F8C7-41A6-957E-92879754A8FA.m
-r--------@   1 osxuser  staff  7273 Sep  3 02:01 AE32D158-137B-4230-9BB4-AD47EADBF210.m
-r--------@   1 osxuser  staff  7310 Sep  3 01:45 B133BC95-E161-425E-9A13-CFAC76A067B0.m
-r--------@   1 osxuser  staff  7708 Sep  3 02:23 BBB8CC9E-2073-4C01-96E7-E3CE864529FA.m
-r--------@   1 osxuser  staff  8152 Sep  2 14:05 BD8F7BCE-9E81-4E29-B8D9-B25D8D28BFDB.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:08 C2A6F18E-CFAA-4C85-9638-59C516D9FD67.m
-r--------@   1 osxuser  staff  7697 Sep  3 02:27 C3A7004F-7964-468E-BDF3-69162962631E.m
-r--------@   1 osxuser  staff  7537 Sep  3 02:09 C5DFD7BC-449C-4AC5-B116-7DE3A6FD2E5F.m
-r--------@   1 osxuser  staff  7308 Sep  2 20:16 C5E136DF-2DDA-4FD7-9026-B76F1E90FF9F.m
-r--------@   1 osxuser  staff  7700 Sep  3 02:29 C9ECCCBB-C50A-4F38-B275-8E699C722976.m
-r--------@   1 osxuser  staff  7281 Sep  2 20:14 CDC06DE4-3788-48FD-9A8A-4C03DFF7D858.m
-r--------@   1 osxuser  staff  7705 Sep  3 02:30 CF382E58-FA09-400B-A4D5-61C2151F4D85.m
-r--------@   1 osxuser  staff  7281 Sep  2 20:14 CF9D7B36-362C-4542-A7D0-9F65A60E2779.m
-r--------@   1 osxuser  staff  7272 Sep  3 02:02 D09374C9-858A-433D-AC73-85E9B4696E8A.m
-r--------@   1 osxuser  staff  7745 Sep  3 02:35 D1C0B0AC-21C3-407D-B09E-4DAF6936A864.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:32 D2BD8CE2-627E-4537-97CE-0A5C1F74FDFA.m
-r--------@   1 osxuser  staff  8456 Sep  2 14:29 D3A41180-2936-4512-9E16-F4F2995BAE22.m
-r--------@   1 osxuser  staff  7307 Sep  2 20:16 D5ED3ED7-AEC5-4D14-85F6-1D649CFE08C2.m
-r--------@   1 osxuser  staff  8456 Sep  2 17:54 D7FBE5A5-4143-4762-9E00-F3A953B7142D.m
-r--------@   1 osxuser  staff  7518 Sep  3 02:20 DFA0CC0D-BED5-4C74-8EA1-A5DD347EB611.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:28 E3104D98-CDD1-4FF6-B8DB-DBC3A953F1BB.m
-r--------@   1 osxuser  staff  8500 Sep  2 17:45 E5CABED2-B7A4-44E8-BF17-232B2910E720.m
-r--------@   1 osxuser  staff  8576 Sep  2 17:53 E9511890-3581-4065-A750-B62A635ABCD6.m
-r--------@   1 osxuser  staff  8345 Sep  2 14:19 EDFDC771-2478-4094-8F43-59611BADCE56.m
-r--------@   1 osxuser  staff  8454 Sep  2 17:44 F064E858-30E5-41F1-A3ED-B3BF1EA4BBAE.m
-r--------@   1 osxuser  staff  7561 Sep  3 02:22 F0E321ED-EFF3-4602-B983-B86740DE9E44.m
-r--------@   1 osxuser  staff  7718 Sep  3 02:23 F5F33D2F-467D-4008-AAB7-2DDE2B87C034.m
-r--------@   1 osxuser  staff  7485 Sep  3 02:05 F7862B99-12F5-4C13-9380-D09555ED65C4.m
-r--------@   1 osxuser  staff  7964 Sep  3 02:41 FA736635-C118-4E52-BFB5-4A95340D69F6.m
-r--------@   1 osxuser  staff  8569 Sep  2 17:53 FB02F3C4-3021-4B41-9D2C-819AF4B19D5B.m
-r--------@   1 osxuser  staff  7696 Sep  3 02:29 FB4B398E-E161-43E2-867E-1283F9738F9A.m
-r--------@   1 osxuser  staff  8269 Sep  2 14:13 FCD22F66-1E44-4207-B003-EE3F733444B7.m
-r--------@   1 osxuser  staff  7706 Sep  3 02:23 FEA04E2A-A9E0-478C-BD33-86FA9CA1EB10.m

DocumentRevisions-V100/PerUID/501/f/com.apple.documentVersions:
total 0
d--x--x--x  12 root     wheel   408 Sep  3 01:49 .
d--x--x--x   3 root     wheel   102 Sep  2 20:21 ..
-r--------@  1 osxuser  staff  8454 Sep  2 20:24 33C8F9B9-761D-4E4D-8F09-7C94FBDA063B.m
-r--------@  1 osxuser  staff  8453 Sep  2 20:22 3A3C2599-AA8E-49AF-B5B7-B79171274484.m
-r--------@  1 osxuser  staff  8454 Sep  2 20:22 592A3A56-C6A1-4369-B2A5-6F0E33C75D70.m
-r--------@  1 osxuser  staff  8456 Sep  3 01:49 5FD49725-01C2-461D-9F6A-56AC6A922F47.m
-r--------@  1 osxuser  staff  8460 Sep  3 01:49 7420DFA4-CAD0-42BD-84DC-7FD76A871427.m
-r--------@  1 osxuser  staff  8456 Sep  2 20:25 8760F6B8-E4D2-4A55-B01B-7317B2F4E12C.m
-r--------@  1 osxuser  staff  8458 Sep  2 20:21 A39610EE-AE10-449D-A746-1073EE6A3C9D.m
-r--------@  1 osxuser  staff  8456 Sep  2 20:25 DFF98137-733D-4ABA-AB56-7B9B455B0AE4.m
-r--------@  1 osxuser  staff  8456 Sep  2 17:54 FD659CC1-80AC-43A6-82F5-418CB922C552.m
-r--------@  1 osxuser  staff  8460 Sep  2 20:21 FE31A5C7-6D94-4DDE-A57A-8480DFA40D16.m

What's interesting (painful) about these files is that they represent files that no longer exist. And yet they're still there on the system, clogging up the works.

But it gets worse: running Xstrings (or strings) on some of those files reveals a bona-fide history of your web surfing and downloading experience. These are things you might want gone in an orderly fashion. But they won't be gone if the ultra-smooth revision system keeps track of it all.

The daemon running the show is referenced at the following path.

/System/Library/LaunchDaemons/com.apple.revisiond.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>HopefullyExitsLast</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.apple.revisiond</string>
    <key>MachServices</key>
    <dict>
        <key>com.apple.revisiond</key>
        <dict>
            <key>ResetAtClose</key>
            <true/>
        </dict>
    </dict>
    <key>Program</key>
    <string>/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/Support/revisiond</string>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

As indicated above, the daemon itself is found at the following path.

/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/Support/revisiond

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>BuildMachineOSBuild</key>
    <string>11D17a</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>GenerationalStorage</string>
    <key>CFBundleIdentifier</key>
    <string>com.apple.GenerationalStorage</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>GenerationalStorage</string>
    <key>CFBundlePackageType</key>
    <string>FMWK</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>126.1</string>
    <key>DTCompiler</key>
    <string>com.apple.compilers.llvm.clang.1_0</string>
    <key>DTPlatformBuild</key>
    <string>11D17a</string>
    <key>DTPlatformVersion</key>
    <string>GM</string>
    <key>DTSDKBuild</key>
    <string>11D17a</string>
    <key>DTSDKName</key>
    <string></string>
    <key>DTXcode</key>
    <string>0410</string>
    <key>DTXcodeBuild</key>
    <string>11D17a</string>
</dict>
</plist>

'Generational Storage' - the system is growing in complexity by leaps and bounds.

So yes in theory it's possible to 'disable' the system by doing something to that file and then rebooting. (But don't try this at work unless you're a true guerilla, you really know what you're doing, and you're prepared for the consequences.)

How had the user experience engineers at Apple planned to deal with the buildup? Is that documented anywhere? Or perhaps they don't want to worry about it? It's cutely kept out of user reach in a directory owned by root:wheel with access 111, so not many end users will know how to get at it. And 'out of sight, out of mind'. 10.7 had at least three apps that conform to the new world order: Preview, TextEdit, and Xcode. Preview and TextEdit will still perform to an extent if the system is disabled but Xcode burps. And none of those apps will tell you how to review all the document revisions you have.

Here's a tutorial from Apple on how the revision system works.

http://support.apple.com/kb/HT4753

The obvious privacy concerns arrived over a year ago.

https://discussions.apple.com/thread/3198808?start=30

But rather than discuss how the system can be turned off (it can) the posts are mostly about encrypting entire hard drives instead. And that doesn't answer the obvious questions. Already on page 1 'Pondini' notes that the system officially cannot be turned off.

https://discussions.apple.com/thread/3198808



This of course gets even hairier when you think of all the Unix administrative tools that have just 'sort of been forgot' in the rush to dumb down users even more. Surfsoft's remark about Dave Cutler's VMS is spot on.



Bottom line: the OS X revision system, albeit highly complex and sophisticated, has a type of 'devil may care attitude': things don't always hold so good, too much data is hidden out of view (and reach) of the user, and too much potentially compromising rubbish just accumulates and accumulates.

And it's out of view of the user! How many users keep close tabs on disk free space and notice that there's something going on?

The point of course is that your computer in the wrong hands will reveal a lot of things you didn't want revealed. UDIDs can be the least of your concerns.

[Yes there are CLIX commands available below that will remedy this. Ed.]

3. Preheated User

One of the most aggravating features of the lions is the 'saved application state' that rears its head on login. This very helpful feature has no clue how you used your apps before rebooting, doesn't understand that some (most) apps are document-based Cocoa apps, meaning they need a file name too, and so forth. Being greeted by empty document windows on login is not a great thrill. Fortunately you can limit this to a certain extent - just make sure the right steps are taken immediately prior to hitting that reboot button.

sudo rm -f /var/db/BootCaches/PreheatedUser/*

'PreheatedUser' is actually a symlink to the real directory where all this lovely information is being stored for your pleasure. To read what's there before you send it on its way into outer space, use the following command.

sudo ls -al /var/db/BootCaches/PreheatedUser/*

Then ask yourself how many of those apps you really wanted Apple to keep track of so they could be started up again.

The 'playlist' files are in another totally proprietary format and seem to have a quad magic at offset 0.

$ hexdump app.com.apple.Safari.playlist
0000000 d8 c3 b2 a1 01 00 00 00 32 00 00 00 aa 02 02 09
0000010
$ hexdump app.com.apple.Terminal.playlist
0000000 d8 c3 b2 a1 01 00 00 00 78 01 00 00 aa 02 02 09
0000010

More data being hidden from the computer owner.

4. Lockfiles

Lockfiles are more clutter to an increasingly cluttered ~/Library/Preferences directory whose functionality should have been implemented using available synchronisation objects such as critical sections and mutexes. Preferences is supposed to afford a modicum of user control - this in stark contrast to the nightmarish Microsoft Windows Registry.

But when visibility of the parent directory ~/Library is jeopardised already 'out of the box'...

Be grateful you're on a system where preferences are stored in separate app-specific files, and not a huge ungainly binary blob where a misalignment of a single byte can bring the whole system crashing down. Be grateful you're on a system where it is still possible to view and edit those preferences files as plain text.

But don't be grateful that the thirty or so preference files you really need are hidden like needles in a stack of needles on 10.7 or better. For every genuine preference file with the extension 'plist' you're likely to find three more related files cluttering up.

[A curiosity on 10.7 is how 'lockfiles' get execution privileges. Surely this is a mere oversight on Apple's part? Ed.]

'Lockfiles' are normally of zero size: they're used to avoid writing conflicts when preferences files are being updated. That's the official storyline. Their names add 'lockfile' as a further extension to the name of the target preference file.

'Lockfiles' can be found in /Library/Preferences, ~/Library/Preferences, and ~/Library/Preferences/ByHost. The latter two areas are where users can be expected to need to get in from time to time.

Obviously it's easy to construct a script to get rid of 'lockfiles' should one so wish.

5. Safari 6 Keys

Safari 6 is today an impossibly svelte executable.

$ ls -al
total 32
drwxr-xr-x   4 root  wheel    136 Jul 29 16:52 .
drwxr-xr-x  10 root  wheel    340 Jul 29 16:52 ..
-rwxr-xr-x   1 root  wheel  34384 Jul 29 16:37 Safari
-rwxr-xr-x   1 root  wheel  34848 Jul 29 16:37 SafariForWebKitDevelopment

The key is all the 'guts' have been moved to a framework instead.

0000000000001460 /System/Library/PrivateFrameworks/Safari.framework/Versions/A/Safari

That file has all the goodies.

$ ls -al
total 8840
drwxr-xr-x   5 root  wheel       170 Jun  2 03:18 .
drwxr-xr-x   4 root  wheel       136 Jun  2 03:18 ..
drwxr-xr-x  84 root  wheel      2856 Jun  2 03:18 Resources
-rwxr-xr-x   1 root  wheel  13890480 Jun  2 03:10 Safari
drwxr-xr-x   3 root  wheel       102 Jun  2 03:18 _CodeSignature

Inspecting that binary yields 131850 strings of varying importance - 52 related to Safari and WebKit(2) settings. They're in a CLIX file of their own, together with a command that lists all settings for the application.

6. systemsetup

Also included is a CLIX file with 28 new systemsetup commands. systemsetup is described in its documentation as a 'configuration tool for certain machine settings in System Preferences'. Two commands offer basic help and a list of all the commands available. Using the 'get' rather than the 'set' variations of these commands should be innocuous (and hopefully informative as well).

7. Guerilla CLIX Files

The CLIX files for this article are available here. Do not use these scripts unless you are fully capable of understanding them and the consequences of running them. By downloading this file, you agree to assume full responsibility for those consequences.

See Also
CLIX: 'The #1 Power Tool for OS X'/Learn How to Fish

Learning Curve: CLIX: Legally Hacking I
Learning Curve: CLIX: Legally Hacking II

The Technological: Apple's Achilles Heel
The Technological: Apple and the War on Stupidity
Industry Watch: Flashback Botnet Recruits 550,000 Macs

About | ACP | Buy | Forum | Industry Watch | Learning Curve | Search | Twitter | Xnews
Copyright © Rixstep. All rights reserved.