117 lines
3.2 KiB
Markdown
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.
|