Dateien in Bildern verstecken und bei Klick ausführen

4 Antworten

So einfach geht das nicht. Die Dateiendung legt den Dateityp fest. Du magst zwar eine .exe in einem Bild verstecken können, aber solange die Endung .jpg ist, wird das auch nur als Bild erkannt. Andersherum genauso: Mit der Endung .exe kannst du das Bild nicht mehr betrachten.


questionanswer7 
Beitragsersteller
 17.12.2014, 18:10

Mmh, kann man es irgendwie möglich machen, die Bilddatei zur Exedatei zu verlinken und dadurch mit einem Klick auf das Bild die .exe starten?

Gruss

Sftwire  17.12.2014, 18:20
@questionanswer7

Nein, kann man nicht. Das ist eine Sicherheitsfunktion von Windows. Bilder können nur das, was Bilder halt so können.

Du kannst eine "Trennlinie" zwischen die beiden Dateien schreiben, die aus einer einzigartigen Zeichenfolge besteht.

echo ---Einzigartiger Code als Trennlinie--->Trennlinie.tmp
copy /b tarnbild.jpg + Trennlinie.tmp + tarndatei.exe ausgabebild.jpg
del Trennlinie.tmp

Zum Zurückwandeln schaust du mit einem FOR-Befehl, wo diese Trennlinie ist, und kopierst alle folgenden Zeilen in eine neue Datei. Diese neue Datei ist dann deine "tarndatei.exe".

Problematisch wird das jedoch bei nicht-druckbaren Zeichen wie {NUL}, was in .EXE-Dateien sehr oft vorhanden ist. Ist jedoch eine Batchdatei und keine EXE an die JPEG angehängt, dürfte dieses Problem nicht auftreten.

Setlocal EnableDelayedExpansion
set Counter=0
set Counter2=0
FOR /F "delims=:" %%A IN ('findstr /N "---Einzigartiger Code als Trennlinie---" ausgabebild.jpg') DO set Trennzeilennr=%%A
FOR /F "skip=%Trennzeilennr% delims=" %%A IN (ausgabebild.jpg) DO (
    set /a Counter+=1
    set Zeile!Counter!=%%A
)
:Write_File
set /a Counter2+=1
echo !Zeile%Counter2%!>>tarndatei_neu.exe
if "%Counter2%" == "!Counter!" exit
goto Write_File

Ich habe dieses Konzept schonmal in Verbindung mit dem MAKECAB-Befehl benutzt. Video dazu unter www.youtube.com/watch?v=PvZd3gc9QeQ


S1r1us13  18.12.2014, 17:54

Sorry, habe vergessen zu schreiben, was das überhaupt macht:

Es extrahiert die versteckte Datei aus der Sammeldatei. Mit dem START-Befehl kannst du die (zuvor) versteckte dann starten.

Ich meinte natürlich:

Es gibt einen Befehl in der Konsole, welcher eine Datei in einer anderen versteckt, jedoch nur das "Tarnbild" und nicht die versteckte Datei ausführt.

copy /b tarnbild.jpg + verstecktedatei.exe ausgabebild.jpg