KnugiHK / WhatsApp-Chat-Exporter

A customizable Android and iOS/iPadOS WhatsApp database parser that will give you the history of your WhatsApp conversations in HTML and JSON. Android Backup Crypt12, Crypt14, Crypt15, and new schema supported.
https://wts.knugi.dev/
MIT License
517 stars 76 forks source link

Can't decrypt because "Dependencies of decrypt_backup and/or extract_encrypted_key are not present." #54

Open RikPi opened 12 months ago

RikPi commented 12 months ago

Hi, I installed all the required dependencies for extracting the crypt15 databases. When I try to use the following command in the CLI: wtsexporter -a -k <key> -b ./msgstore.db.crypt15 I get the following output: Decryption key specified, decrypting WhatsApp backup... Dependencies of decrypt_backup and/or extract_encrypted_key are not present. For details, see README.md.

I have gone through the readme some times and cannot find anything related to this error, maybe I am just not finding the correct part

Thank you :)

KnugiHK commented 12 months ago

What is the command you used to install the exporter?

RikPi commented 12 months ago

I used both: pip install whatsapp-chat-exporter["android_backup"] and pip install whatsapp-chat-exporter["crypt15"]

KnugiHK commented 12 months ago

Can you check if javaobj-py3 and pycryptodome are properly installed?

RikPi commented 12 months ago

I did a pip (and pip3 just in case) install for both, but they are both already installed

KnugiHK commented 12 months ago

That's strange. The only way you get this message is either support_backup or support_crypt15 is False. And here is how the program determines if your environment supports them:

try:
    import zlib
    from Crypto.Cipher import AES
except ModuleNotFoundError:
    support_backup = False
else:
    support_backup = True
try:
    import javaobj
except ModuleNotFoundError:
    support_crypt15 = False
else:
    support_crypt15 = True

Can you run a Python (which executes the exporter script) shell and see if importing the dependency goes wrong?

import zlib
from Crypto.Cipher import AES
import javaobj
RikPi commented 7 months ago

Hi, sorry for the long delay. I ran the commands you asked in a Python shell and got back that module 'Crypto' was not found. I tinkered a bit and ended up uninstalling pycryptodome and crypto and reinstalling pycryptodome. This fixed it, there probably was some kind of conflict between those two.

Thanks for the support!

Box333 commented 7 months ago

you have probably downloaded the standalone version wtsexporter.exe (8MB) and you had it in the folder you were running the command from. the real wtsexporter.exe you need is the one in your python\scripts folder. So delete or rename the 8MB one.