Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Now uses the new cross platform C based dripwn binary. Much, much fas…

…ter.
  • Loading branch information...
commit c2265ff741e4a9b147abfeea67a1364c56f6ba7b 1 parent a71c7a5
James Munnelly authored
2  Dripwn/Dripwn-Info.plist
View
@@ -19,7 +19,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleShortVersionString</key>
- <string>1.0.2</string>
+ <string>1.1</string>
<key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>CFBundleVersion</key>
53 Dripwn/Dripwn.xcodeproj/James.mode1v3
View
@@ -271,9 +271,7 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>4</integer>
- <integer>3</integer>
- <integer>0</integer>
+ <integer>16</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
@@ -296,7 +294,7 @@
<real>186</real>
</array>
<key>RubberWindowFrame</key>
- <string>331 242 788 504 0 0 1280 778 </string>
+ <string>328 244 788 504 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -324,24 +322,24 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>1ADB8FB011862DFE005141D3</string>
+ <string>1AA9B81E1187AE8B00DA1E28</string>
<key>history</key>
<array>
- <string>1A2973341184D1C600BFB38E</string>
<string>1A2973D81184E3B900BFB38E</string>
<string>1A2974521184EDE600BFB38E</string>
<string>1A0755851184FB7600636616</string>
<string>1AD3E6AB11857D8E0059FB49</string>
<string>1AD3E6CB1185811A0059FB49</string>
- <string>1AD3E70B118585EC0059FB49</string>
<string>1ADB8F791185FCB2005141D3</string>
<string>1ADB8F851185FE05005141D3</string>
<string>1ADB8F861185FE05005141D3</string>
<string>1ADB8F871185FE05005141D3</string>
<string>1ADB8F881185FE05005141D3</string>
<string>1ADB8F891185FE05005141D3</string>
- <string>1ADB8F8A1185FE05005141D3</string>
- <string>1ADB8F971185FE4D005141D3</string>
+ <string>1AA9B7CE1187A87600DA1E28</string>
+ <string>1AA9B7CF1187A87600DA1E28</string>
+ <string>1AA9B7D01187A87600DA1E28</string>
+ <string>1AA9B8121187AC4400DA1E28</string>
</array>
</dict>
<key>SplitCount</key>
@@ -353,14 +351,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {580, 200}}</string>
+ <string>{{0, 0}, {580, 163}}</string>
<key>RubberWindowFrame</key>
- <string>331 242 788 504 0 0 1280 778 </string>
+ <string>328 244 788 504 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>200pt</string>
+ <string>163pt</string>
</dict>
<dict>
<key>BecomeActive</key>
@@ -375,14 +373,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 205}, {580, 258}}</string>
+ <string>{{0, 168}, {580, 295}}</string>
<key>RubberWindowFrame</key>
- <string>331 242 788 504 0 0 1280 778 </string>
+ <string>328 244 788 504 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
- <string>258pt</string>
+ <string>295pt</string>
</dict>
</array>
<key>Proportion</key>
@@ -401,9 +399,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>1ADB8FB111862DFE005141D3</string>
+ <string>1AA9B81F1187AE8B00DA1E28</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>1ADB8FB211862DFE005141D3</string>
+ <string>1AA9B8201187AE8B00DA1E28</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -541,11 +539,12 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
+ <string>1CD10A99069EF8BA00B06720</string>
<string>1AB4220B1182183900CCFBA0</string>
<string>/Users/James/iphonelinux/Dripwn/Dripwn.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>331 242 788 504 0 0 1280 778 </string>
+ <string>328 244 788 504 0 0 1280 778 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -622,7 +621,7 @@
<key>TableOfContents</key>
<array>
<string>1AB4220B1182183900CCFBA0</string>
- <string>1ADB8FB311862DFE005141D3</string>
+ <string>1AA9B8211187AE8B00DA1E28</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@@ -744,13 +743,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>1ADB8F9B1185FE4D005141D3</string>
+ <string>1AA9B8221187AE8B00DA1E28</string>
<string>1C162984064C10D400B95A72</string>
- <string>1ADB8F9C1185FE4D005141D3</string>
- <string>1ADB8F9D1185FE4D005141D3</string>
- <string>1ADB8F9E1185FE4D005141D3</string>
- <string>1ADB8F9F1185FE4D005141D3</string>
- <string>1ADB8FA01185FE4D005141D3</string>
+ <string>1AA9B8231187AE8B00DA1E28</string>
+ <string>1AA9B8241187AE8B00DA1E28</string>
+ <string>1AA9B8251187AE8B00DA1E28</string>
+ <string>1AA9B8261187AE8B00DA1E28</string>
+ <string>1AA9B8271187AE8B00DA1E28</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -914,7 +913,7 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>1AD3E66D11857B200059FB49</string>
+ <string>1AA9B7D81187A87600DA1E28</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
@@ -924,7 +923,7 @@
<key>WindowToolGUID</key>
<string>1C78EAAD065D492600B07095</string>
<key>WindowToolIsVisible</key>
- <false/>
+ <true/>
</dict>
<dict>
<key>Identifier</key>
188 Dripwn/Dripwn.xcodeproj/James.pbxuser
View
@@ -2,7 +2,7 @@
{
089C165DFE840E0CC02AAC07 /* English */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {519, 190}}";
+ sepNavIntBoundsRect = "{{0, 0}, {519, 144}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 45}";
};
@@ -20,29 +20,19 @@
1A296CB91184B5CC00BFB38E /* IPSW.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {898, 600}}";
- sepNavSelRange = "{477, 0}";
- sepNavVisRange = "{0, 477}";
+ sepNavSelRange = "{223, 0}";
+ sepNavVisRange = "{0, 256}";
sepNavWindowFrame = "{{38, 24}, {957, 728}}";
};
};
1A296CBA1184B5CC00BFB38E /* IPSW.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1937, 2197}}";
- sepNavSelRange = "{1724, 0}";
- sepNavVisRange = "{0, 1957}";
- sepNavWindowFrame = "{{234, 50}, {957, 728}}";
+ sepNavIntBoundsRect = "{{0, 0}, {1699, 936}}";
+ sepNavSelRange = "{653, 0}";
+ sepNavVisRange = "{122, 1573}";
+ sepNavWindowFrame = "{{194, 50}, {957, 728}}";
};
};
- 1A2973341184D1C600BFB38E /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1A296CB91184B5CC00BFB38E /* IPSW.h */;
- name = "IPSW.h: 8";
- rLen = 0;
- rLoc = 125;
- rType = 0;
- vrLen = 311;
- vrLoc = 0;
- };
1A2973BC1184E2D700BFB38E /* NSData+Base64.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {768, 494}}";
@@ -84,6 +74,60 @@
sepNavWindowFrame = "{{15, 45}, {957, 728}}";
};
};
+ 1AA9B7CE1187A87600DA1E28 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1A296CB91184B5CC00BFB38E /* IPSW.h */;
+ name = "IPSW.h: 8";
+ rLen = 0;
+ rLoc = 125;
+ rType = 0;
+ vrLen = 78;
+ vrLoc = 399;
+ };
+ 1AA9B7CF1187A87600DA1E28 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1A296CBA1184B5CC00BFB38E /* IPSW.m */;
+ name = "IPSW.m: 71";
+ rLen = 0;
+ rLoc = 2289;
+ rType = 0;
+ vrLen = 283;
+ vrLoc = 125;
+ };
+ 1AA9B7D01187A87600DA1E28 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ name = "InfoPlist.strings: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 45;
+ vrLoc = 0;
+ };
+ 1AA9B8121187AC4400DA1E28 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 8D1107310486CEB800E47090 /* Dripwn-Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ LSMinimumSystemVersion,
+ );
+ name = "/Users/James/iphonelinux/Dripwn/Dripwn-Info.plist";
+ rLen = 0;
+ rLoc = 9223372036854775808;
+ };
+ 1AA9B81E1187AE8B00DA1E28 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 8D1107310486CEB800E47090 /* Dripwn-Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ LSMinimumSystemVersion,
+ );
+ name = "/Users/James/iphonelinux/Dripwn/Dripwn-Info.plist";
+ rLen = 0;
+ rLoc = 9223372036854775807;
+ };
1AB422001182183400CCFBA0 /* Dripwn */ = {
isa = PBXExecutable;
activeArgIndices = (
@@ -162,16 +206,6 @@
vrLen = 390;
vrLoc = 0;
};
- 1AD3E70B118585EC0059FB49 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1A296CBA1184B5CC00BFB38E /* IPSW.m */;
- name = "IPSW.m: 195";
- rLen = 0;
- rLoc = 7012;
- rType = 0;
- vrLen = 358;
- vrLoc = 6186;
- };
1ADB8F791185FCB2005141D3 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1AD3E69A11857D290059FB49 /* CocoaCryptoHashing.m */;
@@ -236,52 +270,6 @@
rLen = 0;
rLoc = 9223372036854775808;
};
- 1ADB8F8A1185FE05005141D3 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 089C165DFE840E0CC02AAC07 /* English */;
- name = "InfoPlist.strings: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 45;
- vrLoc = 0;
- };
- 1ADB8F8C1185FE05005141D3 /* PlistBookmark */ = {
- isa = PlistBookmark;
- fRef = 8D1107310486CEB800E47090 /* Dripwn-Info.plist */;
- fallbackIsa = PBXBookmark;
- isK = 0;
- kPath = (
- LSMinimumSystemVersion,
- );
- name = "/Users/James/iphonelinux/Dripwn/Dripwn-Info.plist";
- rLen = 0;
- rLoc = 9223372036854775808;
- };
- 1ADB8F971185FE4D005141D3 /* PlistBookmark */ = {
- isa = PlistBookmark;
- fRef = 8D1107310486CEB800E47090 /* Dripwn-Info.plist */;
- fallbackIsa = PBXBookmark;
- isK = 0;
- kPath = (
- LSMinimumSystemVersion,
- );
- name = "/Users/James/iphonelinux/Dripwn/Dripwn-Info.plist";
- rLen = 0;
- rLoc = 9223372036854775808;
- };
- 1ADB8FB011862DFE005141D3 /* PlistBookmark */ = {
- isa = PlistBookmark;
- fRef = 8D1107310486CEB800E47090 /* Dripwn-Info.plist */;
- fallbackIsa = PBXBookmark;
- isK = 0;
- kPath = (
- LSMinimumSystemVersion,
- );
- name = "/Users/James/iphonelinux/Dripwn/Dripwn-Info.plist";
- rLen = 0;
- rLoc = 9223372036854775807;
- };
256AC3D80F4B6AC300CF3369 /* DripwnAppDelegate.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {519, 273}}";
@@ -359,6 +347,18 @@
PBXFileDataSource_Target_ColumnID,
);
};
+ PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 200,
+ 355,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFindDataSource_MessageID,
+ PBXFindDataSource_LocationID,
+ );
+ };
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
@@ -381,27 +381,26 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 294006234;
- PBXWorkspaceStateSaveDate = 294006234;
+ PBXPerProjectTemplateStateSaveDate = 294104710;
+ PBXWorkspaceStateSaveDate = 294104710;
};
perUserProjectItems = {
- 1A0755851184FB7600636616 = 1A0755851184FB7600636616 /* PBXTextBookmark */;
- 1A2973341184D1C600BFB38E = 1A2973341184D1C600BFB38E /* PBXTextBookmark */;
- 1A2973D81184E3B900BFB38E = 1A2973D81184E3B900BFB38E /* PBXTextBookmark */;
- 1A2974521184EDE600BFB38E = 1A2974521184EDE600BFB38E /* PBXTextBookmark */;
- 1AD3E6AB11857D8E0059FB49 = 1AD3E6AB11857D8E0059FB49 /* PBXTextBookmark */;
- 1AD3E6CB1185811A0059FB49 = 1AD3E6CB1185811A0059FB49 /* PBXTextBookmark */;
- 1AD3E70B118585EC0059FB49 = 1AD3E70B118585EC0059FB49 /* PBXTextBookmark */;
- 1ADB8F791185FCB2005141D3 = 1ADB8F791185FCB2005141D3 /* PBXTextBookmark */;
- 1ADB8F851185FE05005141D3 = 1ADB8F851185FE05005141D3 /* PBXTextBookmark */;
- 1ADB8F861185FE05005141D3 = 1ADB8F861185FE05005141D3 /* PlistBookmark */;
- 1ADB8F871185FE05005141D3 = 1ADB8F871185FE05005141D3 /* PlistBookmark */;
- 1ADB8F881185FE05005141D3 = 1ADB8F881185FE05005141D3 /* PlistBookmark */;
- 1ADB8F891185FE05005141D3 = 1ADB8F891185FE05005141D3 /* PlistBookmark */;
- 1ADB8F8A1185FE05005141D3 = 1ADB8F8A1185FE05005141D3 /* PBXTextBookmark */;
- 1ADB8F8C1185FE05005141D3 = 1ADB8F8C1185FE05005141D3 /* PlistBookmark */;
- 1ADB8F971185FE4D005141D3 = 1ADB8F971185FE4D005141D3 /* PlistBookmark */;
- 1ADB8FB011862DFE005141D3 /* PlistBookmark */ = 1ADB8FB011862DFE005141D3 /* PlistBookmark */;
+ 1A0755851184FB7600636616 /* PBXTextBookmark */ = 1A0755851184FB7600636616 /* PBXTextBookmark */;
+ 1A2973D81184E3B900BFB38E /* PBXTextBookmark */ = 1A2973D81184E3B900BFB38E /* PBXTextBookmark */;
+ 1A2974521184EDE600BFB38E /* PBXTextBookmark */ = 1A2974521184EDE600BFB38E /* PBXTextBookmark */;
+ 1AA9B7CE1187A87600DA1E28 /* PBXTextBookmark */ = 1AA9B7CE1187A87600DA1E28 /* PBXTextBookmark */;
+ 1AA9B7CF1187A87600DA1E28 /* PBXTextBookmark */ = 1AA9B7CF1187A87600DA1E28 /* PBXTextBookmark */;
+ 1AA9B7D01187A87600DA1E28 /* PBXTextBookmark */ = 1AA9B7D01187A87600DA1E28 /* PBXTextBookmark */;
+ 1AA9B8121187AC4400DA1E28 /* PlistBookmark */ = 1AA9B8121187AC4400DA1E28 /* PlistBookmark */;
+ 1AA9B81E1187AE8B00DA1E28 /* PlistBookmark */ = 1AA9B81E1187AE8B00DA1E28 /* PlistBookmark */;
+ 1AD3E6AB11857D8E0059FB49 /* PBXTextBookmark */ = 1AD3E6AB11857D8E0059FB49 /* PBXTextBookmark */;
+ 1AD3E6CB1185811A0059FB49 /* PBXTextBookmark */ = 1AD3E6CB1185811A0059FB49 /* PBXTextBookmark */;
+ 1ADB8F791185FCB2005141D3 /* PBXTextBookmark */ = 1ADB8F791185FCB2005141D3 /* PBXTextBookmark */;
+ 1ADB8F851185FE05005141D3 /* PBXTextBookmark */ = 1ADB8F851185FE05005141D3 /* PBXTextBookmark */;
+ 1ADB8F861185FE05005141D3 /* PlistBookmark */ = 1ADB8F861185FE05005141D3 /* PlistBookmark */;
+ 1ADB8F871185FE05005141D3 /* PlistBookmark */ = 1ADB8F871185FE05005141D3 /* PlistBookmark */;
+ 1ADB8F881185FE05005141D3 /* PlistBookmark */ = 1ADB8F881185FE05005141D3 /* PlistBookmark */;
+ 1ADB8F891185FE05005141D3 /* PlistBookmark */ = 1ADB8F891185FE05005141D3 /* PlistBookmark */;
};
sourceControlManager = 1AB4220D1182183900CCFBA0 /* Source Control */;
userBuildSettings = {
@@ -409,9 +408,10 @@
};
29B97316FDCFA39411CA2CEA /* main.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {519, 210}}";
- sepNavSelRange = "{0, 0}";
+ sepNavIntBoundsRect = "{{0, 0}, {981, 599}}";
+ sepNavSelRange = "{124, 0}";
sepNavVisRange = "{0, 247}";
+ sepNavWindowFrame = "{{38, 25}, {1040, 727}}";
};
};
8D1107260486CEB800E47090 /* Dripwn */ = {
8 Dripwn/Dripwn.xcodeproj/project.pbxproj
View
@@ -9,9 +9,9 @@
/* Begin PBXBuildFile section */
1A0755CB1184FD9C00636616 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A0755CA1184FD9C00636616 /* libcrypto.dylib */; };
1A296CBB1184B5CC00BFB38E /* IPSW.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A296CBA1184B5CC00BFB38E /* IPSW.m */; };
- 1A2972F81184C99E00BFB38E /* vfdecrypt in Resources */ = {isa = PBXBuildFile; fileRef = 1A2972F71184C99E00BFB38E /* vfdecrypt */; };
1A2973BE1184E2D700BFB38E /* NSData+Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A2973BD1184E2D700BFB38E /* NSData+Base64.m */; };
1A2974771184F1D800BFB38E /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1A2974761184F1D800BFB38E /* Icon.icns */; };
+ 1AA9B7C31187A80000DA1E28 /* dripwn in Resources */ = {isa = PBXBuildFile; fileRef = 1AA9B7C21187A80000DA1E28 /* dripwn */; };
1AD3E69B11857D290059FB49 /* CocoaCryptoHashing.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD3E69A11857D290059FB49 /* CocoaCryptoHashing.m */; };
1AD3E6EB118584720059FB49 /* iPhone1,1_3.1.2_7D11_Restore.ipsw.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1AD3E6E8118584720059FB49 /* iPhone1,1_3.1.2_7D11_Restore.ipsw.plist */; };
1AD3E6EC118584720059FB49 /* iPhone1,1_3.1.3_7E18_Restore.ipsw.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1AD3E6E9118584720059FB49 /* iPhone1,1_3.1.3_7E18_Restore.ipsw.plist */; };
@@ -46,10 +46,10 @@
1A0755CA1184FD9C00636616 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = usr/lib/libcrypto.dylib; sourceTree = SDKROOT; };
1A296CB91184B5CC00BFB38E /* IPSW.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IPSW.h; sourceTree = "<group>"; };
1A296CBA1184B5CC00BFB38E /* IPSW.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IPSW.m; sourceTree = "<group>"; };
- 1A2972F71184C99E00BFB38E /* vfdecrypt */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = vfdecrypt; sourceTree = "<group>"; };
1A2973BC1184E2D700BFB38E /* NSData+Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Base64.h"; sourceTree = "<group>"; };
1A2973BD1184E2D700BFB38E /* NSData+Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Base64.m"; sourceTree = "<group>"; };
1A2974761184F1D800BFB38E /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
+ 1AA9B7C21187A80000DA1E28 /* dripwn */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = dripwn; sourceTree = "<group>"; };
1AD3E69911857D290059FB49 /* CocoaCryptoHashing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CocoaCryptoHashing.h; sourceTree = "<group>"; };
1AD3E69A11857D290059FB49 /* CocoaCryptoHashing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CocoaCryptoHashing.m; sourceTree = "<group>"; };
1AD3E6E8118584720059FB49 /* iPhone1,1_3.1.2_7D11_Restore.ipsw.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "iPhone1,1_3.1.2_7D11_Restore.ipsw.plist"; sourceTree = "<group>"; };
@@ -163,9 +163,9 @@
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
+ 1AA9B7C21187A80000DA1E28 /* dripwn */,
1AD3E6E7118584720059FB49 /* Firmwares */,
1A2974761184F1D800BFB38E /* Icon.icns */,
- 1A2972F71184C99E00BFB38E /* vfdecrypt */,
8D1107310486CEB800E47090 /* Dripwn-Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
@@ -228,7 +228,6 @@
files = (
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
- 1A2972F81184C99E00BFB38E /* vfdecrypt in Resources */,
1A2974771184F1D800BFB38E /* Icon.icns in Resources */,
1AD3E6EB118584720059FB49 /* iPhone1,1_3.1.2_7D11_Restore.ipsw.plist in Resources */,
1AD3E6EC118584720059FB49 /* iPhone1,1_3.1.3_7E18_Restore.ipsw.plist in Resources */,
@@ -237,6 +236,7 @@
1ADB8F831185FDBC005141D3 /* iPhone2,1_3.1.3_7E18_Restore.ipsw.plist in Resources */,
1ADB8FAA11862DF2005141D3 /* iPhone1,2_3.1_2_7D11_Restore.ipsw.plist in Resources */,
1ADB8FAB11862DF2005141D3 /* iPhone1,2_3.1.3_7E18_Restore.ipsw.plist in Resources */,
+ 1AA9B7C31187A80000DA1E28 /* dripwn in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
5 Dripwn/IPSW.h
View
@@ -14,11 +14,6 @@
}
- (BOOL) startExtraction:(id) sender;
-- (BOOL) decodeFirmware:(NSString *) mountName;
-- (BOOL) unzipIPSW:(NSString *) path;
-- (BOOL) mountImage;
-- (BOOL) decryptImage:(NSString *) imageName andKey:(NSString *)key;
-- (BOOL) unmountImage:(NSString *)mountName;
- (NSString *) selectIPSW;
@end
166 Dripwn/IPSW.m
View
@@ -7,7 +7,6 @@
//
#import "IPSW.h"
-#import "NSData+Base64.h"
#import "CocoaCryptoHashing.h"
@implementation IPSW
@@ -20,161 +19,27 @@ - (BOOL) startExtraction:(id) sender {
NSString *resourceBundle = [[NSBundle mainBundle] pathForResource:[ipsw lastPathComponent] ofType:@"plist"];
if(!resourceBundle) {
NSLog(@"Invalid file");
- NSAlert *alert = [NSAlert alertWithMessageText:@"Invalid file" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Invalid file selected. You must use an iPhone 2G IPSW firmware version 3.1 or above."];
+ NSAlert *alert = [NSAlert alertWithMessageText:@"Invalid file" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Invalid file selected. You must use an iPhone IPSW firmware version 3.1 or above."];
[alert runModal];
return NO;
}
- NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:resourceBundle];
- NSString *sha1key = [dict objectForKey:@"SHA1"];
-
- NSData *dta = [NSData dataWithContentsOfFile:ipsw];
- NSString *digest = [dta sha1HexHash];
-
-
- if(![digest isEqualToString:sha1key]) {
- NSLog(@"Corrupt file");
- NSAlert *alert = [NSAlert alertWithMessageText:@"Damage file" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"You seem to have the correct filename, but it is damaged. Try to redownload."];
- [alert runModal];
- return NO;
- }
- if(![self unzipIPSW:ipsw]) {
- NSAlert *alert = [NSAlert alertWithMessageText:@"Error unzipping" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Unknown error unzipping IPSW file."];
- [alert runModal];
- return NO;
- }
- if(![self decryptImage:[dict objectForKey:@"RootFilesystem"] andKey:[dict objectForKey:@"RootFilesystemKey"]]) {
- NSAlert *alert = [NSAlert alertWithMessageText:@"Error decrypting image" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"That's interesting, this shouldn't be possible. Perhaps the wrong architecture."];
- [alert runModal];
- return NO;
- }
- if(![self mountImage]) {
- NSAlert *alert = [NSAlert alertWithMessageText:@"Error mounting image" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"The root filesystem could not be mounted."];
- [alert runModal];
- return NO;
- }
- if(![self decodeFirmware:[dict objectForKey:@"RootFilesystemMountVolume"]]) {
- NSAlert *alert = [NSAlert alertWithMessageText:@"Couldn't decode firmware" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Error decoding base64 firmware files!"];
- [alert runModal];
- return NO;
- }
- if(![self unmountImage:[dict objectForKey:@"RootFilesystemMountVolume"]]) {
- NSAlert *alert = [NSAlert alertWithMessageText:@"Error unmounting image." defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"This isn't too much of a problem, your firmware files should already be created. Reboot to unmount IPSW."];
- [alert runModal];
- return NO;
- }
- [[NSFileManager defaultManager] removeItemAtPath:@"/tmp/ipsw/" error:nil];
- NSAlert *alert = [NSAlert alertWithMessageText:@"Done!" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Two firmware files, all ready for iDroids usage! I placed them on your desktop for you.."];
- [alert runModal];
- NSLog(@"Firmware succesfully decrypted!");
- return YES;
-}
-
-- (BOOL) decodeFirmware:(NSString *) mountName {
- NSString *file = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"/Volumes/%@/usr/share/firmware/multitouch/iPhone.mtprops", mountName] encoding:NSASCIIStringEncoding error:nil];
-
- NSString *curDir = NSHomeDirectory();
-
- NSRange range = [file rangeOfString:@"<data>"];
- int start = range.location+range.length;
- NSRange r = [file rangeOfString:@"</data>"];
- int end = r.location;
- NSRange newRange;
- newRange.location = start;
- newRange.length = end-start;
- NSString *base64Encoded = [file substringWithRange:newRange];
- NSData *toWrite = [NSData dataWithBase64EncodedString:base64Encoded];
- [toWrite writeToFile:[NSString stringWithFormat:@"%@/Desktop/zephyr_aspeed.bin", curDir] atomically:YES];
-
- int newStart = newRange.location+newRange.length+7;
- file = [file substringFromIndex:newStart];
- range = [file rangeOfString:@"<data>"];
- start = range.location+range.length;
- r = [file rangeOfString:@"</data>"];
- end = r.location;
- newRange.location = start;
- newRange.length = end-start;
- base64Encoded = [file substringWithRange:newRange];
- toWrite = [NSData dataWithBase64EncodedString:base64Encoded];
- [toWrite writeToFile:[NSString stringWithFormat:@"%@/Desktop/zephyr_main.bin", curDir] atomically:YES];
-
- return YES;
-}
-
-- (BOOL) unzipIPSW:(NSString *) path {
- NSTask *cmnd=[[NSTask alloc] init];
- [cmnd setLaunchPath:@"/usr/bin/ditto"];
- [cmnd setArguments:[NSArray arrayWithObjects:
- @"-v",@"-x",@"-k",@"--rsrc",path,@"/tmp/ipsw/",nil]];
- [cmnd launch];
- [cmnd waitUntilExit];
-
- // Handle the task's termination status
- if ([cmnd terminationStatus] != 0)
- {
- return NO;
- }
-
- // You *did* remember to wash behind your ears ...
- // ... right?
- [cmnd release];
- return YES;
-}
-
-- (BOOL) decryptImage:(NSString *) imageName andKey:(NSString *)key {
+ NSString *saveFolder = [self chooseFolder];
+ NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:resourceBundle];
NSTask *cmnd=[[NSTask alloc] init];
- [cmnd setLaunchPath:[[NSBundle mainBundle] pathForResource:@"vfdecrypt" ofType:nil]];
- [cmnd setArguments:[NSArray arrayWithObjects:
- @"-i", [NSString stringWithFormat:@"/tmp/ipsw/%@", imageName], @"-o", @"/tmp/ipsw/decryptedfs.dmg", @"-k", key,nil]];
+ [cmnd setLaunchPath:[[NSBundle mainBundle] pathForResource:@"dripwn" ofType:@""]];
+ [cmnd setArguments:[NSArray arrayWithObjects:ipsw,[dict objectForKey:@"RootFilesystemKey"],[dict objectForKey:@"RootFilesystem"],nil]];
+ [cmnd setCurrentDirectoryPath:saveFolder];
[cmnd launch];
[cmnd waitUntilExit];
- // Handle the task's termination status
if ([cmnd terminationStatus] != 0)
{
return NO;
}
-
- // You *did* remember to wash behind your ears ...
- // ... right?
[cmnd release];
- return YES;
-}
-
-- (BOOL) mountImage {
- NSTask *cmnd=[[NSTask alloc] init];
- [cmnd setLaunchPath:@"/usr/bin/hdiutil"];
- [cmnd setArguments:[NSArray arrayWithObjects: @"attach", @"-noverify", @"-nobrowse", @"-noautoopen", @"/tmp/ipsw/decryptedfs.dmg",nil]];
- [cmnd launch];
- [cmnd waitUntilExit];
-
- // Handle the task's termination status
- if ([cmnd terminationStatus] != 0)
- {
- return NO;
- }
- // You *did* remember to wash behind your ears ...
- // ... right?
- [cmnd release];
- return YES;
-}
-
-- (BOOL) unmountImage:(NSString *)mountName {
- NSTask *cmnd=[[NSTask alloc] init];
- [cmnd setLaunchPath:@"/usr/bin/hdiutil"];
- [cmnd setArguments:[NSArray arrayWithObjects: @"detach", [NSString stringWithFormat:@"/Volumes/%@", mountName],nil]];
- [cmnd launch];
- [cmnd waitUntilExit];
-
- // Handle the task's termination status
- if ([cmnd terminationStatus] != 0)
- {
- return NO;
- }
-
- // You *did* remember to wash behind your ears ...
- // ... right?
- [cmnd release];
+ NSAlert *alert = [NSAlert alertWithMessageText:@"Complete" defaultButton:@"Okay" alternateButton:nil otherButton:nil informativeTextWithFormat:@"Succesfully extracted Zephyr firmware files."];
+ [alert runModal];
return YES;
}
@@ -192,4 +57,19 @@ - (NSString *) selectIPSW {
return nil;
}
+- (NSString *) chooseFolder {
+ NSOpenPanel* saveDlg = [NSOpenPanel openPanel];
+ [saveDlg setTitle:@"Save to..."];
+ [saveDlg setMessage:@"Select where to save the Zephyr firmware files."];
+ [saveDlg setCanChooseDirectories:YES];
+ [saveDlg setAllowsMultipleSelection:NO];
+
+ if ([saveDlg runModalForDirectory:nil file:nil] == NSOKButton)
+ {
+ NSArray* files = [saveDlg filenames];
+ return [files objectAtIndex:0];
+ }
+ return nil;
+}
+
@end
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/cdecls.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/decls.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/files.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/imports.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/pbxindex.header
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/refs.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/strings.pbxstrings/control
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/strings.pbxstrings/strings
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/subclasses.pbxbtree
View
Binary file not shown
BIN  Dripwn/build/Dripwn.build/Dripwn.pbxindex/symbols0.pbxsymbols
View
Binary file not shown
2  Dripwn/build/Release/README.txt
View
@@ -1,4 +1,4 @@
-To use Dripwn, simply click 'Extract firmware' and select your iPhone 2G (1,1) 3.1 (or above) IPSW. Wait approx. 20 seconds and you will have the two firmware files sitting on your desktop waiting for you!
+To use Dripwn, simply click 'Extract firmware' and select your iPhone 3.1 (or above) IPSW. Wait approx. 10 seconds and you will have the two firmware files sitting on your desktop waiting for you!
Enjoy!
BIN  Dripwn/dripwn
View
Binary file not shown
Please sign in to comment.
Something went wrong with that request. Please try again.