Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added support for mbdb manifests #740

Merged
merged 7 commits into from
Jun 18, 2024
Merged

Added support for mbdb manifests #740

merged 7 commits into from
Jun 18, 2024

Conversation

Mori19
Copy link
Contributor

@Mori19 Mori19 commented May 16, 2024

Old iTunes backups dont seem to work at the moment as they use the Manifest.mbdb instead of the Manifest.db. Support has been added through a new seeker type to allow parsing old backups.

Mostly from this discussion here: https://stackoverflow.com/questions/3085153/how-to-parse-the-manifest-mbdb-file-in-an-ios-4-0-itunes-backup
Changed to fit iLEAPP

Mori19 added 5 commits May 16, 2024 13:07
Old iTunes backups dont seem to work at the moment as they use the Manifest.mbdb instead of the Manifest.db. Support has been added through a new seeker type to allow parsing old backups.
Added option to argeparse to allow users to access the seeker for Manifest.mbdb format iTunes backups
Fixed missing " at end of help for mbdb option
Old iphones store call history in call_history.db instead of the newer CallHistory.storedata. The schema is a little bit different, so a new sql query was also created.
Left a variable with the wrong name in the script.
@Johann-PLW
Copy link
Collaborator

Hello @Mori19,

Thank you very much for adding the support for iTunes backups from older iOS versions.

I have tested with many different backups (iOS 7.x, iOS 8.x). This works for some of them, but for a large number, I get the following error:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 10: invalid start byte

The byte and the position both vary depending the manifest.mdbd parsed.

Let me know if you need one of these stubborn manifest.mdbd files to investigate.

Regards.

@Mori19
Copy link
Contributor Author

Mori19 commented Jun 4, 2024

Hi @Johann-PLW,

I would appreciate some of the examples of non working mbdb files.

Hopefully I should be able to get those sorted out once I've had a look through them.

Cheers

@Johann-PLW
Copy link
Collaborator

Hi @Mori19

Sorry for the late reply but you will find in the following zip a working and a non-working Manifest.mbdb of the same iPhone;
Let me know if you need more examples after this one;

Greetz

Manifests.mbdb.zip

The properties value is sometimes a binary value, which cannot decode into UTF-8. This value is never used in the program, and so was updated to be ignored.
@Mori19
Copy link
Contributor Author

Mori19 commented Jun 16, 2024

Hi @Johann-PLW,

No worries on that at all.

I think I found the problem - some of the files have additional binary properties listed in the manifest.mbdb. As the only actual data used is the filename and domain, I have updated the parser to not attempt to decode the property, and instead ignore it.

This resulted in no change to the functionality, but resolved the error message when I was looking at it.

Please let me know if the issue still persists.

Cheers

@Johann-PLW
Copy link
Collaborator

Hi @Mori19,

Thank you very much for your update.
I've tested 12 old iTunes backups and the issue was gone except for this Manifest.mbdb :
Manifest.mbdb.zip

Cheers

No longer decoding property name, encryption key, link target. These are not used, as only filename and domain name are required to determine the hashed filename.
@Mori19
Copy link
Contributor Author

Mori19 commented Jun 16, 2024

Hi @Johann-PLW,

Looks like it was the same issue as before, but in the encryption key field instead of the properties.

I've stopped all decoding of non-essential fields, so this should be ok now.

Cheers

@Johann-PLW
Copy link
Collaborator

Everything works fine now.
Thank you very much for your contribution.

@Johann-PLW Johann-PLW merged commit d7811ff into abrignoni:main Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants