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

SAXParseException processing WAAccount XML #2294

Open
aberenguel opened this issue Aug 16, 2024 · 5 comments · May be fixed by #2297
Open

SAXParseException processing WAAccount XML #2294

aberenguel opened this issue Aug 16, 2024 · 5 comments · May be fixed by #2297

Comments

@aberenguel
Copy link
Contributor

Using master branch processing an UFDR file generated by PA 10.3:

bytes)		org.apache.tika.exception.TikaException: Failed to detect the character encoding of a document
[Fatal Error] :1:1: Content is not allowed in prolog.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at iped.parsers.whatsapp.WAAccount.getFromAndroidXml(WAAccount.java:37)
	at iped.parsers.whatsapp.WhatsAppParser.parseWhatsAppAccount(WhatsAppParser.java:795)
	at iped.parsers.whatsapp.WhatsAppParser.parse(WhatsAppParser.java:252)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at iped.parsers.standard.StandardParser.parse(StandardParser.java:245)
	at iped.engine.io.ParsingReader$BackgroundParsing.run(ParsingReader.java:247)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
@aberenguel
Copy link
Contributor Author

Another exception in log file:

org.xml.sax.SAXParseException; Premature end of file.
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at iped.parsers.whatsapp.WAAccount.getFromAndroidXml(WAAccount.java:37)
	at iped.parsers.whatsapp.WhatsAppParser.getUserAccount(WhatsAppParser.java:831)
	at iped.parsers.whatsapp.WhatsAppParser.parseWhatsAppContacts(WhatsAppParser.java:1164)
	at iped.parsers.whatsapp.WhatsAppParser.parse(WhatsAppParser.java:260)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at iped.parsers.standard.StandardParser.parse(StandardParser.java:245)
	at iped.engine.io.ParsingReader$BackgroundParsing.run(ParsingReader.java:247)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

@patrickdalla
Copy link
Collaborator

This happened on main ufdr xml read?Some weeks ago someone had similar exceptions (sax parser) and reviewing the xml inside the ufdr I found that the XML was malformed (some unclosed tags at the end). I considered it a bug of PA and not of IPED. Check the XML.

@lfcnassif
Copy link
Member

lfcnassif commented Aug 16, 2024

This happened on main ufdr xml read?

From the stacktraces, seems not.

I considered it a bug of PA and not of IPED. Check the XML

I agree.

About the first exception, if the xml is not corrupted but if it is some missing support from java XML parser, maybe an approach similar to iped.engine.io.UFEDXMLWrapper class could be used...

@aberenguel
Copy link
Contributor Author

aberenguel commented Aug 18, 2024

I've checked the file com.whatsapp_preferences_light.xml seems to be corrupted (or encrypted).

Btw, I checked how PA got user information about WhatsApp user account. The result was:
image

It gets the phone number in /data/data/com.whatsapp/shared_prefs/registration.RegisterPhone.xml file:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1" />
    <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="11" />
    <string name="com.whatsapp.registration.RegisterPhone.input_country_code">55</string>
    <string name="com.whatsapp.registration.RegisterPhone.country_code">55</string>
    <string name="com.whatsapp.registration.RegisterPhone.phone_number">XXXXXXXXXX</string>
    <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0" />
    <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">XX XXXXX-XXXX</string>
</map>

Other information values ares in /data/data/com.whatsapp/databases/wa.db database, table wa_contacts.

aberenguel added a commit to aberenguel/IPED that referenced this issue Aug 19, 2024
aberenguel added a commit to aberenguel/IPED that referenced this issue Aug 19, 2024
@aberenguel aberenguel linked a pull request Aug 19, 2024 that will close this issue
aberenguel added a commit to aberenguel/IPED that referenced this issue Aug 19, 2024
@aberenguel
Copy link
Contributor Author

Another exception in log file:

org.xml.sax.SAXParseException; Premature end of file.
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
	at iped.parsers.whatsapp.WAAccount.getFromAndroidXml(WAAccount.java:37)
	at iped.parsers.whatsapp.WhatsAppParser.getUserAccount(WhatsAppParser.java:831)
	at iped.parsers.whatsapp.WhatsAppParser.parseWhatsAppContacts(WhatsAppParser.java:1164)
	at iped.parsers.whatsapp.WhatsAppParser.parse(WhatsAppParser.java:260)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at iped.parsers.standard.StandardParser.parse(StandardParser.java:245)
	at iped.engine.io.ParsingReader$BackgroundParsing.run(ParsingReader.java:247)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

The cause of this exception is related to the issue #2299

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants