Skip to content

ra0013/UnSnap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

SnapChat Return Forensic Report Generator

This Python script generates a forensically sound HTML report from a CSV file containing SnapChat return data. The report includes metadata such as examiner details, hash values for integrity verification, and a user-friendly interface for adjusting timezone and daylight saving time settings. *Work in progress.

Features

Forensic Metadata: Includes examiner name, case number, source directory, and file hashes (SHA-256 and SHA-1) for integrity verification. Media Handling: Automatically locates and displays media files (images and videos) associated with messages. Timezone and DST Adjustment: User-friendly form to adjust timestamps according to different timezones and daylight saving time. Message Filtering: Option to filter messages by sender and recipient. Forensic Soundness: Ensures data integrity and accurate reporting.

Ensure you have installed pytz pip install pytz

Usage

Prepare your CSV file:

*preformatted chat.csv received from SnapChat.

Ensure your CSV file contains the following columns:

id,from,to,body,href,media_id,saved,timestamp

Run the script:

python unsnap.py [options]

Options: filename: The path to the CSV file (required). --from: Filter by the sender (optional). --to: Filter by the recipient (optional). --output: The path to save the report (current python script working directory is the default: report.html). Example: python report_generator.py data.csv --from alice --to bob --output report.html

Input Metadata: When prompted, enter the examiner's name and case number.

Sample Workflow Clone the repository:

python unsnap.py sample_data.csv

Enter Metadata: Enter Examiner's Name: John Doe Enter Case Number: 123456 Open the Report: Open the generated report.html in your browser to view the forensic report.

Functions parse_timestamp(timestamp_str): Parses a timestamp string into a datetime object. find_actual_header(file): Finds the actual header row in the CSV file. extract_media_id(string): Extracts the media ID from a string. parse_arguments(): Parses command-line arguments. calculate_hashes(filename): Calculates SHA-256 and SHA-1 hashes of the CSV file. locate_media_files(media_id): Locates media files based on the media ID. generate_report(args, metadata, messages): Generates the HTML report. main(): Main function to run the script.

Error Handling Ensures the CSV file contains the correct header. Handles invalid timestamps. Checks for duplicate field names in the CSV file. Contributing Feel free to fork this repository and submit pull requests. For major changes, please open an issue first to discuss what you would like to change.

License This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages