PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multimedia-Sicherung: .BR25-Dateien umwandeln


murrsky
21.01.2022, 22:55
Beim Sichern der Musiktitel auf USB-Festplatte werden Dateien erstellt, die auf den ersten Blick mit keinem gängigen Format kompatibel sind. Siehe auch
https://7-forum.com/forum/showthread.html?t=242357

Nach etwas Experimentieren fand ich heraus, dass die Umwandlung in ein gängiges Format äusserst einfach ist: Nach dem Invertieren sämtlicher Bits (xor 0xFF) erhielt ich einwandfrei abspielbare AAC-Dateien.

Der Erwerb kostenpflichtiger Programme ist somit überflüssig.

murrsky
21.01.2022, 23:00
Die folgenden, wenigen Zeilen C-Code übernehmen genau diese Aufgabe: Das Invertieren sämtlicher Bits.

#include <stdio.h>
#include <stdlib.h>

// Simple converter (de-obfuscator) for silly .BR25 files

#define ERROR(Str) \
{ \
printf ("%s\n", Str); \
exit (2); \
}

int main(int argc, char *argv[])
{
FILE *pFileIn;
FILE *pFileOut;
size_t Size;
unsigned char *pBuf;
unsigned char Key=0xFF;

if (argc != 3)
{
printf ("Usage: %s <input file> <output file>\n", argv[0]);
printf ("<input file> : BR25 file to be converted\n");
printf ("<output file> : Output file with converted data, created by this program\n");
exit (1);
}
if ((pFileIn = fopen (argv[1], "rb")) == NULL) ERROR ("Cannot open input file")
if (fseek (pFileIn, 0L, SEEK_END)) ERROR ("Seek error on input file")
if ((Size = ftell (pFileIn)) < 0) ERROR ("Unable to get size of input file")
if (fseek (pFileIn, 0L, SEEK_SET)) ERROR ("Seek error on input file")
if ((pBuf = (unsigned char *) malloc (Size)) == NULL) ERROR ("Cannot allocate memory")
if (fread (pBuf, Size, 1, pFileIn) != 1) ERROR ("Error while reading input file" )
if (fclose (pFileIn)) ERROR ("Cannot close input file")

for (int i=0; i<Size; i++)
pBuf[i] = pBuf[i] ^ Key;

if ((pFileOut = fopen (argv[2], "wb")) == NULL) ERROR ("Cannot open output file")
if (fwrite (pBuf, Size, 1, pFileOut) != 1) ERROR ("Error while writing to output file")
if (fclose (pFileOut)) ERROR ("Cannot close output file")

free(pBuf);
exit(0);
}

murrsky
21.01.2022, 23:12
Als br25.c abspeichern. Unter Linux kompilieren mit

gcc br25.c -o br25

Das simple Standard-C-Programm lässt sich unter allen Betriebssystemen kompilieren. Unterstützung gebe ich jedoch nur für Linux.

Nach dem Kompilieren aufrufen wie folgt:

./br25 Datei.BR25 Datei.aac


Bei Fragen helfe ich gerne weiter, oder übernehme auch die Konvertierung für Forums-Mitglieder (gratis, versteht sich).

Ich habe bisher nur die .BR25-Dateien meines eigenen Autos testen können. Gerne aber helfe ich auch bei anderen "BRx"-Dateien weiter - ich denke nicht, dass diese viel komplizierter sein werden.