After weeks of hard work, I’m with great pleasure to present the first version of SHSH Grabber.
Let’s talk about the app
The application has, in its first version, many features:
- Ability to save all SHSHs (in local or in this server) still signed by Apple;
- Possibility of storing one or more devices, so as not to leave the device attached to the computer each time;
- Possibility to check in real-time the builds signed by Apple;
- Possibility to get ALL devices information (ideviceinfo);
- Possibility to send (or download) a blob to my server;
- Possibility to analize the code (in fact the application is open source);
- The app includes an ECID Grabber.
How it works?
First of all, it downloads the json from http://ipsw.me (thanks to icj for API Documentation). Then, it gets the signed builds for the device, by parsing the json precedent downloaded. Now it downloads the BuildManifests.plist file present in each signed firmware in a local folder, using partialzip, that allows you to download only a file of a ZIP archive. The program write and send the TSS request to Apple server, and it receive the SHSH; it will now converted into bplist format. Finally it send the SHSH(s) to my server, so you can’t lose them (WARNING: even if my program saves SHSH on a server, you must ABSOLUTELY NOT delete them from your computer).
Known bugs
There are some known bugs, that I’ll solve in the next version:
- When you send a SHSH, you need to restart the app to send another one;
- You can’t send SHSHs to my server on 32-bit PCs;
- If you close the program when he is still receiving SHSHs, it will block;
- SHSHs from Cydia can be corrupted;
- Once time you open the application, if you see “ERROR: function not implemented yet!” error don’t worry: just click on “Fetch OTA SHSHs” option, click OK and you won’t see that error;
- If there are more iDeviceX,Y in the devices folder, there are many builds signed on SignedBuilds form;
- SHSH ProgressBar coudn’t work correctly;
- “Manual Mode” in “Create device” form can get some errors;
- Translation mistakes.
I promise, I will solve these bugs on the next version of SHSH Grabber.
In the next version, I will:
- Correct the bugs (↑)
- Add some awesome things 😀
Tools used
SHSH Grabber application uses some included tools:
- hostshandler.exe, to add/remove a line from hosts file;
- PS.exe, a “secret” application;
- pzip.exe. WIth this tool, and ICSharpCode.SharpZipLib.dll, you can download partial files of a ZIP file in a internet server;
- TSSQuery.exe, to send a TSS request to Apple;
- xml2bplist.exe, to convert SHSH into bplist format;
- libimobiledevice.zip, libimobiledevice suite compiled for Windows.
How can I manual download SHSHs on my server?
If you want to get a list on SHSHs of your device on my server, you can go on http://shshgrabber.altervista.org/SHSHs/[ECID]/info.txt
The SHSHs are on your ECID folder (http://shshgrabber.altervista.org/SHSHs/[ECID]/), and the name is in info.txt file (↑)
Credits
- @sn0wcooder for the application (me)
- @blackgeektuto for Beehind
- @icj for his awesone json
- @libimobiledevice guys for libimobiledevice
- @geek_break for testing