0Pricing
Cyber Security Academy · Lesson

Apps, Artifacts and Reporting

Parsing app data and presenting findings.

Apps, Artifacts and Reporting is a free Cyber Security Academy lesson on CoddyKit — lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Cyber Security Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

App Artifacts: The Big Picture

Third-party apps generate the richest evidence in most cases. Each app stores data its own way, but patterns recur.

  • SQLite databases for messages, history, and metadata.
  • Property lists (plist) on iOS and XML shared_prefs on Android for settings/state.
  • Protobuf / JSON blobs embedded inside DB columns.
  • Cache and media folders for thumbnails and attachments.

Your job is to parse these consistently, attribute them to a user and time, and present them defensibly.

Messaging App Artifacts

Messaging apps are frequent evidence sources. Each keeps a primary message store plus contact and group tables.

  • WhatsApp (Android): msgstore.db (messages), wa.db (contacts).
  • Signal: encrypted SQLCipher DB; the key lives in the keystore/keychain.
  • Telegram: cache4.db with protobuf-encoded content.

Reconstruct a WhatsApp conversation from the message store:

sqlite3 -readonly msgstore.db
sqlite> SELECT datetime(timestamp/1000,'unixepoch') ts,
   ...>        key_remote_jid, key_from_me, data
   ...> FROM messages
   ...> WHERE key_remote_jid LIKE '%@s.whatsapp.net'
   ...> ORDER BY timestamp;

Encrypted App Databases

Some apps encrypt their own database with SQLCipher (e.g., Signal, some banking apps). You cannot open these with plain sqlite3.

  • The key is typically stored in the platform keystore/keychain and only recoverable from a sufficiently deep extraction.
  • With the key, open the DB via SQLCipher PRAGMA before querying.

Opening a SQLCipher database once the key is recovered:

sqlcipher signal.db
sqlite> PRAGMA key = "x'6f3b...c91a'";   -- recovered raw key
sqlite> PRAGMA cipher_compatibility = 4;
sqlite> SELECT * FROM sms LIMIT 5;

Decoding Embedded Blobs

App databases often hide structured data inside BLOB columns as protobuf, plist, or JSON. The visible columns are only part of the story.

  • BPLIST blobs (Apple binary plist) decode with plistlib or plutil.
  • Protobuf blobs decode with protoc or blackboxprotobuf.

Convert a binary plist blob extracted from a column:

# Apple binary plist -> readable XML
plutil -convert xml1 -o decoded.plist attachment_blob.bin

# Unknown protobuf -> field tree
python3 -m blackboxprotobuf decode message_blob.bin

Location and Geolocation Artifacts

Location evidence ties a person to a place and time, so it must be handled with extra rigor.

  • Photo EXIF GPS tags, map app search history, cached tiles.
  • iOS significant locations (routined cache), Android location history and Wi-Fi/cell logs.

Distinguish where the device was from a place the user merely searched. Extract EXIF GPS from a photo:

exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal \
  IMG_0421.HEIC

Cloud, Sync, and Multi-Device State

Modern apps sync across devices, so on-device data may be incomplete or duplicated.

  • A message deleted on the phone may persist on a linked tablet or web session.
  • Sync metadata can show which device authored a message.

Note device attribution in your analysis, and seek cloud/companion-device data only under separate, proper legal authority. Never assume the seized handset holds the complete record.

Artifact Validation

Before an artifact enters a report, validate it three ways.

  • Source: confirm the exact file/table/column it came from.
  • Decoding: verify the timestamp epoch and field meaning, ideally against a known-good reference message.
  • Corroboration: cross-check with a second artifact (e.g., a call log entry matching a contact).

An artifact you cannot independently corroborate or precisely source should be flagged as low confidence, not stated as fact.

Building a Super-Timeline

A super-timeline merges events from many artifacts into one chronological view, normalized to UTC.

  • Combine messages, calls, app usage, locations, and system events.
  • Tag each row with its source artifact for traceability.

Tools like log2timeline/plaso or analyst scripts assemble these. Conceptually, every row carries time, event, and provenance:

timestamp_utc        | source            | event
2026-06-01 09:14:02  | sms.db            | iMessage sent to +1555...
2026-06-01 09:15:40  | knowledgeC.db     | App in foreground: Maps
2026-06-01 09:16:05  | Photos.sqlite     | Photo captured (GPS present)

Report Structure

A forensic report must let an independent examiner reproduce and check your work. Standard sections:

  • Summary — scope, authorization, key findings.
  • Evidence handled — devices, identifiers, chain of custody.
  • Methodology — tools, versions, exact commands, hashes.
  • Findings — artifacts with source citations.
  • Conclusions — interpretation, clearly separated from raw facts.

Every claim should trace back to a hashed source and a documented step.

Facts vs Opinion

The credibility of a report rests on separating observation from interpretation.

  • Fact: sms.db row 482 contains text X with date Y (UTC).
  • Interpretation: this suggests the user planned to meet at location Z.

State facts neutrally and label inferences as such, including alternative explanations. Overstating certainty (e.g., asserting intent from a single message) undermines the whole report and can be challenged in court.

Ethics, Scope, and Privacy

Mobile devices hold deeply private data. Practitioners must stay within legal and ethical bounds.

  • Work only within the authorized scope (warrant/consent terms).
  • Minimize exposure of irrelevant private data.
  • Maintain objectivity — report exculpatory evidence too, not just inculpatory.
  • Protect extracted data with the same care as the original device.

Sound ethics are not optional; they are what make digital evidence trustworthy and admissible.

Quick Check

Your report states: 'The user intended to commit the act, as shown by message 482.' A reviewer objects. What is the core problem?

Recap: Apps, Artifacts and Reporting

You can now turn raw extractions into a defensible report.

  • App data is SQLite + plist/XML + protobuf/JSON blobs; decode blobs explicitly.
  • Encrypted stores (SQLCipher) need keys from a deep extraction.
  • Handle location evidence carefully; distinguish presence from a mere search.
  • Account for multi-device sync and seek cloud data only with proper authority.
  • Validate source, decoding, and corroboration before reporting.
  • Build a UTC super-timeline, structure the report for reproducibility, and keep facts separate from opinion.
  • Stay within scope and act ethically — that is what makes evidence admissible.

Frequently asked questions

Is the “Apps, Artifacts and Reporting” lesson free?

Yes — the full text of “Apps, Artifacts and Reporting” is free to read here on the web, and the Cyber Security Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Cyber Security Academy course, upgrade to CoddyKit PRO.

What will I learn in “Apps, Artifacts and Reporting”?

Parsing app data and presenting findings. You practise Cyber Security Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Cyber Security Academy?

No prior experience is required. Cyber Security Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 4 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Apps, Artifacts and Reporting” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Cyber Security Academy lesson?

Yes. Every Cyber Security Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Mobile Forensics Fundamentals
  2. Android Acquisition and Analysis
  3. iOS Acquisition and Analysis
  4. Apps, Artifacts and Reporting
← Back to Cyber Security Academy