Skip to content

Latest commit

 

History

204 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ByteCarve

An Avalonia desktop tool for carving fil

es from raw binary data, recovering embedded media by signature, and experimenting with low-level disassembly workflows.

C# Avalonia MVVM SQLite Binary

PNG JPG BMP Inter

Demo Screenshots Architecture Why


Overview

ByteCarve is a desktop forensic-style utility built with C#, .NET 10, and Avalonia UI. The app takes a raw file, lets the user choose a carving mode and output folder, scans the byte stream for recognizable file signatures/extracts recoverable content, and presents the result in a clean report view.

The current focus is media carving, with support for detecting and extracting embedded PNG, JPG, and BMP data. The repo also includes a low-level disassembly layer with instruction-group services for branches, loads, register operations, scalar operations, and immediate data-processing experiments.

Demo

Screenshots

Screen Preview
Source Picker image
Configuration image
Carving Progress image
Report image
History image

Core Workflow

Pick source file
      |
      v
Choose carve mode + output folder
      |
      v
Scan raw bytes for known signatures
      |
      v
Extract recovered files
      |
      v
Show report + save history

What ByteCarve Does

Area Details
File selection Uses Avalonia storage APIs to pick the source file from disk.
Carving setup Lets the user choose a mode and output location before starting.
Signature scanning Searches raw byte data for known file headers and structured endings.
Media recovery Extracts PNG chunks until IEND, JPG scan data until FFD9, and BMP content by size header.
Progress page Shows a dedicated carving screen while extraction runs.
Report view Displays the carve name, duration, output folder, and recovered file count.
History Stores past runs in a local SQLite database.
Disassembly lab Includes service classes for experimenting with instruction decoding logic.

Architecture

Layer Files Role
App shell App.axaml, MainWindow.axaml, ViewLocator.cs Starts Avalonia, loads views from view models, and hosts page navigation.
View models PickViewModel, ConfigsViewModel, CarvingProgressViewModel, ReportViewModel, HistoryViewModel Own the app flow and screen state.
Views PickView, ConfigsView, CarvingProgressView, ReportView, HistoryView Styled Avalonia screens for each step.
Carving engine Models/carver.cs Reads the binary input and extracts media files by signatures and format structure.
Storage Models/database.cs, Assets/admin.db Saves and loads run history through SQLite.
Disassembly services Services/Branches.cs, Loads.cs, DP_* Experimental instruction decoding modules.

Tech Stack

Tech Usage
C# / .NET 10 Core app logic and binary-processing code
Avalonia 12 Cross-platform desktop UI
CommunityToolkit.Mvvm Observable properties and relay commands
Microsoft.Data.Sqlite Local history database
Inter Font + Fluent Theme Clean desktop styling

Running Locally

cd ByteCarve
dotnet restore
dotnet run

Or build only:

dotnet build

Why I Built This

well,reverse engineering was always something that attracted me yet i had no knowledge about it , so yea here goes an Aarch64 disassembler just for fun , but jokes aside thie repo really did help me get better at low level systems and really got a string foundation on binaries/registers/buckets etc , fun and interesting repo! (i sold my soul to finish this...)

Developer Notes

now for the notes:

  • recorded hours of work : lost count after the 62th hour ..
  • monsters/redbulls digested : 36 cans .
  • current flaws : i have substracted several subbuckets , especially in the loads buckets , because god forbid i sit there for another * * month designing more subbuckets , i am not making a production level disassembler. *frontend : helped by a web-dev friend (mostly he used generative ai ), i aint a front-end developer to spend weeks on the ui *total sub-buckets: 38 , price: my soul ..
  • this repo is a learning project , not a serious project , further updates and commits will contribute into upgrading it into a more production ready state *NOTE : all of the subbuckets are made by me , the only sub-bucket i used capstone for was in the data_processing_immediate section , it was an isolated and very long sub-bucket so it wasnt worth the time and effort.

Built with C#, Avalonia, MVVM, SQLite, byte signatures, and low-level curiosity.

About

A toolkit for binary analysis and disassembly across x86 and ARM architectures, featuring an integrated file-carving module that recovers BMP, JPG, and PNG images from binaries.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages