CyberChef icon indicating copy to clipboard operation
CyberChef copied to clipboard

Add new operation: Generate Spectrogram

Open brun0ne opened this issue 2 years ago • 1 comments

Overview

Resolves #1207. Analyzing audio spectrograms for hidden data is often needed during CTFs.

Dependencies

I tried to make it as standalone as possible - still, it includes two new dependencies:

  • wavefile - to parse a raw wave
  • dsp.js - for RFFT (Discrete Fourier Transform)

Both of these do not have further dependencies, and they can be useful in the future for adding more audio-related operations. If it's not acceptable, please let me know.

Limitations

To not make it overly complicated I only implemented a rectangular window (in Audacity the default is Hanning) - more options in that regard could be useful, but for simply looking for some hidden text, I think it's capable enough. Also, more color schemes could be added, or a package like colormap could be used instead.

Tests

Writing tests for it was quite tricky - there are currently no wave samples available for use in tests, and some imports didn't work correctly when I tried. I decided to wait for some feedback or leave it to someone who knows better how to do it.

brun0ne avatar Apr 10 '23 17:04 brun0ne

Hey! This pull request has gotten rather old and that's our fault. This project stopped being actively maintained for a while and it looks like your pull request has started to gather dust. Would you be able to update your branch to the latest version of CyberChef and we'll give it a review?

a3957273 avatar Feb 16 '25 01:02 a3957273