<?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=Apocolipse</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=Apocolipse"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Apocolipse"/>
	<updated>2026-04-22T19:36:27Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=AES_Keys&amp;diff=14953</id>
		<title>AES Keys</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=AES_Keys&amp;diff=14953"/>
		<updated>2011-01-14T10:04:08Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The SoC in each device have an AES coprocessor with the [[GID-key]] and [[UID-key]] built in.&lt;br /&gt;
&lt;br /&gt;
==Running The Engine==&lt;br /&gt;
Currently, there are several ways to run the hardware AES engine:&lt;br /&gt;
* Use the [http://forums.openpwn.org/viewtopic.php?f=8&amp;amp;t=19&amp;amp;p=101#p101 AES payload] released on OpenPwn.&lt;br /&gt;
* Patch [[iBoot (Bootloader)|iBoot]] to jump to aes_decrypt.&lt;br /&gt;
* Use [http://github.com/planetbeing/iphonelinux/tree/master OpenIBoot].&lt;br /&gt;
* Use the crypto bundle provided in [[XPwn]] to utilize it via userland. This method requires a kernel patch.&lt;br /&gt;
* Use [[Greenpois0n]] console. &lt;br /&gt;
&lt;br /&gt;
If you want to decrypt [[IMG3 File Format|IMG3]] files you need to use this. The [[GID-key]] currently has not been extracted from the phone, so the only way to use it is on the phone itself.&lt;br /&gt;
&lt;br /&gt;
See [[Easier method of getting Img3 Key / IV]] for an [[iBoot (Bootloader)|iBoot]] patch.&lt;br /&gt;
&lt;br /&gt;
==Key 0x837==&lt;br /&gt;
Generated by encrypting 345A2D6C5050D058780DA431F0710E15 with the [[S5L8900]] [[GID-key]] to get 188458A6D15034DFE386F23B61D43774  &lt;br /&gt;
&lt;br /&gt;
It is used as the encryption key for [[S5L File Formats#IMG2|IMG2 files]]. With the introduction of [[IMG3 File Format|IMG3]] in 2.0, [[KBAG]]s are now used instead of the 0x837 key.&lt;br /&gt;
&lt;br /&gt;
==Using [[Greenpois0n]] to get the keys==&lt;br /&gt;
* Run steps 1 thru 5 from [[PwnStrap]]&lt;br /&gt;
* Use 'xpwntool file.img3 /dev/null' to extract the KBAG hex string from ''file.img3''&lt;br /&gt;
* Start Greenpois0n console: irecovery -s&lt;br /&gt;
* Execute 'go aes dec _KBAG_STRING_' in irecovery console&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
[http://wikee.iphwn.org/s5l8900:encryption_keys Dev Team wiki]&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=10960</id>
		<title>PurpleRestore</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=PurpleRestore&amp;diff=10960"/>
		<updated>2010-10-22T04:58:56Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''PurpleRestore'' is a cross-platform tool used for flashing iDevices. Barely anything is known about it, this tool provides far more customization than [[iTunes]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PurpleRestore is made entirely of 2 stacked rainbows on top of each other, a &amp;quot;Double Rainbow&amp;quot; if you will, but not across the sky, across your iphone.  PurpleRestore will give reacharounds.  PurpleRestore has the ability to install Windows 7 on your iDevice.  PurpleRestore won an Emmy in 2003 for Best Supporting Actor in an independant film.&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Greenpois0n_(jailbreak)&amp;diff=10563</id>
		<title>Greenpois0n (jailbreak)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Greenpois0n_(jailbreak)&amp;diff=10563"/>
		<updated>2010-10-15T04:16:01Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: /* Decompiled Exploit Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gp.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
Greenpois0n is both a cross-platform hacker toolkit (that helps users to find their own exploits for jailbreaks, write custom ramdisks, and create custom firmwares) as well as a [[jailbreak]] tool for iDevices written by [[Chronic Dev]].                                                                                                                                                                                                                                           &lt;br /&gt;
&lt;br /&gt;
== Current Toolset ==&lt;br /&gt;
&lt;br /&gt;
*[http://github.com/chronicdev/cyanide GreenPois0n Cyanide]: [[iBoot]] payload toolkit to help developers discover new vulnerabilities and design super fast, low-level iBoot jailbreaks and exploit payloads, much like the way [[blackra1n]]/[[purplera1n]] works.&lt;br /&gt;
*[http://github.com/chronicdev/libdioxin GreenPois0n Dioxin]: MobileDevice toolkit designed to help developers design awesome userland jailbreaks, like how [[Spirit]] works.&lt;br /&gt;
*[http://github.com/chronicdev/anthrax GreenPois0n Anthrax]: iPhone ramdisk toolkit to help developers design extremely stable and portable ramdisk jailbreaks, much like the same way [[QuickPwn]]/[[redsn0w]] works.&lt;br /&gt;
*[http://github.com/chronicdev/arsenic GreenPois0n Arsenic]: custom firmware toolkit to help developers design jailbreaks to help preserve [[Baseband Firmware|baseband]] and keep unlocks, much in the same way [[PwnageTool]]/[[sn0wbreeze]] works.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
Greenpois0n was originally written using two exploits: [[SHAtter]] (a [[bootrom]] [[exploit]]) as well as a userland [[exploit]] provided by [[User:Comex|Comex]] to make the jailbreak [[untethered jailbreak|untethered]]. A release date of 10/10/10 10:10:10 AM (GMT) was announced, as well as the list of supported devices. Due to the nature of [[SHAtter]], only iDevices using the [[S5L8930|A4 Processor]] were supported.&lt;br /&gt;
[[user:geohot|geohot]] later released another jailbreak ([[limera1n]] using a different [[bootrom]] [[exploit]]) on 9 October 2010, which led to a delay in greenpois0n's release (to implement geohot's exploit, not SHAtter).&lt;br /&gt;
&lt;br /&gt;
=== Controversy ===&lt;br /&gt;
There was much controversy surrounding the sudden release of [[limera1n]] and the motives behind it. The main reasons for the [[limera1n]] release were:&lt;br /&gt;
&lt;br /&gt;
#Use an exploit that Apple already knew about (newer [[iBoot]]s shows the exploit patched) &lt;br /&gt;
#Supports more iDevices than [[SHAtter]]&lt;br /&gt;
#Hopefully save the [[SHAtter]] [[bootrom]] [[exploit]] for future iDevices&lt;br /&gt;
&lt;br /&gt;
The reason for this is [[bootrom]] [[exploit]]s are not patchable with software updates. It requires new hardware to fix the security hole. Since the [[limera1n]] hole was already discovered and patched by Apple, it benefits the community if [[SHAtter]] is saved in hopes of using it with new hardware, like the 5th generation iPhone/iPod touch and the iPad 2G.&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
[[N90ap|iPhone 4]] with [[greenpois0n]] output (via [[irecovery]]):&lt;br /&gt;
 &lt;br /&gt;
 Attempting to initialize greenpois0n&lt;br /&gt;
 Initializing commands&lt;br /&gt;
 Searching for cmd_ramdisk&lt;br /&gt;
 Found cmd_ramdisk string at 0x8401c7ac&lt;br /&gt;
 Found cmd_ramdisk reference at 0x84000d64&lt;br /&gt;
 Found cmd_ramdisk function at 0x84000cd1&lt;br /&gt;
 Initializing patches&lt;br /&gt;
 Initializing memory&lt;br /&gt;
 Initializing aes&lt;br /&gt;
 Searching for aes_crypto_cmd&lt;br /&gt;
 Found aes_crypto_cmd string at 0x84021a8c&lt;br /&gt;
 Found aes_crypto_cmd reference at 0x84017bb8&lt;br /&gt;
 Found aes_crypto_cmd fnction at 0x84017b51&lt;br /&gt;
 Initializing bdev&lt;br /&gt;
 Initializing image&lt;br /&gt;
 Initializing nvram&lt;br /&gt;
 Initializing kernel&lt;br /&gt;
 Greenpois0n initialized&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Decompiled Exploit Code==&lt;br /&gt;
Apocolipse has provided a decompiled version of the exploit function (note. it is incomplete, x86 decompilers can only do so much)&lt;br /&gt;
&lt;br /&gt;
  signed int __cdecl upload_exploit()&lt;br /&gt;
  {&lt;br /&gt;
    int v0; // eax@1&lt;br /&gt;
    signed int v1; // edx@2&lt;br /&gt;
    int v2; // ebx@2&lt;br /&gt;
    int v3; // eax@4&lt;br /&gt;
    char *v4; // eax@5&lt;br /&gt;
    unsigned int v5; // ebx@8&lt;br /&gt;
    int v6; // ecx@14&lt;br /&gt;
    signed int result; // eax@15&lt;br /&gt;
    signed int v8; // ST38_4@18&lt;br /&gt;
    int v9; // eax@28&lt;br /&gt;
    signed int v10; // [sp+38h] [bp-1030h]@4&lt;br /&gt;
    signed int v11; // [sp+3Ch] [bp-102Ch]@2&lt;br /&gt;
    char v12; // [sp+4Ch] [bp-101Ch]@3&lt;br /&gt;
    char v13; // [sp+84Ch] [bp-81Ch]@5&lt;br /&gt;
    int v14; // [sp+104Ch] [bp-1Ch]@1&lt;br /&gt;
&lt;br /&gt;
    v14 = *MK_FP(__GS__, 20);&lt;br /&gt;
    v0 = *(_DWORD *)(device + 16);&lt;br /&gt;
    if ( v0 == 8930 )&lt;br /&gt;
    {&lt;br /&gt;
      v11 = 174080;&lt;br /&gt;
      v1 = -2080198655;&lt;br /&gt;
      v2 = -2080129124;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      v1 = -2080231423;&lt;br /&gt;
      v11 = 141312;&lt;br /&gt;
      v2 = (((v0 == 8920) - 1) &amp;amp; 0xFFFFFFF4) - 2080161884;&lt;br /&gt;
    }&lt;br /&gt;
    memset(&amp;amp;v12, 0, 0x800u);&lt;br /&gt;
    memcpy(&amp;amp;v12, exploit, 0x230u);&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
    {&lt;br /&gt;
      v8 = v1;&lt;br /&gt;
      ((void (__cdecl *)(int, signed int, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Resetting device counters\n&amp;quot;);&lt;br /&gt;
      v1 = v8;&lt;br /&gt;
    }&lt;br /&gt;
    v10 = v1;&lt;br /&gt;
    v3 = irecv_reset_counters(client);&lt;br /&gt;
    if ( v3 )&lt;br /&gt;
    {&lt;br /&gt;
      irecv_strerror(v3);&lt;br /&gt;
      __fprintf_chk(stderr, 1, &amp;amp;aCannotFindS[12]);&lt;br /&gt;
      result = -1;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      memset(&amp;amp;v13, -858993460, 0x800u);&lt;br /&gt;
      v4 = &amp;amp;v13;&lt;br /&gt;
      do&lt;br /&gt;
      {&lt;br /&gt;
        *(_DWORD *)v4 = 1029;&lt;br /&gt;
        *((_DWORD *)v4 + 1) = 257;&lt;br /&gt;
        *((_DWORD *)v4 + 2) = v10;&lt;br /&gt;
        *((_DWORD *)v4 + 3) = v2;&lt;br /&gt;
        v4 += 64;&lt;br /&gt;
      }&lt;br /&gt;
      while ( (int *)v4 != &amp;amp;v14 );&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
        ((void (__cdecl *)(int, signed int, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending chunk headers\n&amp;quot;);&lt;br /&gt;
      v5 = 0;&lt;br /&gt;
      irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
      memset(&amp;amp;v13, -858993460, 0x800u);&lt;br /&gt;
      do&lt;br /&gt;
      {&lt;br /&gt;
        v5 += 2048;&lt;br /&gt;
        irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
      }&lt;br /&gt;
      while ( v5 &amp;lt; v11 );&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
        ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending exploit payload\n&amp;quot;);&lt;br /&gt;
      irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v12, 2048);&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
        ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending fake data\n&amp;quot;);&lt;br /&gt;
      memset(&amp;amp;v13, -1145324613, 0x800u);&lt;br /&gt;
      irecv_control_transfer(client, 161, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
      irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
        ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Executing exploit\n&amp;quot;);&lt;br /&gt;
      irecv_control_transfer(client, 33, 2, 0, 0, &amp;amp;v13, 0);&lt;br /&gt;
      irecv_reset(client);&lt;br /&gt;
      irecv_finish_transfer(client);&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
      {&lt;br /&gt;
        ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Exploit sent\n&amp;quot;);&lt;br /&gt;
        if ( libpois0n_debug )&lt;br /&gt;
          ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Reconnecting to device\n&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      client = (void *)irecv_reconnect(client, 2u);&lt;br /&gt;
      if ( client )&lt;br /&gt;
      {&lt;br /&gt;
        result = 0;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        if ( libpois0n_debug )&lt;br /&gt;
        {&lt;br /&gt;
          v9 = irecv_strerror(0);&lt;br /&gt;
          __fprintf_chk(stderr, 1, &amp;amp;aCannotFindS[12], v9);&lt;br /&gt;
        }&lt;br /&gt;
        __fprintf_chk(stderr, 1, &amp;quot;Unable to reconnect\n&amp;quot;);&lt;br /&gt;
        result = -1;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if ( *MK_FP(__GS__, 20) != v14 )&lt;br /&gt;
      __stack_chk_fail(v6, *MK_FP(__GS__, 20) ^ v14);&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Greenpois0n_(jailbreak)&amp;diff=10562</id>
		<title>Greenpois0n (jailbreak)</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Greenpois0n_(jailbreak)&amp;diff=10562"/>
		<updated>2010-10-15T04:12:54Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gp.png|180px|right]]&lt;br /&gt;
&lt;br /&gt;
Greenpois0n is both a cross-platform hacker toolkit (that helps users to find their own exploits for jailbreaks, write custom ramdisks, and create custom firmwares) as well as a [[jailbreak]] tool for iDevices written by [[Chronic Dev]].                                                                                                                                                                                                                                           &lt;br /&gt;
&lt;br /&gt;
== Current Toolset ==&lt;br /&gt;
&lt;br /&gt;
*[http://github.com/chronicdev/cyanide GreenPois0n Cyanide]: [[iBoot]] payload toolkit to help developers discover new vulnerabilities and design super fast, low-level iBoot jailbreaks and exploit payloads, much like the way [[blackra1n]]/[[purplera1n]] works.&lt;br /&gt;
*[http://github.com/chronicdev/libdioxin GreenPois0n Dioxin]: MobileDevice toolkit designed to help developers design awesome userland jailbreaks, like how [[Spirit]] works.&lt;br /&gt;
*[http://github.com/chronicdev/anthrax GreenPois0n Anthrax]: iPhone ramdisk toolkit to help developers design extremely stable and portable ramdisk jailbreaks, much like the same way [[QuickPwn]]/[[redsn0w]] works.&lt;br /&gt;
*[http://github.com/chronicdev/arsenic GreenPois0n Arsenic]: custom firmware toolkit to help developers design jailbreaks to help preserve [[Baseband Firmware|baseband]] and keep unlocks, much in the same way [[PwnageTool]]/[[sn0wbreeze]] works.&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
Greenpois0n was originally written using two exploits: [[SHAtter]] (a [[bootrom]] [[exploit]]) as well as a userland [[exploit]] provided by [[User:Comex|Comex]] to make the jailbreak [[untethered jailbreak|untethered]]. A release date of 10/10/10 10:10:10 AM (GMT) was announced, as well as the list of supported devices. Due to the nature of [[SHAtter]], only iDevices using the [[S5L8930|A4 Processor]] were supported.&lt;br /&gt;
[[user:geohot|geohot]] later released another jailbreak ([[limera1n]] using a different [[bootrom]] [[exploit]]) on 9 October 2010, which led to a delay in greenpois0n's release (to implement geohot's exploit, not SHAtter).&lt;br /&gt;
&lt;br /&gt;
=== Controversy ===&lt;br /&gt;
There was much controversy surrounding the sudden release of [[limera1n]] and the motives behind it. The main reasons for the [[limera1n]] release were:&lt;br /&gt;
&lt;br /&gt;
#Use an exploit that Apple already knew about (newer [[iBoot]]s shows the exploit patched) &lt;br /&gt;
#Supports more iDevices than [[SHAtter]]&lt;br /&gt;
#Hopefully save the [[SHAtter]] [[bootrom]] [[exploit]] for future iDevices&lt;br /&gt;
&lt;br /&gt;
The reason for this is [[bootrom]] [[exploit]]s are not patchable with software updates. It requires new hardware to fix the security hole. Since the [[limera1n]] hole was already discovered and patched by Apple, it benefits the community if [[SHAtter]] is saved in hopes of using it with new hardware, like the 5th generation iPhone/iPod touch and the iPad 2G.&lt;br /&gt;
&lt;br /&gt;
=== Output ===&lt;br /&gt;
[[N90ap|iPhone 4]] with [[greenpois0n]] output (via [[irecovery]]):&lt;br /&gt;
 &lt;br /&gt;
 Attempting to initialize greenpois0n&lt;br /&gt;
 Initializing commands&lt;br /&gt;
 Searching for cmd_ramdisk&lt;br /&gt;
 Found cmd_ramdisk string at 0x8401c7ac&lt;br /&gt;
 Found cmd_ramdisk reference at 0x84000d64&lt;br /&gt;
 Found cmd_ramdisk function at 0x84000cd1&lt;br /&gt;
 Initializing patches&lt;br /&gt;
 Initializing memory&lt;br /&gt;
 Initializing aes&lt;br /&gt;
 Searching for aes_crypto_cmd&lt;br /&gt;
 Found aes_crypto_cmd string at 0x84021a8c&lt;br /&gt;
 Found aes_crypto_cmd reference at 0x84017bb8&lt;br /&gt;
 Found aes_crypto_cmd fnction at 0x84017b51&lt;br /&gt;
 Initializing bdev&lt;br /&gt;
 Initializing image&lt;br /&gt;
 Initializing nvram&lt;br /&gt;
 Initializing kernel&lt;br /&gt;
 Greenpois0n initialized&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Decompiled Exploit Code==&lt;br /&gt;
Apocolipse has provided a decompiled version of the exploit function (note. it is incomplete, x86 decompilers can only do so much)&lt;br /&gt;
[code]&lt;br /&gt;
signed int __cdecl upload_exploit()&lt;br /&gt;
{&lt;br /&gt;
  int v0; // eax@1&lt;br /&gt;
  signed int v1; // edx@2&lt;br /&gt;
  int v2; // ebx@2&lt;br /&gt;
  int v3; // eax@4&lt;br /&gt;
  char *v4; // eax@5&lt;br /&gt;
  unsigned int v5; // ebx@8&lt;br /&gt;
  int v6; // ecx@14&lt;br /&gt;
  signed int result; // eax@15&lt;br /&gt;
  signed int v8; // ST38_4@18&lt;br /&gt;
  int v9; // eax@28&lt;br /&gt;
  signed int v10; // [sp+38h] [bp-1030h]@4&lt;br /&gt;
  signed int v11; // [sp+3Ch] [bp-102Ch]@2&lt;br /&gt;
  char v12; // [sp+4Ch] [bp-101Ch]@3&lt;br /&gt;
  char v13; // [sp+84Ch] [bp-81Ch]@5&lt;br /&gt;
  int v14; // [sp+104Ch] [bp-1Ch]@1&lt;br /&gt;
&lt;br /&gt;
  v14 = *MK_FP(__GS__, 20);&lt;br /&gt;
  v0 = *(_DWORD *)(device + 16);&lt;br /&gt;
  if ( v0 == 8930 )&lt;br /&gt;
  {&lt;br /&gt;
    v11 = 174080;&lt;br /&gt;
    v1 = -2080198655;&lt;br /&gt;
    v2 = -2080129124;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    v1 = -2080231423;&lt;br /&gt;
    v11 = 141312;&lt;br /&gt;
    v2 = (((v0 == 8920) - 1) &amp;amp; 0xFFFFFFF4) - 2080161884;&lt;br /&gt;
  }&lt;br /&gt;
  memset(&amp;amp;v12, 0, 0x800u);&lt;br /&gt;
  memcpy(&amp;amp;v12, exploit, 0x230u);&lt;br /&gt;
  if ( libpois0n_debug )&lt;br /&gt;
  {&lt;br /&gt;
    v8 = v1;&lt;br /&gt;
    ((void (__cdecl *)(int, signed int, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Resetting device counters\n&amp;quot;);&lt;br /&gt;
    v1 = v8;&lt;br /&gt;
  }&lt;br /&gt;
  v10 = v1;&lt;br /&gt;
  v3 = irecv_reset_counters(client);&lt;br /&gt;
  if ( v3 )&lt;br /&gt;
  {&lt;br /&gt;
    irecv_strerror(v3);&lt;br /&gt;
    __fprintf_chk(stderr, 1, &amp;amp;aCannotFindS[12]);&lt;br /&gt;
    result = -1;&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    memset(&amp;amp;v13, -858993460, 0x800u);&lt;br /&gt;
    v4 = &amp;amp;v13;&lt;br /&gt;
    do&lt;br /&gt;
    {&lt;br /&gt;
      *(_DWORD *)v4 = 1029;&lt;br /&gt;
      *((_DWORD *)v4 + 1) = 257;&lt;br /&gt;
      *((_DWORD *)v4 + 2) = v10;&lt;br /&gt;
      *((_DWORD *)v4 + 3) = v2;&lt;br /&gt;
      v4 += 64;&lt;br /&gt;
    }&lt;br /&gt;
    while ( (int *)v4 != &amp;amp;v14 );&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
      ((void (__cdecl *)(int, signed int, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending chunk headers\n&amp;quot;);&lt;br /&gt;
    v5 = 0;&lt;br /&gt;
    irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
    memset(&amp;amp;v13, -858993460, 0x800u);&lt;br /&gt;
    do&lt;br /&gt;
    {&lt;br /&gt;
      v5 += 2048;&lt;br /&gt;
      irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
    }&lt;br /&gt;
    while ( v5 &amp;lt; v11 );&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
      ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending exploit payload\n&amp;quot;);&lt;br /&gt;
    irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v12, 2048);&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
      ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Sending fake data\n&amp;quot;);&lt;br /&gt;
    memset(&amp;amp;v13, -1145324613, 0x800u);&lt;br /&gt;
    irecv_control_transfer(client, 161, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
    irecv_control_transfer(client, 33, 1, 0, 0, &amp;amp;v13, 2048);&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
      ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Executing exploit\n&amp;quot;);&lt;br /&gt;
    irecv_control_transfer(client, 33, 2, 0, 0, &amp;amp;v13, 0);&lt;br /&gt;
    irecv_reset(client);&lt;br /&gt;
    irecv_finish_transfer(client);&lt;br /&gt;
    if ( libpois0n_debug )&lt;br /&gt;
    {&lt;br /&gt;
      ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Exploit sent\n&amp;quot;);&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
        ((void (__cdecl *)(_DWORD, _DWORD, _DWORD))__fprintf_chk)(stderr, 1, &amp;quot;Reconnecting to device\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    client = (void *)irecv_reconnect(client, 2u);&lt;br /&gt;
    if ( client )&lt;br /&gt;
    {&lt;br /&gt;
      result = 0;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      if ( libpois0n_debug )&lt;br /&gt;
      {&lt;br /&gt;
        v9 = irecv_strerror(0);&lt;br /&gt;
        __fprintf_chk(stderr, 1, &amp;amp;aCannotFindS[12], v9);&lt;br /&gt;
      }&lt;br /&gt;
      __fprintf_chk(stderr, 1, &amp;quot;Unable to reconnect\n&amp;quot;);&lt;br /&gt;
      result = -1;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  if ( *MK_FP(__GS__, 20) != v14 )&lt;br /&gt;
    __stack_chk_fail(v6, *MK_FP(__GS__, 20) ^ v14);&lt;br /&gt;
  return result;&lt;br /&gt;
}&lt;br /&gt;
[/code]&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Android&amp;diff=6134</id>
		<title>Talk:Android</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Android&amp;diff=6134"/>
		<updated>2010-04-23T06:10:04Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: /* This is just a suggestion for anyone intending to do this. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Easy Stuff ==&lt;br /&gt;
*Virtual buttons have been &amp;quot;put down&amp;quot; in favor for such a combination (subject to change): &lt;br /&gt;
&lt;br /&gt;
Tap Home Button -&amp;gt; Menu. &lt;br /&gt;
&lt;br /&gt;
Hold Home Button 1s -&amp;gt; Home screen.    &lt;br /&gt;
&lt;br /&gt;
Hold Home Button 3s (or however long is standard in Android for this) -&amp;gt; Task Switcher.  &lt;br /&gt;
&lt;br /&gt;
Lock Button -&amp;gt; Back.&lt;br /&gt;
&lt;br /&gt;
Hold Lock Button -&amp;gt; Sleep.&lt;br /&gt;
&lt;br /&gt;
==== This is just a suggestion for anyone intending to do this. ====&lt;br /&gt;
 --&amp;gt; Courtesy BHSPitMonkey&lt;br /&gt;
&lt;br /&gt;
Firmware Extraction:  Simple extractor + injector to add firmware to images&lt;br /&gt;
    3.x.x Firmware locations:&lt;br /&gt;
        /private/var/stash/share/firmware/multitouch/iPhone.mtprop&lt;br /&gt;
        /usr/share/firmware/multitouch/iPhone.mtprops &lt;br /&gt;
        base64 encoded&lt;br /&gt;
&lt;br /&gt;
    2.x.x Firmware:&lt;br /&gt;
        Run as root on iPhone, over SSH:&lt;br /&gt;
        (Requires iokittools, coreutils, vim)&lt;br /&gt;
        REVISED to avoid ugly hard-coded byte offsets:&lt;br /&gt;
        -&lt;br /&gt;
        ioreg -l -w 0 | grep '&amp;quot;Firmware&amp;quot; =' | cut -d '&amp;lt;' -f2 | cut -d '&amp;gt;' -f1 | xxd -r -ps - zephyr_main.bin&lt;br /&gt;
        ioreg -l -w 0 | grep '&amp;quot;A-Speed Firmware&amp;quot; =' | cut -d '&amp;lt;' -f2 | cut -d '&amp;gt;' -f1 | xxd -r -ps - zephyr_aspeed.bin&lt;br /&gt;
~~ Courtesy of Apocolipse&lt;br /&gt;
&lt;br /&gt;
== Harder Stuff ==&lt;br /&gt;
*Just making the section for you, remove when actually starting a discussion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Porting ==&lt;br /&gt;
*Just making the section for you, remove when actually starting a discussion.&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:Android&amp;diff=6131</id>
		<title>Talk:Android</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:Android&amp;diff=6131"/>
		<updated>2010-04-23T06:03:01Z</updated>

		<summary type="html">&lt;p&gt;Apocolipse: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Easy Stuff ==&lt;br /&gt;
*Virtual buttons have been &amp;quot;put down&amp;quot; in favor for such a combination (subject to change): &lt;br /&gt;
&lt;br /&gt;
Tap Home Button -&amp;gt; Menu. &lt;br /&gt;
&lt;br /&gt;
Hold Home Button 1s -&amp;gt; Home screen.    &lt;br /&gt;
&lt;br /&gt;
Hold Home Button 3s (or however long is standard in Android for this) -&amp;gt; Task Switcher.  &lt;br /&gt;
&lt;br /&gt;
Lock Button -&amp;gt; Back.&lt;br /&gt;
&lt;br /&gt;
Hold Lock Button -&amp;gt; Sleep.&lt;br /&gt;
&lt;br /&gt;
==== This is just a suggestion for anyone intending to do this. ====&lt;br /&gt;
 --&amp;gt; Courtesy BHSPitMonkey&lt;br /&gt;
&lt;br /&gt;
Firmware Extraction:  Simple extractor + injector to add firmware to images&lt;br /&gt;
    3.x.x Firmware locations:&lt;br /&gt;
        /private/var/stash/share/firmware/multitouch/iPhone.mtprop&lt;br /&gt;
        /usr/share/firmware/multitouch/iPhone.mtprops &lt;br /&gt;
        base64 encoded&lt;br /&gt;
&lt;br /&gt;
    2.x.x Firmware:&lt;br /&gt;
        Run as root on iPhone, over SSH:&lt;br /&gt;
        (Requires iokittools, coreutils, vim)&lt;br /&gt;
&lt;br /&gt;
        REVISED to avoid ugly hard-coded byte offsets:&lt;br /&gt;
&lt;br /&gt;
        ioreg -l -w 0 | grep '&amp;quot;Firmware&amp;quot; =' | cut -d '&amp;lt;' -f2 | cut -d '&amp;gt;' -f1 | xxd -r -ps - zephyr_main.bin&lt;br /&gt;
        ioreg -l -w 0 | grep '&amp;quot;A-Speed Firmware&amp;quot; =' | cut -d '&amp;lt;' -f2 | cut -d '&amp;gt;' -f1 | xxd -r -ps - zephyr_aspeed.bin&lt;br /&gt;
~~ Courtesy of Apocolipse  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harder Stuff ==&lt;br /&gt;
*Just making the section for you, remove when actually starting a discussion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Porting ==&lt;br /&gt;
*Just making the section for you, remove when actually starting a discussion.&lt;/div&gt;</summary>
		<author><name>Apocolipse</name></author>
		
	</entry>
</feed>