Autor |
Beitrag |
FloFri
      
Beiträge: 97
|
Verfasst: Do 20.03.03 13:10
Hi!
Ich wollte mal fragen, ob es möglich ist Daten auf Byte-Ebene in der Mitte einer Exe-Datei zu verstecken? Dass es (fast) ohne Probleme am Ende geht weis ich, aber ich würde die gerne so zu sagen "zwischen den Zeilen" verstecken.
Geht das und wenn ja, wie mache ich das am einfachsten?
MfG
FloFri
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Do 20.03.03 17:52
Also, in der Mitte sind ja die Daten, also ASM. Außerdem in der EXE: Ressourcen. gut, soweit ich weiß sind die am Anfang, aber versteck's doch dadrin. z.B. kannst du mit Steganographie irgendwelche Daten in Ressourcen-Bitmaps verstecken.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloFri 
      
Beiträge: 97
|
Verfasst: Do 20.03.03 20:01
ressourcen sind auch am ende. habe mal was von so genannten daten-löchern gehört, die in den exe-dateien sind, zum beispiel zwischen dem dos-stub und dem hauptcode ist eines. Ich müsste nur wissen, wie man die findet.
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Do 20.03.03 20:10
Also, da bin ich ein Laie. Aber unter www.wotsit.org/ gibt's eine Auflistung etlicher Dateiformate, u.a. dem EXE-Format. Da findest du evtl. was darüber, wenn auch meistens in Englisch.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Do 20.03.03 21:36
*brrrr*
Win 32 Dateien, sogenannte PE's können nicht einfach in der mitte aufgesplittet werden, und Daten reingeschrieben werden. Da diese Dateien segmentiert werden und am Anfang (Header) die einzelnen Offsets stehen, glaub ich kaum, dass die Win-dose begeistert darüber sein wird, wenn es statt einem Sprungbefehl, ein mit steganographie verrödelte nackte Weiblichkeit als Bitmap findet. (würd mich mal interessieren, was da pssiert *grübel*LOL*).
In alten DOS-Zeiten hat man das immer so geregelt, dass man im Code selber:
const
VarFindID='1212121212'
VarFindData='meine externen Daten stehen hier'
VarFindDataEndID='3232323232'
geschrieben hat, und die Anwendung in der ExeDatei nur den ID suchen musste und man kann dann mit diesem Offset den String(oder die Daten) VarfindData in der Exe-Datei selber modifizieren.
Geht leider nicht mehr. Windows verbietet einer laufenden Anwendung, ihren eigenen Code zu beschreiben.
Grüße
MSCH
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Do 20.03.03 21:48
Dann.. eine ziemlich triviale Lösung: Speicher die Daten also Konstante, z.B. als Byte-Array. Dann kannst du die Daten z.b. via RegisterwindowMessage() und PostMessage() oder via DDe übertragem.
@MSCH:
Zitat: | Win 32 Dateien, sogenannte PE's können nicht einfach in der mitte aufgesplittet werden, und Daten reingeschrieben werden. Da diese Dateien segmentiert werden und am Anfang (Header) die einzelnen Offsets stehen, glaub ich kaum, dass die Win-dose begeistert darüber sein wird, wenn es statt einem Sprungbefehl, ein mit steganographie verrödelte nackte Weiblichkeit als Bitmap findet. (würd mich mal interessieren, was da pssiert *grübel*LOL*). |
Glaubst du etwa, ich würde das Bitmap irgendwo in's PE-Image streamen? die Rede war von Ressourcen, und ich dachte, dass man einach 'ne Ressource einbindet, und das ganze mittels Steganographie, damit's schwerer zu finden ist (für Hacker -> Datenschutz!!!). Oder wie war das gemeint?
_________________ Life is a bad adventure, but the graphic is really good!
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Do 20.03.03 21:56
Zitat: | Verfasst am: Do 20.03.03 10:10 Titel: Daten in der Mitte einer Exe "verstecken"
--------------------------------------------------------------------------------
Hi!
Ich wollte mal fragen, ob es möglich ist Daten auf Byte-Ebene in der Mitte einer Exe-Datei zu verstecken? Dass es (fast) ohne Probleme am Ende geht weis ich, aber ich würde die gerne so zu sagen "zwischen den Zeilen" verstecken.
Geht das und wenn ja, wie mache ich das am einfachsten? |
Sorry aber dann ist die Frage etwas falsch gestellt.
grez
MSch
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Do 20.03.03 22:02
Tja, kann sein, egal.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Fr 21.03.03 22:01
mal nur so als Einfwurf: Ist Steganographie nicht auf Bilder beschränkt? Ich kenne das Verfahren nur, um alle möglichen Dateien innerhalb von Bildern zu verstecken, nicht in jeder beliebigen Datei. In Bildern funktioniert das vermutlich durch Bildfehler, die dem menschlichen Auge kaum auffallen. Ich habe noch nie davon gehört, das Steganographie auch auf Nicht-Multimedia-Formate (bei Musikdateien geht's glaub' ich auch) anzuwenden ist. Oder liege ich da falsch?
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Fr 21.03.03 22:18
100 Punkte! Mein Gedankengang war auch nicht, die Daten "irgendwo reinzuwurschteln", sondern ganz "legal" eine Bitmap-Ressource einzubauen, in der vie Steganographie die Daten enthalten sind. Steganograophie verändert die LSB (least significant bits) der Pixel. Das nimmt kein Auge Wahr! Außer ein Algo, denn der ASCII-Code für Buchsctaben endet immer mit 0, da müsste man sich was einfallen lassen, ums 110%ig sicher zu machen.
_________________ Life is a bad adventure, but the graphic is really good!
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Fr 21.03.03 22:28
Und ich glaube, die Anzahl an Infos, die per Steganographie in ein Bild passen, ist begrenzt. Also müsste die EXE Bitmap-Ressourcen in ausreichender Menge/Größe beistzen und man müsste wissen, wie man da ran kommt. Denn wenn ich die Frage richtig verstanden habe geht es um beliebige EXEs, nicht um eigene (oder?). Also müsste man eigentlich ein "Nein" als Antwort geben, da man nicht pauschal sagen kann, daß man alle benötigten Infos in eine EXE bekommt. Außerdem muss man wissen, wie man an die Ressourcen (die ja bereits in die EXE kompiliert sind) rankommt. Ich würde sagen, das ghet nur mit Bildern, nicht mit EXEs...
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Andreas Pfau
      
Beiträge: 997
|
Verfasst: Fr 21.03.03 22:37
War halt nur so 'ne Idee...
_________________ Life is a bad adventure, but the graphic is really good!
|
|
FloFri 
      
Beiträge: 97
|
Verfasst: Sa 22.03.03 11:16
ich mein schonmal ein programm gesehen zu haben, was auch in exen verstecken kann, ich schau mal, ob ich das finde.
Es gibt diese "Datenlöcher" das sind bereiche, die bei der Ausführung durch jumps übersprungen werden. So zum Beispiel der Ungenutze Dos-Stub, Probierts auch, am anfang der Exe ist ein grosser bereich mit 00 da könnt ihr reinschreiben, was ihr wollt und das Prog funzt immer noch, aber ich weis nicht, wie ich andere "Löcher" finden kann.
|
|
recall
      
Beiträge: 449
|
Verfasst: So 10.08.03 14:53
Hallo,
Das mit den Datenlöchern ist aber ziemlich begrenzt (Datenmenge).
Machs doch wie einige Viren: Jumper finden, umleiten, eigenes Programm als "Virus" einpflanzen und wieder weiterjumpen !!!
In deinem Prg die Daten zu verstecken ist dann ja nicht mehr schwer
Viele Grüsse.
|
|
Gast
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.08.03 17:47
Erstmal klare Aussage bitte: Guest-Binärdatei in Bitmap verstecken und diese in die Host-EXE oder wie?
In diesem Falle mußt du einfach nur die Bitmap binär laden (FindResource etc) und dann die Guest-Daten extrahieren. Ist also kein Problem. Ich binde es immer direkt als Ressource ein (Beispiel dazu ist BINRES in meinem Hooktutorial).
Viren hängen meist Code an, ändern den Eintrittspunkt und benutzen dann selbstreferenzierenden Code. Danach wird zum eigentlichen (ursprünglichen) Eintrittspunkt gesprungen und die "EXE" ausgeführt.
|
|
|