<story><title>Dictionary app auto-posts piracy accusations on users’ Twitter accounts</title><url>http://www.pocketables.com/2012/11/enfour-inc-screws-up-big-time-makes-dictionary-app-auto-post-false-accusations-on-users-twitter-accounts.html</url></story><parent_chain><item><author>gilgoomesh</author><text>If you&apos;re an iOS app developer...&lt;p&gt;The correct way to check if your app has been pirated requires two steps:&lt;p&gt;1) You must be running on a jailbroken system. Check this by trying to read from outside the sandbox.&lt;p&gt;2) Check if your app&apos;s signature is invalid. Checking this is fairly involved. Look around for code.&lt;p&gt;If &lt;i&gt;either&lt;/i&gt; of these two are false, then you&apos;ve &lt;i&gt;not&lt;/i&gt; been pirated (point (2) will be true when your app is checked by Apple but point (1) will be false).&lt;p&gt;For Mac App Store apps, only point (2) is required.&lt;p&gt;The author of the app in the article has only checked point (1) (and additionally checked an &lt;i&gt;irrelevant&lt;/i&gt; point by checking for Installous).&lt;p&gt;Incidentally, the preferred action if you&apos;ve detected a pirate situation is to exit(173).</text></item></parent_chain><comment><author>DHowett</author><text>You can normally read from outside the sandbox on iOS: there are data in /usr/lib and /usr/share that are important to libraries shipped as part of the dyld cache (also incidentally found outside of the app container.)&lt;p&gt;The main question is: what exactly lays outside the sandbox? A good thing to search for could be Cydia, but there are alternative package managers. MobileSubstrate isn&apos;t a sure bet either, but I suppose it&apos;s a far cry safer than Cydia. An additional method could be trying to map a page you can both write to and execute, which should fail unless specific kernel patches indicative of a jailbreak have been applied (or you&apos;re a webview with Nitro enabled.)&lt;p&gt;The best method, however, is to &lt;i&gt;not care&lt;/i&gt;, because if you do it&apos;s for the sake of either tracking/analytics or screwing over your users.</text></comment>
<story><title>Dictionary app auto-posts piracy accusations on users’ Twitter accounts</title><url>http://www.pocketables.com/2012/11/enfour-inc-screws-up-big-time-makes-dictionary-app-auto-post-false-accusations-on-users-twitter-accounts.html</url></story><parent_chain><item><author>gilgoomesh</author><text>If you&apos;re an iOS app developer...&lt;p&gt;The correct way to check if your app has been pirated requires two steps:&lt;p&gt;1) You must be running on a jailbroken system. Check this by trying to read from outside the sandbox.&lt;p&gt;2) Check if your app&apos;s signature is invalid. Checking this is fairly involved. Look around for code.&lt;p&gt;If &lt;i&gt;either&lt;/i&gt; of these two are false, then you&apos;ve &lt;i&gt;not&lt;/i&gt; been pirated (point (2) will be true when your app is checked by Apple but point (1) will be false).&lt;p&gt;For Mac App Store apps, only point (2) is required.&lt;p&gt;The author of the app in the article has only checked point (1) (and additionally checked an &lt;i&gt;irrelevant&lt;/i&gt; point by checking for Installous).&lt;p&gt;Incidentally, the preferred action if you&apos;ve detected a pirate situation is to exit(173).</text></item></parent_chain><comment><author>mikecane</author><text>Does checking for those things slow down the load time of the app?  Wouldn&apos;t that punish paid users?</text></comment>