The goal of this project is to implement similar functions to ..cantor.dust.. in Python
The main GUI components are built with PyQt5 and with Vispy It's running on Windows and Linux as well, and because of Vispy, the graphics performance is great because of the GPU utilization
Done:
- Heatmap display of byteplots of the file for range selection
- 2D digraph heatmap represenation of file
- 2D Hilbert curve representation of
Planned:
- implement range selection with range slider widget
- 3D digraph display of selected section
- 3D Hilbert curve display of selected section
- Histogram display of selected section
- Hex location selection by mouse
- Change display type selection (heatmap colors etc.)
- Improve load performance and memory management
- Byteplot display with arbitrary width
WINDOWS
# Create venv
python -m venv venv
# Enter venv
.\venv\Scripts\activate.bat
# Install dependencies
pip install -r requirements_windows.txt
# If everything is ok, start main.py
python .\src\main.py
LINUX
# Create venv
python -m venv venv
# Enter venv
source venv/bin/activate
# Install dependencies
pip install -r requirements_linux.txt
# If everything is ok, start main.py
python ./src/main.py
(I couldn't generate a release yet because Vispy and Pyinstaller are not the best of friends)
Related links
Derbycon 2012 talk that inspired this project
Open source publication article
Original Github release (note, that this is not what was demoed, it's a Ghidra )
Papers, concepts and useful stuff
https://corte.si/posts/visualisation/entropy/index.html
https://inside.battelle.org/blog-details/battelle-publishes-open-source-binary-visualization-tool
https://github.com/Battelle/cantordust
https://gynvael.coldwind.pl/?id=199
http://vigir.missouri.edu/~gdesouza/Research/Conference_CDs/IEEE_WCCI_2020/CEC/Papers/E-24183.pdf
https://www.sciencedirect.com/science/article/pii/S0167404822000591
https://wiki.python.org/moin/PyQt/Creating%20a%20widget%20with%20a%20fixed%20aspect%20ratio