Skip to content

MaythFall/CalorMap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CalorMap

Calor - heat

Description

CalorMap is a data visualization tool that maps byte data to colors. This allows for the analysis of patterns within data and can assist with identifying entropy within encrypted or obfuscated files. This project was created to assist with analyzing the output from a obfuscation algorithm I am working on.

Installation

CalorMap is simple to install it is simplpy the CalorMap.hpp file. There are two dependencies, stb and CLI11 but both are also header only files, so make sure to copy those as well. Include Directories:

  • include/Contains CalorMap.hpp
  • external/CLI11.hpp and stb_image_write.h

Usage

CalorMap has one CLI command if you are compiling the whole system ./calormap -i file. If its used in another workflow just create an CalorMap object and call the map function:
CalorMap calormap; calormap.map(file);

Technical Highlights

  • High-Performance Concurrency: Implements a multi-threaded batching engine using C++20 std::barrier and std::jthread to decouple heavy file I/O from compute-intensive mapping.
  • Mechanical Sympathy: Utilizes a 256-entry Look-Up Table (LUT) to ensure the hot path for byte-to-color transformation remains entirely within the CPU's L1 cache.
  • Memory Safety & Precision: Employs ceiling-division geometry to ensure the pixel buffer is always correctly sized for the input, preventing buffer overflows while maintaining a "square-ish" visual aspect ratio.
  • Visual Entropy Auditing: Leverages the perceptually uniform Inferno color scale to assist in identifying the "Avalanche Effect" and information diffusion within cryptographic kernels.

A Note on Resource Management

While the system chunks the input file to minimize I/O overhead, the final image is stored as a contiguous std::vector<uint32_t> in memory.

  • Scaling: Each byte of input data requires 4 bytes of RAM for the RGBA output.
  • Padding: Files that are not perfect squares are automatically padded with a dark gray color (0x333333FF) to maintain grid integrity and provide a clear visual boundary for the data's end.

License

CalorMap is open-source and free use, see License for more details.

About

File entropy visualizer

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages