title: Decompilation possibilities in iOS and how to prevent them
body: <p>I recently read about decompilation of iOS apps and I'm now really concerned about it. As stated in the following posts (<a href="https://stackoverflow.com/questions/5475875/decompiling-ios-objective-c-binaries">#1</a> and <a href="https://stackoverflow.com/questions/2661722/decompile-an-app-binary-to-get-back-to-source-code">#2</a>) it is possible to decompile an iOS which is distributed to the App Store. This can be done with jailbreak and I think with copying the app from memory to hdd. With some tools it is possible to</p>
  
  <ul>
  <li>read out strings (strings tools)</li>
  <li>dump the header files</li>
  <li>reverse engineer to assembly code</li>
  </ul>
  
  <p>It seems NOT to be possible to reverse engineer to Cocoa code.</p>
  
  <p>As security is a feature of the software I create, I want to prevent bad users from reconstructing my security functions (encryption with key or log in to websites). So I came up with the following questions:</p>
  
  <ol>
  <li>Can someone reconstruct my saving and encryption or login methods with assembly? I mean can he understand what exactly is going on (what is saved to which path at which time, which key is used etc., with what credentials is a login to which website performed)? I have no assembly understanding it looks like the matrix for me...</li>
  <li>How can I securly use <code>NSStrings</code> which cannot be read out with strings or read in assembly? I know one can do obfuscation of strings - but this is still not secure, isn't it?</li>
  </ol>