<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eandrade</id>
	<title>The iPhone Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.theiphonewiki.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eandrade"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Eandrade"/>
	<updated>2026-06-09T17:34:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Limera1n&amp;diff=14089</id>
		<title>Limera1n</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Limera1n&amp;diff=14089"/>
		<updated>2010-12-07T05:54:08Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:limera1n}}&lt;br /&gt;
[[Image:Ra1ndrop.png|right]]&lt;br /&gt;
This is [[User:Geohot|geohot's]] latest [[jailbreak]] utility. It uses an undisclosed bootrom exploit and an undisclosed kernel exploit found by [[User:Comex|comex]] to achieve an [[untethered jailbreak]] on newer devices. The following devices are technically supported:&lt;br /&gt;
&lt;br /&gt;
* [[N88ap|iPhone 3GS]]&lt;br /&gt;
* [[N90ap|iPhone 4]]&lt;br /&gt;
* [[N18ap|iPod touch 3G]]&lt;br /&gt;
* [[N81ap|iPod touch 4G]]&lt;br /&gt;
* [[K48ap|iPad]]&lt;br /&gt;
* [[K66ap|AppleTV 2G]] (creates a bare-bones jailbreak by mounting '/' as read/write in /etc/fstab)&lt;br /&gt;
&lt;br /&gt;
Limera1n has been demonstrated multiple times by [[User:Geohot|geohot]], using blog posts on his now private blog. [[User:Geohot|Geohot]] [http://1.bp.blogspot.com/_NJ4JFBfr1tY/TDgkAsTQEmI/AAAAAAAAAcw/ZNHDxMNNL4Y/s1600/iphone4.png showed off a high-res picture of Cydia on an iPhone 4]. He [http://www.youtube.com/watch?v=__TR86PLiHw displayed an iPod touch 3G with an untethered jailbreak] that met MuscleNerd's requirements for a good video. In addition, he took a [http://4.bp.blogspot.com/_NJ4JFBfr1tY/S7_OvGMqJMI/AAAAAAAAAcE/R5WLrCizGw0/s1600/ipad_jb.jpg picture of Cydia and blackra1n icons on his iPad's SpringBoard].&lt;br /&gt;
&lt;br /&gt;
'''Release Date:''' October 9, 2010&lt;br /&gt;
&lt;br /&gt;
'''Supported OS's:''' Mac OS X, Windows&lt;br /&gt;
&lt;br /&gt;
'''Supported Operations:''' Hacktivation, jailbreaking&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Release text==&lt;br /&gt;
&amp;lt;center&amp;gt;limera1n, 6 months in the making&amp;lt;br /&amp;gt;&lt;br /&gt;
iPhone 3GS, iPod Touch 3G, iPad, iPhone 4, iPod Touch 4G&amp;lt;br /&amp;gt;&lt;br /&gt;
4.0-4.1 and beyond+++&amp;lt;br /&amp;gt;&lt;br /&gt;
limera1n is unpatchable&amp;lt;br /&amp;gt;&lt;br /&gt;
untethered thanks to jailbreakme star '''comex'''&amp;lt;br /&amp;gt;&lt;br /&gt;
brought to you by '''geohot'''&amp;lt;br /&amp;gt;&lt;br /&gt;
hacktivates&amp;lt;br /&amp;gt;&lt;br /&gt;
Mac coming in 7 years&amp;lt;br /&amp;gt;&lt;br /&gt;
donations keep support alive&amp;lt;br /&amp;gt;&lt;br /&gt;
zero pictures of my face&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Credit==&lt;br /&gt;
* '''[[User:Geohot|geohot]]''' - The program itself, and the bootrom exploit.&lt;br /&gt;
* '''[[User:Comex|comex]]''' - The userland exploit that allows limera1n to run [[untethered jailbreak|untethered]].&lt;br /&gt;
&lt;br /&gt;
==Changelog==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border-collapse:collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Version'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Release time'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''MD5 Hash'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|&amp;lt;center&amp;gt;'''Change comment'''&amp;lt;/center&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|BETA 1&lt;br /&gt;
|9 Oct 2010 XX:XX GMT&lt;br /&gt;
|2f2b09a6ed5c5613d5361d8a9d0696b6&lt;br /&gt;
|First release.&lt;br /&gt;
|-&lt;br /&gt;
|BETA 2&lt;br /&gt;
|10 Oct 2010 XX:XX GMT&lt;br /&gt;
|a70dccb3dfc0e505687424184dc3d1ce&lt;br /&gt;
|Fixed kernel patching magic. Rerun BETA2+ over BETA1.&lt;br /&gt;
|-&lt;br /&gt;
|BETA 3&lt;br /&gt;
|10 Oct 2010 XX:XX GMT&lt;br /&gt;
|81730090f7de1576268ee8c2407c3d35&lt;br /&gt;
|Fixed an issue with [[N88ap|iPhone 3GS]] ([[iBoot-359.3.2|new bootrom]])&lt;br /&gt;
|-&lt;br /&gt;
|BETA 4&lt;br /&gt;
|10 Oct 2010 XX:XX GMT&lt;br /&gt;
|d901c4b3a544983f095b0d03eb94e4db&lt;br /&gt;
|Uninstall fixed, respring fixed&lt;br /&gt;
|-&lt;br /&gt;
|RC1&lt;br /&gt;
|11 Oct 2010 XX:XX GMT&lt;br /&gt;
|0622d99ffe4c25f75c720a689853845f&lt;br /&gt;
|out of beta! afc2, reliability improvements, no reboot for cydia, 2kb smaller&lt;br /&gt;
|-&lt;br /&gt;
|RC1b&lt;br /&gt;
|11 Oct 2010 XX:XX GMT&lt;br /&gt;
|fc6f7d696a57c3baede49bdff8a7f43f&lt;br /&gt;
|addresses an install issue, mainly with iPads&lt;br /&gt;
|-&lt;br /&gt;
|Final&lt;br /&gt;
|11 Oct 2010 23:XX GMT&lt;br /&gt;
|fc6f7d696a57c3baede49bdff8a7f43f&lt;br /&gt;
|(same as RC1b)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Technical Information==&lt;br /&gt;
=== Basics ===&lt;br /&gt;
* Limera1n has nothing to do with SHAtter at all.&lt;br /&gt;
* Limera1n uses a bootrom exploit to achieve the [[tethered jailbreak]] and unsigned code execution.&lt;br /&gt;
* Limera1n uses a userland exploit to make it untethered, which was developed by [[User:Comex|comex]].&lt;br /&gt;
* Limera1n uses a hacktivation dylib to perform hacktivation.&lt;br /&gt;
&lt;br /&gt;
=== Exploits ===&lt;br /&gt;
Limera1n reuses the usb_control_msg(0x21,2) but exploits a different vulnerability.&lt;br /&gt;
 &lt;br /&gt;
=== Process ===&lt;br /&gt;
The jailbreak appears to execute something like the following (in no particular order):&lt;br /&gt;
* In recovery1,&lt;br /&gt;
 &amp;quot;setenv debug-uarts 1&lt;br /&gt;
 setenv auto-boot false&lt;br /&gt;
 saveenv&amp;quot;&lt;br /&gt;
* In [[DFU Mode]], it uploads a [[payload]].&lt;br /&gt;
* In recovery2, it uploads another [[payload]] and its [[ramdisk]].&lt;br /&gt;
 &amp;quot;setenv auto-boot true&lt;br /&gt;
  reset&lt;br /&gt;
  geohot done&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Interesting Messages ===&lt;br /&gt;
*&lt;br /&gt;
 &amp;quot;geohot black is the new purple&amp;quot;&lt;br /&gt;
*&lt;br /&gt;
 &amp;quot;blackra1n start: %d current IRQ mask is %8.8X&lt;br /&gt;
 usb irq disabled...shhh&lt;br /&gt;
 fxns found @ %8.8X %8.8X&lt;br /&gt;
 found iBoot @ %8.8X&lt;br /&gt;
 i'm back from IRQland...&lt;br /&gt;
 3g detected, kicking nor&lt;br /&gt;
 nor kicked&lt;br /&gt;
 memcpy done&lt;br /&gt;
 iBoot restored!!!&lt;br /&gt;
 found command table @ %8.8X&lt;br /&gt;
 cmd_geohot added&lt;br /&gt;
 time to pray...%8.8X&amp;quot;&lt;br /&gt;
*&lt;br /&gt;
 &amp;quot;2.2X  send command(%d): %s&lt;br /&gt;
 send exploit!!!&lt;br /&gt;
 sent data to copy: %X&lt;br /&gt;
  sent shellcode: %X has real length %X&lt;br /&gt;
 never freed: %X&lt;br /&gt;
 sent fake data to timeout: %X&lt;br /&gt;
  sent exploit to heap overflow: %X&lt;br /&gt;
  sending file with length: 0x%X Mingw runtime failure:&lt;br /&gt;
   VirtualQuery failed for %d bytes at address %p      Unknown pseudo relocation protocol version %d.&lt;br /&gt;
     Unknown pseudo relocation bit size %d.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Controversy==&lt;br /&gt;
The release of this jailbreak was specifically designed to pressure [[Chronic Dev (team)]] into not releasing SHAtter, but to instead implement the limera1n exploit into [[greenpois0n]]; after releasing limera1n, releasing SHAtter would uselessly disclose another bootrom exploit to Apple.&lt;br /&gt;
&lt;br /&gt;
[[User:Geohot|Geohot]]'s rationale is that Apple already discovered, through internal testing, the limera1n exploit, making it very likely that it will be fixed in the next bootrom revision. Because [[iBoot]] code is present both in the bootrom and firmware, and because firmware is refreshed much more often that bootrom code, any fix in this code branch would appear first in firmware. [[User:Geohot|Geohot]] observed his limera1n exploit was closed in firmware and concluded that it would almost certainly be fixed in the next bootrom revision, whereas SHAtter still has a chance of remaining useful for an indefinite amount of time.&lt;br /&gt;
&lt;br /&gt;
Limera1n's [[Untethered jailbreak|untethered]] userland exploit for iOS 4.0 and 4.1 was obtained by [[User:Geohot|geohot]] under questionable circumstances from [[User:Comex|comex]]. [[User:Comex|Comex]] did end up fixing the kernel patching code by beta2, so as to not break users' devices.&lt;br /&gt;
&lt;br /&gt;
== Hacktivation ==&lt;br /&gt;
Limera1n will copy hacktivation.dylib to /usr/lib and change entries to com.apple.mobile.lockdown.plist, whether it has been activated using iTunes or not. This, while helpful to many, can also be harmful to legitimate activators. For a guide on how to remove this hacktivation on iTunes activated devices, see the link below.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://loadingchanges.com/wp-content/uploads/2010/10/limetime.jpg Picture of limera1n in action]&lt;br /&gt;
* [http://limera1n.com/ Official domain] &lt;br /&gt;
* [http://theiphonewiki.com/limera1n The iPhone Wiki Mirror]&lt;br /&gt;
* [http://www.mediafire.com/?5sovoo41rbcdspw Limera1n RC Beta2 Dump on Mediafire provided by iH8sn0w.]&lt;br /&gt;
* [http://www.pastie.org/1210054 Veence's explanation for release]&lt;br /&gt;
* [http://www.cmdshft.ipwn.me/blog/?p=555 Hacktivation removal guide.]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hacking Software]]&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Address_Mapping&amp;diff=9953</id>
		<title>Address Mapping</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Address_Mapping&amp;diff=9953"/>
		<updated>2010-10-05T21:27:18Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: New page: ===iPod touch 2G Bootrom=== I think this might not be a good idea, because this page will wind up getting huge, but in case anyone thinks differently I'll add these for the hell of it.  ==...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===iPod touch 2G Bootrom===&lt;br /&gt;
I think this might not be a good idea, because this page will wind up getting huge, but in case anyone thinks differently I'll add these for the hell of it.&lt;br /&gt;
&lt;br /&gt;
====functions====&lt;br /&gt;
* 0x067A - BootromStart&lt;br /&gt;
* 0x45BA - InitProcessor&lt;br /&gt;
* 0x4778 - SetupMMU&lt;br /&gt;
* 0x4734 - MMU_MapAddr&lt;br /&gt;
* 0x3A84 - Do_MMU_Mappings&lt;br /&gt;
* 0x34FC - EnableInterrupts&lt;br /&gt;
* 0x652C - Setup_SPI&lt;br /&gt;
* 0x36DC - Setup_IdleTask&lt;br /&gt;
* 0x4906 - PrepareNOR&lt;br /&gt;
* 0x49BC - nor_spi_read_range&lt;br /&gt;
* 0x178C - malloc&lt;br /&gt;
* 0x34D8 - DisableInterrupts&lt;br /&gt;
* 0x7840 - memset&lt;br /&gt;
* 0x7858 - memzero (this looks funny in IDA, kind of, but really it's just optimized as part of memset)&lt;br /&gt;
* 0x1954 - free&lt;br /&gt;
* 0x4844 - addNORtoBlockDevList&lt;br /&gt;
* 0x4804 - default_block_read&lt;br /&gt;
* 0x10C8 - blockdev_read_hook(void *BDevStruct, void *OutputBuffer, __int32 InputImageStartAddress, int Offset, __int32 Size)&lt;br /&gt;
* 0x1258 - fake_default_block_read&lt;br /&gt;
* 0x136E - blockdev_write_hook&lt;br /&gt;
* 0x1518 - default_block_write&lt;br /&gt;
* 0x151E - default_block_erase&lt;br /&gt;
* 0x1090 - get_block_device(const char* deviceName)&lt;br /&gt;
* 0x8354 - strcmp&lt;br /&gt;
* 0x1AF0 - CreateImageList&lt;br /&gt;
* 0x1F68 - DoCreateImageList&lt;br /&gt;
* 0x204C - GetImage(u32 imageFourccTag)&lt;br /&gt;
* 0x1BF0 - SetupMemzStruct(u32 LoadAddress, u32 FileSize, u32 flags)&lt;br /&gt;
* 0x30E8 - InitUSB&lt;br /&gt;
* 0x795C - memcpy&lt;br /&gt;
* 0x0E84 - USB_Core_Init&lt;br /&gt;
* 0x1058 - StopUSB&lt;br /&gt;
* 0x328C - GetSystemInfo&lt;br /&gt;
* 0x3D94 - Get_Chip_ID&lt;br /&gt;
* 0x3DA0 - Get_Chip_Revision&lt;br /&gt;
* 0x3D74 - Get_Security_Epoch&lt;br /&gt;
* 0x3AE4 - Get_Board_ID&lt;br /&gt;
* 0x3DD4 - Get_Unique_Chip_ID&lt;br /&gt;
* 0x8286 - snprintf&lt;br /&gt;
* 0x7D5C - vfprintf_like_thingy&lt;br /&gt;
* 0x82A8 - printf&lt;br /&gt;
* 0x8422 - putchar&lt;br /&gt;
* 0x2E98 - usb_print&lt;br /&gt;
* 0x83CC - strncat&lt;br /&gt;
* 0x1C18 - FreeMemzStruct&lt;br /&gt;
* 0x67DC - Reboot (via watchdog, so yeah it looks a bit odd)&lt;br /&gt;
* 0x0644 - LoadAndJumpToFWImage(struct MemzStruct *pMemzInfo, __int32 LoadAddress, __int32 FileSize)&lt;br /&gt;
* 0x3338 - ProperlyJumpToImage(void unkown, u32 address, void unknown)&lt;br /&gt;
* 0x4584 - PrepMMUForJump (?)&lt;br /&gt;
* 0x1B78 - LoadFirmwareImage&lt;br /&gt;
* 0x2144 - doLoadFirmwareImage&lt;br /&gt;
* 0x1D04 - VerifyImage&lt;br /&gt;
* 0x5EA8 - ComputeSHA1(void *Input_Data, int Data_Size, void *SHA1_Of_Data)&lt;br /&gt;
* 0x4150 - AdjustClock&lt;br /&gt;
* 0x5E54 - CopyBlockToSHA1Engine&lt;br /&gt;
* 0x372E - yield&lt;br /&gt;
* 0x2400 - DecryptRSASignature&lt;br /&gt;
* 0x0898 - DoCrypto(int CryptOption, void *Input_Buffer, void *Output_Buffer, __int32 Size, int AESMode, void *Key, void *IV) [CryptOption 0x10 == encrypt, 0x11 == decrypt]&lt;br /&gt;
* 0x5010 - aes_encrypt&lt;br /&gt;
* 0x4DB8 - do_aes_encrypt&lt;br /&gt;
* 0x4D38 - send_key_to_aes&lt;br /&gt;
* 0x4D88 - send_iv_to_aes&lt;br /&gt;
* 0x4F44 - aes_decrypt&lt;br /&gt;
* 0x4E80 - do_aes_decrypt&lt;br /&gt;
* 0x2668 - parse_certificate_and_signature(void *pCertsData, int sizeOfCerts, void *pImageRsaSha1, int sizeofRsaSha1, void *pComputedImageSha1, int sha1Size, void *pImageBuffer, int imageFullSize)&lt;br /&gt;
* 0x356C - CheckIfDiagnosticDevice&lt;br /&gt;
* 0x3D64 - Get_Security_Domain&lt;br /&gt;
* 0x3D44 - Get_Production_Mode&lt;br /&gt;
* 0x1F00 - Find_Data_For_Tag&lt;br /&gt;
* 0x346C - Panic&lt;br /&gt;
* 0x0634 - WaitForInterrupt&lt;br /&gt;
* 0x4618 - UndefinedInstructionVector&lt;br /&gt;
* 0x46F0 - UndefinedInstructionHandler&lt;br /&gt;
* 0x4628 - SoftwareInterruptVector&lt;br /&gt;
* 0x4700 - SoftwareInterruptHandler&lt;br /&gt;
* 0x4640 - PrefetchAbortVector&lt;br /&gt;
* 0x46B4 - PrefetchAbortHandler&lt;br /&gt;
* 0x4664 - DataAbortVector&lt;br /&gt;
* 0x46A2 - DataAbortHandler&lt;br /&gt;
* 0x467C - AddressExceptionTrapVector&lt;br /&gt;
* 0x4680 - InterruptRequestVector&lt;br /&gt;
* 0x4710 - InterruptRequestHandler&lt;br /&gt;
* 0x4BEC - HandleInterruptRequest&lt;br /&gt;
* 0x4690 - FastInterruptRequestVector&lt;br /&gt;
* 0x4722 - FastInterruptRequestHandler&lt;br /&gt;
* 0x4C40 - HandleFastInterruptRequest&lt;br /&gt;
&lt;br /&gt;
====variables====&lt;br /&gt;
* 0x220240D4 - SHA1 accelerator register table&lt;br /&gt;
* 0x22024200 - Block Device List&lt;br /&gt;
* 0x220250A0 - Permissions Flags&lt;br /&gt;
* 0x220254E0 - Interrupt Table&lt;br /&gt;
* 0x2202C000 - Page table&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=IDA_Pro_Setup&amp;diff=9952</id>
		<title>IDA Pro Setup</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=IDA_Pro_Setup&amp;diff=9952"/>
		<updated>2010-10-05T21:25:48Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==How to set up IDA pro to reverse the 3G baseband==&lt;br /&gt;
&lt;br /&gt;
The [[X-Gold 608]] has a memory map, as seen in it's page.&lt;br /&gt;
&lt;br /&gt;
The [[Secpack 2.0]] takes up the first 0xCF8 of the .fls file.&lt;br /&gt;
&lt;br /&gt;
So to load the 3G .fls file into IDA pro, the file offset is 0xCF8(for the secpack), and the CODE starts at the ROM start address of 0x20040000(since it's the main firmware)&lt;br /&gt;
&lt;br /&gt;
For real noobs:&lt;br /&gt;
 1. Drag the fls file into IDA&lt;br /&gt;
 2. Select ARM&lt;br /&gt;
 3. Change ROM start address to 0x20040000&lt;br /&gt;
 4. Change Loading address to 0x20040000&lt;br /&gt;
 5. Change File offset to 0xCF8&lt;br /&gt;
 6. Copy Loading size into ROM size&lt;br /&gt;
 7. Press OK&lt;br /&gt;
 8. The entry point is the address at 0x20040408&lt;br /&gt;
 9. Go to 20100004 and Press &amp;quot;C&amp;quot; to start. ~Deco&lt;br /&gt;
 10. Read the instructions so you can find other places where you can press &amp;quot;C&amp;quot; to get more code. ~Deco&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here are some key combinations to use:&lt;br /&gt;
* c = turn the 'gibberish' into code&lt;br /&gt;
* d = turn the 'gibberish' into data&lt;br /&gt;
* a = turn the 'gibberish' into a string&lt;br /&gt;
* u = undefine what you just may have done, i usually use this since there is no real edit+undo in IDA so this is the next best thing&lt;br /&gt;
* Alt+G = toggle the Register T from 0 / 1 to toggle arm and thumb mode when needed&lt;br /&gt;
&lt;br /&gt;
== some hints for getting the mnemonics from n00b for noobs (read: master noob for noobs ;-) )==&lt;br /&gt;
&lt;br /&gt;
The autoanalysis didn't work very well. There were a lot of silly mnemonics, simply interleaving thumb and arm mode or other nasty stuff. I then tried to identify strings, pressing 'A'. Boring... What pushed it up a little bit is this:&lt;br /&gt;
&lt;br /&gt;
Most code is 'embraced' by 'embracing' code:&lt;br /&gt;
- push / pop for thumb mod&lt;br /&gt;
- STMFD / LDMFD for arm mode&lt;br /&gt;
&lt;br /&gt;
Even better, all versions of above codes have similar instruction sets. So you can find all occurences of STMFD by hex searching '2D E9', going two bytes back (did I say code is aligned? 4bytes in arm starting at 00 04 08 0c, 2bytes in thumb mode!) and pressing 'C'. If you see scrambled code, then (probably) the wrong mode (thumb) is enabled. Just press Alt-G, change the value for T to zero. See?!&lt;br /&gt;
The same goes for thumb mode. Push instructions are 'B5' preceeded by 02 0B 4E 72 30 10 F0 70 F3 7C 55 1F 30 3E 0E 1C 08 7F ... So just look for e.g. '10 B5' at two-byte boarders (Alt-B to set, Ctrl-B to search again) and you will easily find all occurences. Again, if it is scrambled, switch back to thumb mode (Alt-G, T=1).&lt;br /&gt;
After all, you can hex browse a little bit and press 'C' for missing code or 'A' for text.&lt;br /&gt;
&lt;br /&gt;
Above is a very simple 'algorithm', maybe there is an appropiate IDA plugin. Or you could write one :-) !&lt;br /&gt;
&lt;br /&gt;
[http://code.assembla.com/ks360/subversion/nodes/utils/Analyze.py Script] with [http://d-dome.net/idapython/ IDAPython]&lt;br /&gt;
&lt;br /&gt;
==Addresses of known functions / code locations==&lt;br /&gt;
===Baseband 02.28.00===&lt;br /&gt;
* 0x201497B0 - maybe AT Command handler? (uses strings such as &amp;quot;OK&amp;quot;, &amp;quot;ERROR&amp;quot;, &amp;quot;UNKNOWN COMMAND&amp;quot;)&lt;br /&gt;
* 0x203C51BC - probably prints text&lt;br /&gt;
* 0x201420AC - malloc (according to Darkmen)&lt;br /&gt;
* 0x203C58A0 - bytecpy (according to Darkmen)&lt;br /&gt;
* 0x203FB540 - NU_Create_Task (according to Darkmen)&lt;br /&gt;
* 0x2046DD00 - sprintf (according to Darkmen)&lt;br /&gt;
* 0x20165998 - NU_Receive_From_Mailbox (according to Darkmen)&lt;br /&gt;
* 0x203ED568 - NU_Send_To_Mailbox (according to Darkmen)&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=S5L8920&amp;diff=9769</id>
		<title>S5L8920</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=S5L8920&amp;diff=9769"/>
		<updated>2010-09-30T21:27:49Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the processor used in the [[iPhone 3GS]].&lt;br /&gt;
&lt;br /&gt;
S5L8920 using [http://www.arm.com/products/CPUs/archi-thumb2.html THUMB-2] instruction set as well as ARM and THUMB ones. Binaries included in iOS are compiled for only [[Armv7]] and are not compatible with older CPUs.&lt;br /&gt;
&lt;br /&gt;
== Exploits ==&lt;br /&gt;
=== [[iBoot]] ===&lt;br /&gt;
* [[iBoot Environment Variable Overflow]] - Works up to [[iOS]] 3.1 beta 3&lt;br /&gt;
* [[usb_control_msg(0x21, 2) Exploit]] - Works up to [[iOS]] 3.1.2&lt;br /&gt;
&lt;br /&gt;
=== [[S5L8920 (Bootrom)|Bootrom]] ===&lt;br /&gt;
* [[0x24000 Segment Overflow]] - only in [[iBoot-359.3]]&lt;br /&gt;
* [[SHAtter]]&lt;br /&gt;
&lt;br /&gt;
=== [[Kernel]] ===&lt;br /&gt;
* [[BPF STX Kernel Write Exploit]] - Works up to [[iOS]] 3.1.3&lt;br /&gt;
* [[IOSurface Kernel Exploit]] - Works up to [[iOS]] 4.0.1&lt;br /&gt;
&lt;br /&gt;
=== [[Userland]] ===&lt;br /&gt;
* [[MobileBackup Copy Exploit]] - Works up to [[iOS]] 3.1.3&lt;br /&gt;
* [[PDF CFF Font Stack Overflow]] - Works up to [[iOS]] 4.0.1&lt;br /&gt;
&lt;br /&gt;
== Boot Chain ==&lt;br /&gt;
[[S5L8920 (Bootrom)|Bootrom]]-&amp;gt;[[LLB]]-&amp;gt;[[iBoot]]-&amp;gt;[[Kernel]]-&amp;gt;[[Firmware|System Software]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[S5L8920 (Bootrom)]]&lt;br /&gt;
* [[S5L8920 (Hardware)]]&lt;br /&gt;
* [[S5L8920 (Hardware - Quick Notes)]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0344j/DDI0344J_cortex_a8_r3p2_trm.pdf Technical Reference Manual: Cortex A8]&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baker_8B117_(iPod2,1)&amp;diff=9133</id>
		<title>Baker 8B117 (iPod2,1)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baker_8B117_(iPod2,1)&amp;diff=9133"/>
		<updated>2010-09-10T02:51:18Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Decryption Keys==&lt;br /&gt;
=== Root Filesystem ===&lt;br /&gt;
* '''VFDecrypt''': 4006866bf56ddd49fed7eeff9d6072381edb73aa017a6b349ac104d8f20c2b94715e10e2&lt;br /&gt;
&lt;br /&gt;
===Update Ramdisk (018-7073-079.dmg)===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===Restore Ramdisk (018-7103-078.dmg)===&lt;br /&gt;
* '''IV''': 58DF0D0655BBDDA2A0F1C09333940701&lt;br /&gt;
* '''Key''': FBF443110EB11D8D1AACDBE39167DE09&lt;br /&gt;
&lt;br /&gt;
===applelogo===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===iBEC===&lt;br /&gt;
* '''IV''': 40CECF39BC971DCE828415C7DFFCE3EA&lt;br /&gt;
* '''Key''': 7341C6FB2CC09FE6D43067F7E426F708&lt;br /&gt;
&lt;br /&gt;
===iBoot===&lt;br /&gt;
* '''IV''': 07751C86D421A18D427AC7F94A74D747&lt;br /&gt;
* '''Key''': 0359D66DD638E5C87E83B4E4DAA941BF&lt;br /&gt;
&lt;br /&gt;
===iBSS===&lt;br /&gt;
* '''IV''': F7ED98E14E9F7F01397639A4424EF175&lt;br /&gt;
* '''Key''': ABCC0848B65D7E2E675F8030EA37F325&lt;br /&gt;
&lt;br /&gt;
===kernelcache===&lt;br /&gt;
* '''IV''': 57D4E27152D39AF674492EB0A8252DE3&lt;br /&gt;
* '''Key''': 7C07730B6CEB8B217653FF5161988B24&lt;br /&gt;
&lt;br /&gt;
===LLB===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===recoverymode===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''':&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baker_8B117_(iPod2,1)&amp;diff=9132</id>
		<title>Baker 8B117 (iPod2,1)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baker_8B117_(iPod2,1)&amp;diff=9132"/>
		<updated>2010-09-10T02:45:27Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: New page: ==Decryption Keys== === Root Filesystem === * '''VFDecrypt''':   ===Update Ramdisk (018-7073-079.dmg)=== * '''IV''':  * '''Key''':   ===Restore Ramdisk (018-7103-078.dmg)=== * '''IV''': 58...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Decryption Keys==&lt;br /&gt;
=== Root Filesystem ===&lt;br /&gt;
* '''VFDecrypt''': &lt;br /&gt;
&lt;br /&gt;
===Update Ramdisk (018-7073-079.dmg)===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===Restore Ramdisk (018-7103-078.dmg)===&lt;br /&gt;
* '''IV''': 58DF0D0655BBDDA2A0F1C09333940701&lt;br /&gt;
* '''Key''': FBF443110EB11D8D1AACDBE39167DE09&lt;br /&gt;
&lt;br /&gt;
===applelogo===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===iBEC===&lt;br /&gt;
* '''IV''': 40CECF39BC971DCE828415C7DFFCE3EA&lt;br /&gt;
* '''Key''': 7341C6FB2CC09FE6D43067F7E426F708&lt;br /&gt;
&lt;br /&gt;
===iBoot===&lt;br /&gt;
* '''IV''': 07751C86D421A18D427AC7F94A74D747&lt;br /&gt;
* '''Key''': 0359D66DD638E5C87E83B4E4DAA941BF&lt;br /&gt;
&lt;br /&gt;
===iBSS===&lt;br /&gt;
* '''IV''': F7ED98E14E9F7F01397639A4424EF175&lt;br /&gt;
* '''Key''': ABCC0848B65D7E2E675F8030EA37F325&lt;br /&gt;
&lt;br /&gt;
===kernelcache===&lt;br /&gt;
* '''IV''': 57D4E27152D39AF674492EB0A8252DE3&lt;br /&gt;
* '''Key''': 7C07730B6CEB8B217653FF5161988B24&lt;br /&gt;
&lt;br /&gt;
===LLB===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''': &lt;br /&gt;
&lt;br /&gt;
===recoverymode===&lt;br /&gt;
* '''IV''': &lt;br /&gt;
* '''Key''':&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Payload&amp;diff=6750</id>
		<title>Payload</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Payload&amp;diff=6750"/>
		<updated>2010-06-28T04:46:01Z</updated>

		<summary type="html">&lt;p&gt;Eandrade: New page: unsigned code used to usual used to patch iboot, ibec, ibss, or llb&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;unsigned code used to usual used to patch iboot, ibec, ibss, or llb&lt;/div&gt;</summary>
		<author><name>Eandrade</name></author>
		
	</entry>
</feed>