Image extraction(.tiff) from T.38 packets - security

Can anyone guide me in extracting images (recostructing .tiff files) from T.38 packet captures (.pcap) files? The input is the .pcap file and the .tiff file is the required output.
I am currently using fax2tiff tool, but I cannot understand which part of the pcap file should the input file of fax2tiff command contain.

Related

Decrypting Image Headers for WebP, JPEG XL, HEIF, AVIF image formats using Python

I want to decode and understand the structure of various latest image formats (namely WebP, JPEG XL, HEIF and AVIF) and compare header information with respect to image data to see which format is header information heavy with respect to image data. I was wondering how I can do this using Python.
Is there a simple way to decode various image file formats of the same image in either HEX or Binary and learn how much of the file contents is the image data and how much else is the header information? Better yet, is there a way to learn the breakdown of header information for various file formats??
So far I got to a point where I got a file to open in binary mode (Below is the sample code I have for the AVIF test image) but I'm not sure how I can decrypt, read and understand the structure. Googling around, I found some information for JPEG format (like the information shown on this page for JPEG https://yasoob.me/posts/understanding-and-writing-jpeg-decoder-in-python/) but none for WebP, HEIF, and AVIF on how I can read the binary format.
image = 'test.avif'
with open(image, 'rb') as image_file:
content = image_file.read()
Content
I wish to know how exactly can we extract the header information from the images while compression.

Extract WAV from RAW database file

I have a .raw file. The header seems XML and the included files .wav.
What I know is the filename, the offset and the filesize of the particular files.
What I've tried is extracting a .wav from the .raw file with:
dd bs=1 seek=1147710 count=455346 if=Data.raw of=output.wav
But the file was not playable. I added a .wav header from another .wav and all what I got was noise. Maybe I extracted the file wrong?
The beginning of the .raw file looks like this:
<FILE name="File 1.wav" offset="1147710" size="455346"/>
and after all those flags I get only data for a million lines:
ö•Æû^0å?w±lŽ{ÜA2ôy™^¼’rBõM,Ó¾ä¥x‹ƒº£Ö
Can anyone point me in the right direction? Do I need to add a header to it? Or did I extract it wrong?
Thank you
Extract with dd
Add .wav header from another file, but not sure if I got the header right
Played without header (didn't play)

Play RTMP streaming and also want to update the mp3 file without breaking stream while running stream in parallel

The thing which I am doing right now is that I am playing RTMP streaming on media server using ffmpeg command and also creating an audio file using google text to speech.
So I want to update mp3 file with silence if there is no content, so that it will keep will keep stream running.
I have tried 2 approaches:
By writing raw binary data to mp3 file but not working as it says content is not accurate.
Concatenate the audio content with the silence data and export file. In this scenario, I am able to update file but stream broken at the point while we are exporting file.
I have tried to write the audio file with binary data and also tried to concatenate audio content with silence and then export file but it break stream while we export the file.

Creating M4A file from MP4

I want to create an M4A file from an MP4, I want to attempt this from scratch without using other libraries but just the raw data.
So far I am able to locate the atom moov and parser it. And as a result I can pull the audio data from the mdat. So then I create my own M4A file with the right ftyp (M4A isomiso2) then add a new mdat with just the audio data I previously recovered, finally I add the moov with the same mvhd, and only the audio trak but with an updated stco to reflect the change in offsets of the chunks of audio data (as they are just one after each other now). I am sure I am doing all of this right.
However the M4A file just plays silence. I believe it is because I have to edit more in the moov but I am not sure what - I put it into FFmpeg corruption and I got:
"Sample rate index in program config element does not match the sample rate index configured by the container."
"Too large remapped id is not implemented."
So as a result I think it is something to do with the stsd atom but I am not sure how to change it.

How to detect if a file is encoded using mp3PRO?

I have a folder which contains lot of MP3 files, some of them are encoded using mp3PRO.
Since this format is now obsolete, I'd like to convert them back to MP3 (converters can be found easily).
Is there is a way to detect programatically if a file is encoded using mp3PRO format ? (eg : by looking at file header or specific signatures using an hex editor)
The official player is able to detect if file is encoded using mp3PRO (the logo is highlighted or not) so I suppose this is technically possible.
What I found so far is that bitrate of mp3PRO file appears to be pretty low (50% of non encoded file) : eg : a 128 kbps file will appears as 64kbps. However a 320 kbps file will appears as 160 kpbs (which are pretty common) so it cannot be used as a rule.
Here is what I found out and how I fixed it. I wrote in here in case somebody would need it :
MP3Pro files does not contains any special flag in the mp3 header that would help to recognize them.
They are technically very similar to usual mp3 files, except they are encoded half the bit and sample rate (eg : a 128kpbs 44100hz file will be encoded as a 64kps 22050hz file, resulting in mp3pro file being approx half the size of original file).
This has been made for compatibility, so default players can play them without any change.
They also contains some SBR data, which allow to synthetically rebuild the lost audio part (high frequencies) and to play them it was before the mp3 pro conversion.
Detecting the SBR data seems very hard if not impossible : it would require to decode the actual mp3 frames. Also there is no documentation to be found about mp3pro format.
What I did (which works but required some manual effort) : I added all files to be checked to playlist of an mp3 player (foobar 2000 in my case) then sorted the files on the sample rate column : most 22050 hz mp3 files were indeed mp3 pro files.
They were converted back to mp3 using winamp + the mp3pro plugin made for it, available here : http://www.wav-mp3.com/mp3pro-to-mp3.htm

Resources