I might try out another library the next time. There are other libraries such as PySoundFile, scripy.io.wavfile, etc. If not successfull, maybe every 2nd or 3rd byte is used to hide a bit from the secret message.įor that approach I used the Python wave library. Let’s check if that way a secret text can be reconstructed. So the next approach is to extract the data and to read the LSB bits of each byte of the data. If one replaces the LSB of each byte in the data, it is possible to embed a secret message. LSB algorithm replaces the LSB of each Byte As I am not very familiar with making decisions based on the waveform and based on the fact, I did not find a hint here, the research goes on. As the sample has two channels of audio we also see two waveforms. Sonic Visualisier I ran the audio sample in Sonic Visualiser, analyzing the spectrum of frequencies and waveform for a hidden text/flag with common approaches (tweaking around the brightness/contrast, etc.). Step 2 : Usage of known Sound Visualization Tools mediaInfo -> same as exiftool (use one or another).strings -> strings audio.wav | awk ‘length($0)>8’ -> nothing interesting.Other tools include Audacity or Sonic Visualiser, which might give some information about encoded text in the audio waveforms or spectogram.īased on above hexdump, it is clear, that the file format is correct and there is no manipulation as to the file type. Solving the challengeĪs with image files, stegonagraphy might be used to embed a secret message/flag in the (meta-) data, thus a quick win is to use tools like exifool, strings, mediaInfo, file and binwalk. The sample has 48000 samples per seconds, which means that 48'000 samples are used to create 1 second of sound. The sample rate gives information about the samples/frames that exists for each second of data. One sound wave goes to the left speaker, the other to the right speaker. The above sample has two channels, which stands for “Stereo”, meaning that it consists of two different sound waves that are played at the same time. Please refer to one of the references below for a deeper insight. There might be optional chunk types included in a wave format. As we will see below it is based on chunks and sub chunks.Ī left and right channel form a sample frame The file format can store many kinds of data, formost multimedia data like audio and video. What one can see from the below hexdump (default order is little-endian), is that RIFF (Resource Interchange File Format) acts as a wrapper for the wav format. If someone wants to have a look at the hexdump: To extract the metadata one can use various commands, such as exiftool, file, mediainfo or others # file audio.wav audio.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 48000 Hz # exiftool audio.wav ExifTool Version Number : 11.65 File Name : audio.wav File Size : 1183 kB File Type : WAV MIME Type : audio/x-wav Encoding : Microsoft PCM Num Channels : 2 Sample Rate : 48000 Avg Bytes Per Sec : 192000 Bits Per Sample : 16 Duration : 6.31 s Furthermore, there is a sequence of data bytes. I will not go much into detail, but out of curiosity I wanted to understand more about the wav file format and found a great source.Ī wave file contains a header containing important information for playing the audio file (such as frames per second, bits per sample, num of channels, etc.). Wohoo yes that sounds very easy, but doing it for the first time, it can get very interesting.īefore I dive into the challenge itself let’s see how the wav format looks like. When I googled for flags or secret texts in audio files, I mostly found recommendations as: (1) Use Audacity or Sonic Visualiser, (2) check the waveform and spectrum for hints, (3) LSB might have been used to hide text or (4) maybe infra- or ultrasound range is used to transmit a secret text.
0 Comments
Leave a Reply. |