<?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=Chpwn</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=Chpwn"/>
	<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/wiki/Special:Contributions/Chpwn"/>
	<updated>2026-05-14T07:53:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=40766</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=40766"/>
		<updated>2014-04-12T23:14:52Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Iptwiki.png|center]]&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
&lt;br /&gt;
== Jailbreak/Unlock Status ==&lt;br /&gt;
&amp;lt;!-- Do not merge cells unless they detail the same device type (i.e. Apple TV, etc.) --&amp;gt;&lt;br /&gt;
More information, including information for older devices, is available on the [[Firmware]] and [[Jailbreak]] pages.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size:1em; width:100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width:15%;&amp;quot; | [[Models|Device]]&lt;br /&gt;
! [[k66ap|Apple TV 2G]]&lt;br /&gt;
! [[Apple TV 3G]]&lt;br /&gt;
! [[iPhone 4]]&lt;br /&gt;
! [[iPad 2]] and newer&amp;lt;br /&amp;gt;[[iPad mini 1G]] and newer&amp;lt;br /&amp;gt;[[n94ap|iPhone 4S]] and newer&amp;lt;br /&amp;gt; [[iPod touch 5G]]&lt;br /&gt;
|-&lt;br /&gt;
! Latest [[firmware]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 6.1 &amp;lt;small&amp;gt;(Build 11D169b)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | 7.1 &amp;lt;small&amp;gt;(Build 11D167 or 11D169)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! [[Jailbreak]] available?&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
| {{partial|}} Tethered&lt;br /&gt;
| {{no}}&lt;br /&gt;
|-&lt;br /&gt;
! Software [[unlock]] available?&amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(if carrier locked)&amp;lt;/small&amp;gt;&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{n/a}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{no}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%; text-align:left; vertical-align:text-top;&amp;quot; | &lt;br /&gt;
== Software ==&lt;br /&gt;
* [[Apple Internal Apps]]&lt;br /&gt;
* [[:Category:File Formats|File formats]]&lt;br /&gt;
* [[/|Filesystem]]&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
** [[Beta Firmware]]&lt;br /&gt;
** [[OTA Updates]]&lt;br /&gt;
* [[iTunes]]&lt;br /&gt;
** [[iTunes Errors]]&lt;br /&gt;
** [[iTunes Modes]]&lt;br /&gt;
** [[MobileDevice Library]]&lt;br /&gt;
* [[Keys]]&lt;br /&gt;
** [[AES Keys]]&lt;br /&gt;
** [[CERT|Apple Certificate]]&lt;br /&gt;
** [[Baseband RSA Keys|RSA Keys]]&lt;br /&gt;
** [[Baseband TEA Keys|TEA Keys]]&lt;br /&gt;
** [[Firmware Keys]]&lt;br /&gt;
*** [[Decrypting Firmwares]]&lt;br /&gt;
** [[GID Key]]&lt;br /&gt;
** [[NCK]]&lt;br /&gt;
* [[Protocols]]&lt;br /&gt;
** [[Baseband Bootrom Protocol]]&lt;br /&gt;
** [[DFU (Protocol)|DFU]]&lt;br /&gt;
** [[Interactive Mode|Baseband Bootloader Protocol]]&lt;br /&gt;
** [[Normal Mode]]&lt;br /&gt;
** [[Recovery Mode (Protocols)|Recovery Mode]]&lt;br /&gt;
** [[Restore Mode]]&lt;br /&gt;
* [[System Log|System Log (syslog)]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Jailbreaks|Jailbreak Software]] ====&lt;br /&gt;
* [[Absinthe]]&lt;br /&gt;
* [[blackra1n]]&lt;br /&gt;
* [[Corona]]&lt;br /&gt;
* [[evasi0n]]&lt;br /&gt;
* [[evasi0n7]]&lt;br /&gt;
* [[Greenpois0n (jailbreak)|greenpois0n]]&lt;br /&gt;
* [[JailbreakMe]]&lt;br /&gt;
* [[limera1n]]&lt;br /&gt;
* [[p0sixspwn]]&lt;br /&gt;
* [[PwnageTool]]&lt;br /&gt;
* [[redsn0w]]&lt;br /&gt;
* [[Rocky Racoon]]&lt;br /&gt;
* [[Seas0nPass]]&lt;br /&gt;
* [[sn0wbreeze]]&lt;br /&gt;
* [[Spirit]]&lt;br /&gt;
* [[unthredera1n]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Patches|Patches]] ====&lt;br /&gt;
* [[Kernel Patches|Kernel]]&lt;br /&gt;
** [[AMFI Binary Trust Cache Patch]]&lt;br /&gt;
** [[PE i can has debugger Patch]]&lt;br /&gt;
** [[Sandbox Patch]]&lt;br /&gt;
** [[Vm map enter Patch]]&lt;br /&gt;
** [[Vm map protect Patch]]&lt;br /&gt;
* [[:Category:Ramdisk Patches|Ramdisk]]: [[ASR]]&lt;br /&gt;
&lt;br /&gt;
==== [[:Category:Exploits|Vulnerabilities and Exploits]] ====&lt;br /&gt;
* [[0x24000 Segment Overflow]] (24kpwn)&lt;br /&gt;
* [[BPF STX Kernel Write Exploit]]&lt;br /&gt;
* [[CVE-2013-0964]]&lt;br /&gt;
* [[HFS Heap Overflow]]&lt;br /&gt;
* [[HFS Legacy Volume Name Stack Buffer Overflow]] (feedface)&lt;br /&gt;
* [[Incomplete Codesign Exploit]]&lt;br /&gt;
* [[IOSurface Kernel Exploit]]&lt;br /&gt;
* [[Limera1n Exploit]]&lt;br /&gt;
* [[Malformed CFF Vulnerability]]&lt;br /&gt;
* [[MobileBackup Copy Exploit]]&lt;br /&gt;
* [[ndrv_setspec() Integer Overflow]]&lt;br /&gt;
* [[Packet Filter Kernel Exploit]]&lt;br /&gt;
* [[Racoon String Format Overflow Exploit]]&lt;br /&gt;
* [[SHA-1 Image Segment Overflow]] (SHAtter)&lt;br /&gt;
* [[usb_control_msg(0x21, 2) Exploit]]&lt;br /&gt;
* [[usb_control_msg(0xA1, 1) Exploit]] (steaks4uce)&lt;br /&gt;
* [[Symbolic Link Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
====Various Software====&lt;br /&gt;
* [[Cydia.app|Cydia]]&lt;br /&gt;
* [[EDA]]&lt;br /&gt;
* [[iDroid]]&lt;br /&gt;
* [[iFaith]]&lt;br /&gt;
* [[iPhone Tracker]]&lt;br /&gt;
* [[SemiRestore]]&lt;br /&gt;
* [[TinyUmbrella]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; text-align:left; vertical-align:text-top;&amp;quot; | &lt;br /&gt;
== Hardware ==&lt;br /&gt;
==== Devices ====&lt;br /&gt;
{{see also|Models|Prototypes}}&lt;br /&gt;
* [[iPhone]]&lt;br /&gt;
** iPhone ([[m68ap]])&lt;br /&gt;
** iPhone 3G ([[n82ap]])&lt;br /&gt;
** iPhone 3GS ([[n88ap]])&lt;br /&gt;
** [[iPhone 4]] ([[n90ap]], [[n90bap]], [[n92ap]])&lt;br /&gt;
** iPhone 4S ([[n94ap]])&lt;br /&gt;
** [[iPhone 5]] ([[n41ap]], [[n42ap]])&lt;br /&gt;
** [[iPhone 5c]] ([[n48ap]], [[n49ap]])&lt;br /&gt;
** [[iPhone 5s]] ([[n51ap]], [[n53ap]])&lt;br /&gt;
* [[iPod touch]]&lt;br /&gt;
** iPod touch ([[n45ap]])&lt;br /&gt;
** iPod touch 2G ([[n72ap]])&lt;br /&gt;
** iPod touch 3G ([[n18ap]])&lt;br /&gt;
** iPod touch 4G ([[n81ap]])&lt;br /&gt;
** [[iPod touch 5G]] ([[n78ap]], [[n78aap]])&lt;br /&gt;
* [[iPad]]&lt;br /&gt;
** iPad ([[k48ap]])&lt;br /&gt;
** [[iPad 2]] ([[k93ap]], [[k94ap]], [[k95ap]], [[k93aap]])&lt;br /&gt;
** [[iPad 3]] ([[j1ap]], [[j2ap]], [[j2aap]])&lt;br /&gt;
** [[iPad 4]] ([[p101ap]], [[p102ap]], [[p103ap]])&lt;br /&gt;
** [[iPad Air]] ([[j71ap]], [[j72ap]], [[j73ap]])&lt;br /&gt;
* [[iPad mini]]&lt;br /&gt;
** [[iPad mini 1G]] ([[p105ap]], [[p106ap]], [[p107ap]])&lt;br /&gt;
** [[iPad mini 2G]] ([[j85ap]], [[j86ap]], [[j87ap]])&lt;br /&gt;
* [[Apple TV]]&lt;br /&gt;
** Apple TV 2G ([[k66ap]])&lt;br /&gt;
** [[Apple TV 3G]] ([[j33ap]], [[j33iap]])&lt;br /&gt;
&lt;br /&gt;
==== [[Application Processor]]s ====&lt;br /&gt;
* [[S5L8900]] ([[m68ap|iPhone 2G]], [[n45ap|iPod touch 1G]], [[n82ap|iPhone 3G]])&lt;br /&gt;
* [[S5L8720]] ([[n72ap|iPod touch 2G]])&lt;br /&gt;
* [[S5L8920]] ([[n88ap|iPhone 3GS]])&lt;br /&gt;
* [[S5L8922]] ([[n18ap|iPod touch 3G]])&lt;br /&gt;
* [[S5L8930]] A4 ([[k48ap|iPad]], [[iPhone 4]], [[n81ap|iPod touch 4G]], [[k66ap|Apple TV 2G]])&lt;br /&gt;
* [[S5L8940]] A5 ([[iPad 2]], [[n94ap|iPhone 4S]])&lt;br /&gt;
* [[S5L8942]] A5 Rev A ([[j33ap|Apple TV 3G]], [[k93aap|iPad 2 (iPad2,4)]], [[iPod touch 5G]], [[iPad mini 1G]])&lt;br /&gt;
* [[S5L8945]] A5X ([[iPad 3]])&lt;br /&gt;
* [[S5L8947]] A5 Rev B ([[j33iap|Apple TV 3G (AppleTV3,2)]])&lt;br /&gt;
* [[S5L8950]] A6 ([[iPhone 5]], [[iPhone 5c]])&lt;br /&gt;
* [[S5L8955]] A6X ([[iPad 4]])&lt;br /&gt;
* [[S5L8960]] A7 ([[iPhone 5s]], [[iPad mini 2G]])&lt;br /&gt;
* [[S5L8965]] A7 Variant ([[iPad Air]])&lt;br /&gt;
&lt;br /&gt;
==== [[Baseband Device]]s ====&lt;br /&gt;
* [[S-Gold 2|PMB8876 or S-Gold 2]] ([[m68ap|iPhone]])&lt;br /&gt;
* [[X-Gold 608|PMB8878 or X-Gold 608]] ([[n82ap|iPhone 3G]], [[n88ap|iPhone 3GS]], [[k48ap|iPad]])&lt;br /&gt;
* [[XMM 6180|XMM6180 or X-Gold 618]] ([[iPhone 4]] ([[n90ap|iPhone3,1]] and [[n90bap|iPhone3,2]]), [[k94ap|iPad 2 (iPad2,2)]])&lt;br /&gt;
* [[MDM6600]] ([[n92ap|iPhone 4 (iPhone3,3)]], [[k95ap|iPad 2 (iPad2,3)]])&lt;br /&gt;
* [[MDM6610]] ([[n94ap|iPhone 4S]])&lt;br /&gt;
* [[MDM9x00]] ([[iPad 3]])&lt;br /&gt;
* [[MDM9615]] ([[iPhone 5]], [[iPad 4]], [[iPad mini 1G]], [[iPhone 5c]], [[iPhone 5s]], [[iPad Air]], [[iPad mini 2G]])&lt;br /&gt;
&lt;br /&gt;
==== [[Motion Processor|Motion Co-processors]] ====&lt;br /&gt;
* [[LPC18A1]] M7 ([[iPhone 5s]], [[iPad Air]], [[iPad mini 2G]])&lt;br /&gt;
&lt;br /&gt;
==== WLAN/[[Bluetooth]] ====&lt;br /&gt;
* [[Marvell 88x8686]]&lt;br /&gt;
* [[BlueCore 4]]&lt;br /&gt;
* [[BlueCore 6]]&lt;br /&gt;
* [[BCM4325]]&lt;br /&gt;
* [[BCM4329]]&lt;br /&gt;
* [[BCM4330]]&lt;br /&gt;
* [[BCM4334]]&lt;br /&gt;
* [[BCM43342]]&lt;br /&gt;
&lt;br /&gt;
==== [[Compass.app|Compass]] ====&lt;br /&gt;
* [[AKM8973]]&lt;br /&gt;
* [[AKM8975]]&lt;br /&gt;
* [[AK8963]]&lt;br /&gt;
&lt;br /&gt;
==== Other ====&lt;br /&gt;
* [[Accelerometer]]&lt;br /&gt;
* [[Gyroscope]]: [[AGD1 2022 FP6AQ]]&lt;br /&gt;
* Connectors: [[30-pin Connector|30-pin]], [[Lightning Connector|Lightning]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width:50%; text-align:left; vertical-align:text-top;&amp;quot; | &lt;br /&gt;
== Development ==&lt;br /&gt;
==== [[:Category:Hackers|iPhone Hackers]] ====&lt;br /&gt;
* [[User:comex|comex]]&lt;br /&gt;
* [[User:geohot|geohot]]&lt;br /&gt;
* [[User:MuscleNerd|MuscleNerd]]&lt;br /&gt;
* [[User:planetbeing|planetbeing]]&lt;br /&gt;
* [[User:posixninja|posixninja]]&lt;br /&gt;
* [[User:pod2g|pod2g]]&lt;br /&gt;
* [[Pimskeks]]&lt;br /&gt;
* [[User:iH8sn0w|iH8sn0w]]&lt;br /&gt;
* [[User:winocm|winocm]]&lt;br /&gt;
* [[saurik]]&lt;br /&gt;
&lt;br /&gt;
==== iPhone Hacker Teams ====&lt;br /&gt;
* [[Chronic Dev (team)|Chronic Dev]]&lt;br /&gt;
* [[iPhone Dev Team]]&lt;br /&gt;
* [[Dream Team]]&lt;br /&gt;
* [[Evad3rs|evad3rs]]&lt;br /&gt;
&lt;br /&gt;
==== Application Development ====&lt;br /&gt;
* [[Apple Certification Process]]&lt;br /&gt;
* [[Bypassing iPhone Code Signatures]]&lt;br /&gt;
* [[Distribution Methods]]&lt;br /&gt;
* [[/System/Library/Frameworks|Frameworks]]&lt;br /&gt;
* [[MobileDevice Library]]&lt;br /&gt;
* [[Mobile Substrate]]&lt;br /&gt;
* [[Toolchain]] (Includes tutorials)&lt;br /&gt;
* [[Toolchain 2.0]] (Includes tutorials)&lt;br /&gt;
* [http://iphonedevwiki.net iPhoneDevWiki]&lt;br /&gt;
&lt;br /&gt;
==== Application Copy Protection ====&lt;br /&gt;
* [[Application Structure and Signatures]]&lt;br /&gt;
* [[Bugging Debuggers]]&lt;br /&gt;
* [[Copy Protection Overview]]&lt;br /&gt;
* [[Defeating Cracks]]&lt;br /&gt;
* [[Mach-O Loading Process]]&lt;br /&gt;
&lt;br /&gt;
| style=&amp;quot;width:50%; text-align:left; vertical-align:text-top;&amp;quot; | &lt;br /&gt;
== Help ==&lt;br /&gt;
==== Guides ====&lt;br /&gt;
* [[Tutorials]]&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
&lt;br /&gt;
==== Definitions ====&lt;br /&gt;
* [[Activation]] and [[Hacktivation]]&lt;br /&gt;
* [[ASLR]]&lt;br /&gt;
* [[Baseband Device|Baseband]]&lt;br /&gt;
* [[Baseband Bootloader|Bootloader]]&lt;br /&gt;
* [[Bootchain]]&lt;br /&gt;
* [[Bootrom]] / [[VROM]]&lt;br /&gt;
* [[Bricked]]&lt;br /&gt;
* [[CHIPID]]&lt;br /&gt;
* [[DFU Mode]]&lt;br /&gt;
* [[Failbreak]]&lt;br /&gt;
* [[iBEC]]&lt;br /&gt;
* [[iBoot (Bootloader)|iBoot]]&lt;br /&gt;
* [[iBSS]]&lt;br /&gt;
* [[IMG3 File Format|IMG3]] tags&lt;br /&gt;
** [[BORD]]&lt;br /&gt;
** [[CERT]]&lt;br /&gt;
** [[CHIP]]&lt;br /&gt;
** [[CPID]]&lt;br /&gt;
** [[DATA]]&lt;br /&gt;
** [[ECID]]&lt;br /&gt;
** [[KBAG]]&lt;br /&gt;
** [[PROD]]&lt;br /&gt;
** [[SDOM]]&lt;br /&gt;
** [[SEPO]]&lt;br /&gt;
** [[SHSH]]&lt;br /&gt;
** [[TYPE]]&lt;br /&gt;
** [[VERS]]&lt;br /&gt;
* [[Jailbreak]]&lt;br /&gt;
** [[Tethered jailbreak]]&lt;br /&gt;
** [[Untethered jailbreak]]&lt;br /&gt;
* [[Kernel]]&lt;br /&gt;
* [[launchd]]&lt;br /&gt;
* [[LLB]]&lt;br /&gt;
* [[NAND]]&lt;br /&gt;
* [[NOR]]&lt;br /&gt;
* [[NORID]]&lt;br /&gt;
* [[Unlock]]&lt;br /&gt;
* [[Userland]]&lt;br /&gt;
|}&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=26776</id>
		<title>User:Chpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=26776"/>
		<updated>2012-09-23T23:59:25Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:chpwn}}&lt;br /&gt;
Grant Paul, known as chpwn (pronounced &amp;quot;cee-aitch pone&amp;quot;), lives in San Francisco. He was somewhat involved in the development of [[Spirit]], [[Star]] and [[Greenpois0n (jailbreak)|greenpois0n]], and worked with [[User:Westbaer|westbaer]] on Star's website, [[JailbreakMe]].&lt;br /&gt;
&lt;br /&gt;
He also has developed tweaks available in [[Cydia Application|Cydia]], such as ProSwitcher (with Ryan Petrich), Infinidock, Infiniboard, Infinifolders, Gridlock. He has also done some work on [[Cydia Application|Cydia]] itself (update to version 1.1.1).&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://chpwn.com/ website]&lt;br /&gt;
* [http://chpwn.com/blog/ blog]&lt;br /&gt;
* [https://twitter.com/chpwn twitter]&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=10983</id>
		<title>User:Chpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=10983"/>
		<updated>2010-10-22T07:21:35Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:chpwn}}&lt;br /&gt;
Grant Paul, known as chpwn, lives in San Francisco. He was somewhat involved in the development of [[Spirit]], [[Star]] and [[greenpois0n]], and worked with [[User:Westbaer|westbaer]] on Star's website, [[JailbreakMe]].&lt;br /&gt;
&lt;br /&gt;
He also has developed tweaks available in [[Cydia Application|Cydia]], such as ProSwitcher.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.ievolution.ca/iphone/iphone-dev-interview-grant-paul-chpwn Interview in iEvolution.ca]&lt;br /&gt;
* [http://chpwn.com/blog/ His blog]&lt;br /&gt;
* [https://twitter.com/chpwn chpwn on Twitter]&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=9126</id>
		<title>User:Chpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=9126"/>
		<updated>2010-09-10T01:48:16Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: reduced importance of myself&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:chpwn}}&lt;br /&gt;
Grant Paul, known as chpwn, lives in San Francisco. He was somewhat involved in the development of [[Spirit]] and [[Star]], and worked with [[User:Westbaer|westbaer]] on Star's website, [[Jailbreakme]].&lt;br /&gt;
&lt;br /&gt;
He also has developed tweaks available in [[Cydia]], such as ProSwitcher.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.ievolution.ca/iphone/iphone-dev-interview-grant-paul-chpwn Interview in iEvolution.ca]&lt;br /&gt;
* [http://chpwn.com/blog/ His blog]&lt;br /&gt;
* [https://twitter.com/chpwn chpwn on Twitter]&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=9125</id>
		<title>Usb control msg(0x21, 2) Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=9125"/>
		<updated>2010-09-10T01:47:43Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: fix :&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:usb_control_msg(0x21, 2) Exploit}}&lt;br /&gt;
A null pointer dereference vulnerability exists in the versions of [[iBoot]]/[[iBSS]]/[[iBEC]] found in firmwares 3.1/3.1.1 and 3.1.2 (and presumably everything before) on all iDevices. It was fixed in [[iBoot-636.66.33]], which was included with 3.1.3. [[N88ap|iPhone 3GS]] ([[iBoot-359.3.2|new bootrom]]) and [[N18ap|iPod touch 3G]] owners who saved their [[SHSH]] for the aforementioned firmwares, and MC-model [[N72ap|iPod touch 2G]] owners can use it for a [[tethered jailbreak]] on 4.0. [http://ih8sn0wforums.com/viewtopic.php?f=56&amp;amp;t=1928] [http://blog.qwertyoruiop.com/?p=154]&lt;br /&gt;
&lt;br /&gt;
== Credit (Alphabetical) ==&lt;br /&gt;
* '''vulnerability''': [[pod2g]] and [[westbaer]], also discovered independently by [[gray]], also discovered independently by [[geohot]]&lt;br /&gt;
* '''exploitation''': [[ius]], [[chronic]], [[pod2g]], and [[posixninja]], also [[geohot]]&lt;br /&gt;
* '''payload:''' [[geohot]] ([[blackra1n]]), [[chronic]] and [[posixninja]] ([[greenpois0n]])&lt;br /&gt;
&lt;br /&gt;
== Vulnerability ==&lt;br /&gt;
'''[[pod2g]]''' and '''[[westbaer]]''' discovered, via some reversing + fuzzing, you could overwrite the content of 0x0 thanks to Apple not checking the contents of a register they should have, shown in the disassm below. This can be exploited because MMU maps whatever is running ([[LLB]], [[iBoot]], etc.) to 0x0 so that if an exception vector is triggered, it would jump to the one designed to be used with what is running, versus jumping to what is normally located at 0x0, the [[S5L8920 (Bootrom)|bootrom]].&lt;br /&gt;
&lt;br /&gt;
All you need to do is send the following (assuming you're using libusb 0.1.x)...&lt;br /&gt;
 usb_control_msg(iDev, 0x21, 2, 0, 0, 0, 0, 1000);&lt;br /&gt;
And thanks to our vulnerability, it will do this:&lt;br /&gt;
 memcpy(0, LOAD_ADDR, 0x2000);&lt;br /&gt;
&lt;br /&gt;
As you can see, we now have full control over the first 0x2000 bytes of iBoot.&lt;br /&gt;
&lt;br /&gt;
=== Disassm ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// R5: a pointer to a buffer is here if requesttype==0xA1.&lt;br /&gt;
//     however, if requesttype==0x21, R5 is undefined.&lt;br /&gt;
&lt;br /&gt;
SRAM:22009ED2                 code_1                                  ; CODE XREF: handle_file_io_control_req+62�j&lt;br /&gt;
SRAM:22009ED2 014 36 49                       LDR     R1, =usb_file_loadaddr&lt;br /&gt;
SRAM:22009ED4 014 36 4B                       LDR     R3, =usb_file_offset&lt;br /&gt;
SRAM:22009ED6 014 28 68                       LDR     R0, [R5]&lt;br /&gt;
SRAM:22009ED8 014 09 68                       LDR     R1, [R1]&lt;br /&gt;
SRAM:22009EDA 014 1B 68                       LDR     R3, [R3]&lt;br /&gt;
SRAM:22009EDC 014 22 1C                       ADDS    R2, R4, #0&lt;br /&gt;
SRAM:22009EDE 014 C9 18                       ADDS    R1, R1, R3&lt;br /&gt;
SRAM:22009EE0 014 07 F0 94 EF                 BLX     memcpy&lt;br /&gt;
SRAM:22009EE4 014 00 2E                       CMP     R6, #0&lt;br /&gt;
SRAM:22009EE6 014 53 D0                       BEQ     return&lt;br /&gt;
SRAM:22009EE8 014 01 23                       MOVS    R3, #1&lt;br /&gt;
SRAM:22009EEA 014 33 60                       STR     R3, [R6]&lt;br /&gt;
SRAM:22009EEC 014 50 E0                       B       return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
By using a [http://www.juniper.net/solutions/literature/white_papers/Vector-Rewrite-Attack.pdf vector rewrite attack], it's possible to replace the address of the irq vector handler (0x38) within a 0x2000 [[iBoot]] chunk that we send, with the location of the payload to be executed. Although, since we are hijacking the irq exception vector, you must disable interrupts first. Here is the basic procedure:&lt;br /&gt;
* Call enter_critical_task(); disabling interrupts, so that your code can reliably execute.&lt;br /&gt;
* Restore 0x38 (irq handler) with the original irq vector address&lt;br /&gt;
* '''DO WHAT YOU WANT AT THIS POINT, YOU MAY NOT USE INTERRUPTS'''.&lt;br /&gt;
* Call exit_critical_task(); re-enabling interrupts.&lt;br /&gt;
* Call the irq handler so that the interrupt request that you hijacked can execute.&lt;br /&gt;
&lt;br /&gt;
=== Roadblocks ===&lt;br /&gt;
If what you send is not 0x2000 bytes, the remainder is filled in with zeroes, which is bad. Due to this, you need to restore the first 0x2000 of iBoot before your payload returns execution to [[iBoot]].  Also you must disable interrupts, to prevent iBoot from calling the irq vector while your payload is being executed. Because of this, it rules out the possibility of reading the 0x2000 iBoot chunk needed from [[NOR]], from within iBoot itself, since nor_read(); requires interrupts.&lt;br /&gt;
&lt;br /&gt;
One way to get around the need of sending the 0x2000 [[iBoot]] chunk is to hook the image_load(); function in the [[LLB]] which is sitting intact in memory. This was successfully done in [[blackra1n]]. &lt;br /&gt;
&lt;br /&gt;
The [[PwnageTool]] method requires an [[IPSW]] to be input in order to create a custom firmware anyway, so the 0x2000 chunk is not an issue. It can just be copied from the [[iBoot]] in the [[IPSW]].&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
* [[blackra1n]]&lt;br /&gt;
* [[redsn0w]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=9124</id>
		<title>Usb control msg(0x21, 2) Exploit</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Usb_control_msg(0x21,_2)_Exploit&amp;diff=9124"/>
		<updated>2010-09-10T01:45:26Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: add geohot&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:usb_control_msg(0x21, 2) Exploit}}&lt;br /&gt;
A null pointer dereference vulnerability exists in the versions of [[iBoot]]/[[iBSS]]/[[iBEC]] found in firmwares 3.1/3.1.1 and 3.1.2 (and presumably everything before) on all iDevices. It was fixed in [[iBoot-636.66.33]], which was included with 3.1.3. [[N88ap|iPhone 3GS]] ([[iBoot-359.3.2|new bootrom]]) and [[N18ap|iPod touch 3G]] owners who saved their [[SHSH]] for the aforementioned firmwares, and MC-model [[N72ap|iPod touch 2G]] owners can use it for a [[tethered jailbreak]] on 4.0. [http://ih8sn0wforums.com/viewtopic.php?f=56&amp;amp;t=1928] [http://blog.qwertyoruiop.com/?p=154]&lt;br /&gt;
&lt;br /&gt;
== Credit (Alphabetical) ==&lt;br /&gt;
* '''vulnerability''': [[pod2g]] and [[westbaer]], also discovered independently by [[gray]], also discovered independently by [[geohot]]&lt;br /&gt;
* '''exploitation''': [[ius]], [[chronic]], [[pod2g]], and [[posixninja]], also [[geohot]]&lt;br /&gt;
* '''payload:''': [[geohot]] ([[blackra1n]]), [[chronic]] and [[posixninja]] ([[greenpois0n]])&lt;br /&gt;
&lt;br /&gt;
== Vulnerability ==&lt;br /&gt;
'''[[pod2g]]''' and '''[[westbaer]]''' discovered, via some reversing + fuzzing, you could overwrite the content of 0x0 thanks to Apple not checking the contents of a register they should have, shown in the disassm below. This can be exploited because MMU maps whatever is running ([[LLB]], [[iBoot]], etc.) to 0x0 so that if an exception vector is triggered, it would jump to the one designed to be used with what is running, versus jumping to what is normally located at 0x0, the [[S5L8920 (Bootrom)|bootrom]].&lt;br /&gt;
&lt;br /&gt;
All you need to do is send the following (assuming you're using libusb 0.1.x)...&lt;br /&gt;
 usb_control_msg(iDev, 0x21, 2, 0, 0, 0, 0, 1000);&lt;br /&gt;
And thanks to our vulnerability, it will do this:&lt;br /&gt;
 memcpy(0, LOAD_ADDR, 0x2000);&lt;br /&gt;
&lt;br /&gt;
As you can see, we now have full control over the first 0x2000 bytes of iBoot.&lt;br /&gt;
&lt;br /&gt;
=== Disassm ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// R5: a pointer to a buffer is here if requesttype==0xA1.&lt;br /&gt;
//     however, if requesttype==0x21, R5 is undefined.&lt;br /&gt;
&lt;br /&gt;
SRAM:22009ED2                 code_1                                  ; CODE XREF: handle_file_io_control_req+62�j&lt;br /&gt;
SRAM:22009ED2 014 36 49                       LDR     R1, =usb_file_loadaddr&lt;br /&gt;
SRAM:22009ED4 014 36 4B                       LDR     R3, =usb_file_offset&lt;br /&gt;
SRAM:22009ED6 014 28 68                       LDR     R0, [R5]&lt;br /&gt;
SRAM:22009ED8 014 09 68                       LDR     R1, [R1]&lt;br /&gt;
SRAM:22009EDA 014 1B 68                       LDR     R3, [R3]&lt;br /&gt;
SRAM:22009EDC 014 22 1C                       ADDS    R2, R4, #0&lt;br /&gt;
SRAM:22009EDE 014 C9 18                       ADDS    R1, R1, R3&lt;br /&gt;
SRAM:22009EE0 014 07 F0 94 EF                 BLX     memcpy&lt;br /&gt;
SRAM:22009EE4 014 00 2E                       CMP     R6, #0&lt;br /&gt;
SRAM:22009EE6 014 53 D0                       BEQ     return&lt;br /&gt;
SRAM:22009EE8 014 01 23                       MOVS    R3, #1&lt;br /&gt;
SRAM:22009EEA 014 33 60                       STR     R3, [R6]&lt;br /&gt;
SRAM:22009EEC 014 50 E0                       B       return&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
By using a [http://www.juniper.net/solutions/literature/white_papers/Vector-Rewrite-Attack.pdf vector rewrite attack], it's possible to replace the address of the irq vector handler (0x38) within a 0x2000 [[iBoot]] chunk that we send, with the location of the payload to be executed. Although, since we are hijacking the irq exception vector, you must disable interrupts first. Here is the basic procedure:&lt;br /&gt;
* Call enter_critical_task(); disabling interrupts, so that your code can reliably execute.&lt;br /&gt;
* Restore 0x38 (irq handler) with the original irq vector address&lt;br /&gt;
* '''DO WHAT YOU WANT AT THIS POINT, YOU MAY NOT USE INTERRUPTS'''.&lt;br /&gt;
* Call exit_critical_task(); re-enabling interrupts.&lt;br /&gt;
* Call the irq handler so that the interrupt request that you hijacked can execute.&lt;br /&gt;
&lt;br /&gt;
=== Roadblocks ===&lt;br /&gt;
If what you send is not 0x2000 bytes, the remainder is filled in with zeroes, which is bad. Due to this, you need to restore the first 0x2000 of iBoot before your payload returns execution to [[iBoot]].  Also you must disable interrupts, to prevent iBoot from calling the irq vector while your payload is being executed. Because of this, it rules out the possibility of reading the 0x2000 iBoot chunk needed from [[NOR]], from within iBoot itself, since nor_read(); requires interrupts.&lt;br /&gt;
&lt;br /&gt;
One way to get around the need of sending the 0x2000 [[iBoot]] chunk is to hook the image_load(); function in the [[LLB]] which is sitting intact in memory. This was successfully done in [[blackra1n]]. &lt;br /&gt;
&lt;br /&gt;
The [[PwnageTool]] method requires an [[IPSW]] to be input in order to create a custom firmware anyway, so the 0x2000 chunk is not an issue. It can just be copied from the [[iBoot]] in the [[IPSW]].&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
* [[blackra1n]]&lt;br /&gt;
* [[redsn0w]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Exploits]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=8340</id>
		<title>User:Chpwn</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=User:Chpwn&amp;diff=8340"/>
		<updated>2010-08-15T05:32:19Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: I HATE IT WHEN PEOPLE GET MY NAME BACKWARDS and other stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:chpwn}}&lt;br /&gt;
Grant Paul, known as chpwn, lives in San Francisco. He was involved in the development of [[Spirit]] and [[Star]], and has more recently contributed to [[Cydia]]. He is not member of the [[iPhone Dev Team]] according to their blog. He also has developed tweaks available in Cydia.&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.ievolution.ca/iphone/iphone-dev-interview-grant-paul-chpwn Interview in iEvolution.ca]&lt;br /&gt;
* [http://chpwn.com/blog/ His blog]&lt;br /&gt;
* [http://www.twitter.com/chpwn chpwn on Twitter]&lt;br /&gt;
[[Category:Hackers]]&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=5694</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=5694"/>
		<updated>2009-11-25T08:57:50Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: ikee-virus is NOT HARDWARE. NO. Bye.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Logo by iHassan --&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Iptwiki.jpg‎]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;!-- Added a split column information box- computid --&amp;gt;&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;background-color:orange;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:orange; text-align:center; width:25%;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;[[Jailbreak iPhone2,1 / iPod3,1|Find bootrom exploit allowing unsigned code exec via USB (S5L8920+)]]&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:orange; text-align:center; width:25%;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;[[Unlock 2.0|Break Chain of Trust (X-Gold 608)]]&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{col-begin}}&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingA|Software}}&lt;br /&gt;
* [[/|Filesystem]]&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Keys]]&lt;br /&gt;
** [[AES Keys]]&lt;br /&gt;
** [[Apple Certificate]]&lt;br /&gt;
** [[Baseband RSA Keys|RSA Keys]]&lt;br /&gt;
** [[Baseband TEA Keys|TEA Keys]]&lt;br /&gt;
** [[NCK]]&lt;br /&gt;
* [[Protocols]]&lt;br /&gt;
** [[Normal Mode]]&lt;br /&gt;
** [[Recovery Mode (Protocols)|Recovery Mode]]&lt;br /&gt;
** [[Restore Mode]]&lt;br /&gt;
** [[DFU (Protocol)|DFU]]&lt;br /&gt;
** [[Baseband Bootrom Protocol]]&lt;br /&gt;
** [[Interactive Mode|Baseband Bootloader Protocol]]&lt;br /&gt;
* [[System Log|System Log (syslog)]]&lt;br /&gt;
* [[Ikee-virus]]&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingB|Hardware}}&lt;br /&gt;
====iPhone====&lt;br /&gt;
* [[m68ap|iPhone (m68ap)]]&lt;br /&gt;
* [[n82ap|iPhone 3G (n82ap)]]&lt;br /&gt;
* [[N88ap|iPhone 3GS (n88ap)]]&lt;br /&gt;
&lt;br /&gt;
====iPod Touch====&lt;br /&gt;
* [[n45ap|iPod touch (n45ap)]]&lt;br /&gt;
* [[n72ap|iPod touch 2nd Generation (n72ap)]]&lt;br /&gt;
* [[N18ap|iPod touch 3rd Generation (n18ap)]]&lt;br /&gt;
&lt;br /&gt;
====Processors====&lt;br /&gt;
* [[S5L8900]] ([[iPhone]], [[iPod Touch]], [[iPhone 3G]])&lt;br /&gt;
* [[S5L8720]] ([[iPod touch 2G]])&lt;br /&gt;
* [[S5L8920]] ([[N88AP|iPhone 3GS]])&lt;br /&gt;
* [[S5L8922]] ([[N18ap|iPod Touch 3G]])&lt;br /&gt;
* [[Baseband Device]]&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
{{col-end}}&lt;br /&gt;
&lt;br /&gt;
{{col-begin}}&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingA|Development}}&lt;br /&gt;
====Application Development====&lt;br /&gt;
* [[Toolchain]] (Includes tutorials)&lt;br /&gt;
* [[Toolchain 2.0]] (Includes tutorials)&lt;br /&gt;
* [[Frameworks]]&lt;br /&gt;
* [[MobileDevice Library]]&lt;br /&gt;
* [[Apple Certification Process]]&lt;br /&gt;
* [[Bypassing iPhone Code Signatures]]&lt;br /&gt;
* [[Distribution Methods]]&lt;br /&gt;
&lt;br /&gt;
====Application Copy Protection====&lt;br /&gt;
* [[Copy Protection Overview]]&lt;br /&gt;
* [[Application Structure and Signatures]]&lt;br /&gt;
* [[Mach-O Loading Process]]&lt;br /&gt;
* [[Bugging Debuggers]]&lt;br /&gt;
* [[Defeating Cracks]]&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingB|Help}}&lt;br /&gt;
====Guides====&lt;br /&gt;
* [[Tutorials]]&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
&lt;br /&gt;
====Definitions====&lt;br /&gt;
* [[Glossary]]&lt;br /&gt;
* [[Jailbreak]]&lt;br /&gt;
* [[Activation]]&lt;br /&gt;
* [[Unlock]]&lt;br /&gt;
* [[Baseband Device|Baseband]]&lt;br /&gt;
* [[Baseband Bootloader|Bootloader]]&lt;br /&gt;
* [[DFU]]&lt;br /&gt;
* [[iBoot]]&lt;br /&gt;
* [[iBEC]]&lt;br /&gt;
* [[iBSS]]&lt;br /&gt;
* [[NORID]]&lt;br /&gt;
* [[CHIPID]]&lt;br /&gt;
{{col-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;background-color:orange;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:orange; text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Disclaimer]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Bugging_Debuggers&amp;diff=5596</id>
		<title>Bugging Debuggers</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Bugging_Debuggers&amp;diff=5596"/>
		<updated>2009-11-08T06:44:10Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: Worked around.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IMPORTANT NOTE: This trick has been worked around by pirates. Don't rely on it!'''&lt;br /&gt;
&lt;br /&gt;
== The ptrace() Trick ==&lt;br /&gt;
&lt;br /&gt;
GDB is the stock debugger used by most hackers. On darwin (OSX and iPhone OS), GDB will not attach to processes that have asked not to be attached to. Instead, it will crash or crash the target process. This is useful for defeating Crackulous and most tutorial-followers.&lt;br /&gt;
&lt;br /&gt;
On OSX, one would need the following piece of code, as close as possible to the start of main().&lt;br /&gt;
&lt;br /&gt;
 ptrace(PT_DENY_ATTACH, 0, 0, 0);&lt;br /&gt;
&lt;br /&gt;
A couple of includes are also in order:&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;sys/ptrace.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On the iPhone, however, &amp;lt;sys/ptrace.h&amp;gt; is not available. Fortunately, that can be worked around:&lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;dlfcn.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);&lt;br /&gt;
 #if !defined(PT_DENY_ATTACH)&lt;br /&gt;
 #define PT_DENY_ATTACH 31&lt;br /&gt;
 #endif  // !defined(PT_DENY_ATTACH)&lt;br /&gt;
 &lt;br /&gt;
 void disable_gdb() {&lt;br /&gt;
   void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);&lt;br /&gt;
   ptrace_ptr_t ptrace_ptr = dlsym(handle, &amp;quot;ptrace&amp;quot;);&lt;br /&gt;
   ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);&lt;br /&gt;
   dlclose(handle);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The following are needed to complete the code, and are left as an exercise for the reader:&lt;br /&gt;
* disable_gdb() should return for debug builds (hint: preprocessor macros)&lt;br /&gt;
* the string &amp;quot;ptrace&amp;quot; is a dead giveaway, and should probably be obfuscated a bit&lt;br /&gt;
&lt;br /&gt;
Apple approved [http://github.com/costan/zergsupport/blob/master/ZergSupport/CryptoSupport/ZNDebugIntegrity.m this implementation], when it was submitted with [http://istockplay.com StockPlay] version 0.5.&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
	<entry>
		<id>https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=5592</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://www.theiphonewiki.com/w/index.php?title=Main_Page&amp;diff=5592"/>
		<updated>2009-11-08T04:45:17Z</updated>

		<summary type="html">&lt;p&gt;Chpwn: New, nicer design. Revert if not liked, but I think its better and cleaner...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- Logo by iHassan --&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:Iptwiki.jpg‎]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;!-- Added a split column information box- computid --&amp;gt;&lt;br /&gt;
{{:Main Page/Welcome}}&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;background-color:orange;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:orange; text-align:center; width:25%;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;[[Jailbreak iPhone2,1 / iPod3,1|Find bootrom exploit allowing unsigned code exec via USB (S5L8920+)]]&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color:orange; text-align:center; width:25%;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;[[Unlock 2.0|Break Chain of Trust (X-Gold 608)]]&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{col-begin}}&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingA|Software}}&lt;br /&gt;
* [[/|Filesystem]]&lt;br /&gt;
* [[Firmware]]&lt;br /&gt;
* [[Keys]]&lt;br /&gt;
** [[AES Keys]]&lt;br /&gt;
** [[Apple Certificate]]&lt;br /&gt;
** [[Baseband RSA Keys|RSA Keys]]&lt;br /&gt;
** [[Baseband TEA Keys|TEA Keys]]&lt;br /&gt;
** [[NCK]]&lt;br /&gt;
* [[Protocols]]&lt;br /&gt;
** [[Normal Mode]]&lt;br /&gt;
** [[Recovery Mode (Protocols)|Recovery Mode]]&lt;br /&gt;
** [[Restore Mode]]&lt;br /&gt;
** [[DFU (Protocol)|DFU]]&lt;br /&gt;
** [[Baseband Bootrom Protocol]]&lt;br /&gt;
** [[Interactive Mode|Baseband Bootloader Protocol]]&lt;br /&gt;
* [[System Log|System Log (syslog)]]&lt;br /&gt;
&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingB|Hardware}}&lt;br /&gt;
====iPhone====&lt;br /&gt;
* [[m68ap|iPhone (m68ap)]]&lt;br /&gt;
* [[n82ap|iPhone 3G (n82ap)]]&lt;br /&gt;
* [[N88ap|iPhone 3GS (n88ap)]]&lt;br /&gt;
&lt;br /&gt;
====iPod Touch====&lt;br /&gt;
* [[n45ap|iPod touch (n45ap)]]&lt;br /&gt;
* [[n72ap|iPod touch 2nd Generation (n72ap)]]&lt;br /&gt;
* [[N18ap|iPod touch 3rd Generation (n18ap)]]&lt;br /&gt;
&lt;br /&gt;
====Processors====&lt;br /&gt;
* [[S5L8900]] ([[iPhone]], [[iPod Touch]], [[iPhone 3G]])&lt;br /&gt;
* [[S5L8720]] ([[iPod touch 2G]])&lt;br /&gt;
* [[S5L8920]] ([[N88AP|iPhone 3GS]])&lt;br /&gt;
* [[S5L8922]] ([[N18ap|iPod Touch 3G]])&lt;br /&gt;
* [[Baseband Device]]&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
* [[Bluetooth]]&lt;br /&gt;
{{col-end}}&lt;br /&gt;
&lt;br /&gt;
{{col-begin}}&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingA|Development}}&lt;br /&gt;
====Application Development====&lt;br /&gt;
* [[Toolchain]] (Includes tutorials)&lt;br /&gt;
* [[Toolchain 2.0]] (Includes tutorials)&lt;br /&gt;
* [[Frameworks]]&lt;br /&gt;
* [[MobileDevice Library]]&lt;br /&gt;
* [[Apple Certification Process]]&lt;br /&gt;
* [[Bypassing iPhone Code Signatures]]&lt;br /&gt;
* [[Distribution Methods]]&lt;br /&gt;
&lt;br /&gt;
====Application Copy Protection====&lt;br /&gt;
* [[Copy Protection Overview]]&lt;br /&gt;
* [[Application Structure and Signatures]]&lt;br /&gt;
* [[Mach-O Loading Process]]&lt;br /&gt;
* [[Bugging Debuggers]]&lt;br /&gt;
* [[Defeating Cracks]]&lt;br /&gt;
{{col-2}}&lt;br /&gt;
{{HeadingB|Help}}&lt;br /&gt;
====Guides====&lt;br /&gt;
* [[Tutorials]]&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
&lt;br /&gt;
====Definitions====&lt;br /&gt;
* [[Glossary]]&lt;br /&gt;
* [[Jailbreak]]&lt;br /&gt;
* [[Activation]]&lt;br /&gt;
* [[Unlock]]&lt;br /&gt;
* [[Baseband Device|Baseband]]&lt;br /&gt;
* [[Baseband Bootloader|Bootloader]]&lt;br /&gt;
* [[DFU]]&lt;br /&gt;
* [[iBoot]]&lt;br /&gt;
* [[iBEC]]&lt;br /&gt;
* [[iBSS]]&lt;br /&gt;
* [[NORID]]&lt;br /&gt;
* [[CHIPID]]&lt;br /&gt;
{{col-end}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;4&amp;quot; style=&amp;quot;background-color:orange; text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Disclaimer]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC____NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Chpwn</name></author>
		
	</entry>
</feed>