Files
BinaryConverter/Readme.md
T
2026-05-23 14:23:37 +02:00

117 lines
3.2 KiB
Markdown

# BinaryConverter
BinaryConverter ist eine C# Konsolenanwendung für Windows 11 und .NET Framework 4.8.1. Sie kodiert binäre Dateien in ein Base64-Textformat, das sich per Copy & Paste auf einen anderen Host übertragen laesst, und dekodiert die Textdatei dort wieder in die binäre Originalform.
## Funktionen
- Streaming-Verarbeitung fuer grosse Dateien, auch mehrere hundert MB
- Base64-Ausgabe mit stabilen Zeilenlängen fuer Copy & Paste
- Metadaten im Transferfile: Formatversion, Originaldateiname, Länge, SHA-256
- Integritaetsprüfung beim Decode ueber Dateigröße und SHA-256
- Fortschrittsausgabe auf der Konsole
- Optionales Logfile
- Temporäre Ausgabedatei bei Encode und Decode, damit bei Fehlern keine kaputte Zieldatei stehen bleibt
## Build
Voraussetzungen auf Windows:
- Windows 11
- Visual Studio 2022 oder Build Tools for Visual Studio
- .NET Framework 4.8.1 Developer Pack / Targeting Pack
Build in einer Developer PowerShell:
```powershell
msbuild .\BinaryConverter.sln /p:Configuration=Release
```
Die EXE liegt danach hier:
```text
BinaryConverter\bin\Release\BinaryConverter.exe
```
Native Linux-Version fuer Arch Linux:
```bash
cd native
make
```
Die native Binary liegt danach hier:
```text
native/build/binaryconverter
```
Voraussetzungen unter Arch Linux:
```bash
sudo pacman -S --needed base-devel openssl pkgconf
```
## Nutzung
Encode:
```powershell
BinaryConverter.exe -Encode C:\temp\PowerShell.exe -Output Out.txt
```
Decode:
```powershell
BinaryConverter.exe -Decode Out.txt PowerShell.exe
```
Unter Linux wird dieselbe Syntax mit der nativen Binary verwendet:
```bash
./native/build/binaryconverter -Encode input.bin -Output Out.txt
./native/build/binaryconverter -Decode Out.txt output.bin
```
Alternative Decode-Syntax:
```powershell
BinaryConverter.exe -Decode Out.txt -Output PowerShell.exe
```
Mit Logfile:
```powershell
BinaryConverter.exe -Encode C:\temp\PowerShell.exe -Output Out.txt -Log BinaryConverter.log
```
Existierende Ausgabedatei ueberschreiben:
```powershell
BinaryConverter.exe -Decode Out.txt PowerShell.exe -Force
```
## Optionen
| Option | Bedeutung |
| --- | --- |
| `-Encode <Datei>` | Binaerdatei in Transfer-Textdatei kodieren |
| `-Decode <Datei>` | Transfer-Textdatei zurueck in Binaerdatei dekodieren |
| `-Output <Datei>` | Ausgabepfad |
| `-Force` | Existierende Ausgabedatei ueberschreiben |
| `-Log <Datei>` | Zusaetzlich in eine Logdatei schreiben |
| `-NoProgress` | Periodische Fortschrittszeilen abschalten |
| `-Quiet` | Nur Fehler auf der Konsole ausgeben |
| `-Help` | Hilfe anzeigen |
## Transferablauf
1. Auf dem Quellhost `-Encode` ausfuehren.
2. Inhalt der erzeugten Textdatei auf den Zielhost kopieren.
3. Auf dem Zielhost den Text als Datei speichern, zum Beispiel `Out.txt`.
4. Auf dem Zielhost `-Decode Out.txt <Zieldatei>` ausfuehren.
5. Die Anwendung prueft Laenge und SHA-256 automatisch, sofern das Transferfile von BinaryConverter erzeugt wurde.
## Hinweise
Base64 vergroessert die Datenmenge um ungefaehr ein Drittel. Eine 300-MB-Datei erzeugt also grob eine 400-MB-Textdatei plus wenige Metadatenzeilen. Fuer sehr grosse Dateien ist es sinnvoll, das Copy & Paste ueber einen Editor oder ein Terminal zu machen, das grosse Textmengen stabil verarbeiten kann.