Beiträge von Xenon

    @Xenon, die Dateiendung nützt einem aber nicht sonderlich viel, besser wäre der komplette Dateiname!


    Ich hatte ein bisschen Zeit und hab das Skript angepasst, dass jetzt der gesamte Dateiname gespeichert wird. Download wie immer in Post #1. Aber Achtung: Durch diese Änderung können die mit der alten Version erstellten Geheiminhalte leider nicht mehr entschlüsselt werden!


    //Edit: Das war Quatsch - verschlüsselte Geheimdateien mit einer bis zu 3 Buchstaben langen Endung werden normal entschlüsselt, Geheimtext wird lediglich als Datei mit der Endung "..." angezeigt und muss bloß gespeichert werden und dann im Editor angeguckt.


    Sehr fein wäre auch, Grafiken per DragnDrop direkt in ein Fenster ziehen zu können, damit könntest du die smilies hier aus dem Forum einfach auf das Stegano-Programmicon ziehen und weiterverarbeiten.


    Wurde hinzugefügt. ;)


    Es gibt jetzt zwei Möglichkeiten:

    • Man zieht eine Datei auf das kompilierte Skript (die .exe)

      • handelt es sich um eine Bilddatei, wird sie automatisch als Trägerdatei bei Ver- und Entschlüsselung eingetragen
      • handelt es sich um eine beliebige andere Datei, so wird sie als Geheimdatei eingetragen


    • Man kann auch direkt eine Datei in die entsprechende Gruppe (Trägerdatei/Geheimdatei) auf der geöffneten GUI ziehen

      • Vorteil: diese Methode geht auch mit Grafiken aus dem Browser (zumindest geht es bei Firefox ^^)
        -> Aber leider speichert Firefox die Grafiken als .bmp ab, und so erhalten die Smileys hier aus dem Forum einen schwarzen Hintergrund...


    To-Do
    : Man kann Ordner direkt auf die GUI ziehen und diese werden dann automatisch als .zip komprimiert.

    Zitat von Andy

    Allerdings hätte ich noch einige Anregungen. Nimm *.PNG (idR eignen sich alle verlustlos komprimierenden Grafikformate, auch jpg! ) mit in die Bildauswahl, Icondateien und Smilies eignen sich besonders gut zum Verschicken.


    Das Programm unterstützt jetzt folgende Dateitypen: png, bmp, jpg, tif. (Download in Post #1)


    Einzige Einschränkung: Die Trägerdatei kann zwar als jpg geladen werden, gespeichert werden (mit Geheiminhalt) muss aber unter einem anderen Format. Beim Speichern als jpg ging nämlich der geheime Inhalt verloren, was vermutlich an der verlustbehafteten Kompression liegt?


    Andy: --> autoit.de/wcf/attachment/25207/ <--

    Hallo allerseits,


    wie der Titel bereits andeutet habe ich ein kleines Steganografie-Skript geschrieben.


    Gestartet bin ich mit der Inspiration aus diesem Thread und habe dann versucht, das ganze mit Inline-Assembler (AssembleIt) umzusetzen. Für die Hilfe bei einigen Schwierigkeiten und der Optimierung des ASM-Codes möchte ich mich herzlich bei Andy bedanken! ^^


    Nun zu den Funktionen des Programms:

    • Verstecken von Text oder beliebigen Dateien in Bild- und Sounddateien (.bmp, .png, .tif und .wav werden als Trägerdateien unterstützt)
    • Auslesen des geheimen Inhalts :P

    Weiterhin sei angemerkt, dass die Geschwindigkeit des Programms im Vergleich zum gleichen Programm ohne Assembler extrem hoch ist. Dies war auch der Grund dafür, dass ich mich an die Umsetzung mit ASM gewagt habe. Ich zitiere dazu einfach mal Andy:


    Zitat

    Btw. wird mit ca. 500MB/Sekunde kodiert/dekodiert! Was bedeutet, dass 500KB Text in einer Millisekunde in einem Bild verschlüsselt/entschlüsselt werden! Das entspricht ca. 6 Prozessortakten pro verschlüsseltem Buchstaben!


    Im Anhang befindet sich das Programm als ZIP-Archiv. Im Archiv befindet sich die .au3-Datei, eine kleine DLL mit Icons für die Buttons des Programms sowie die Datei "Zip.au3", die im Skript genutzt wird, um Ordner direkt zu komprimieren.


    Download: autoit.de/wcf/attachment/25218/



    Ich wünsche viel Spaß beim Ausprobieren und bitte um Kritik am Programm (positiv und negativ).


    LG Xenon :)

    Okay, vielen Dank für deine tolle Erklärung! ;)
    Ich habe mein Skript jetzt nochmal umgeschrieben und dabei ist es gleich noch kürzer geworden:



    Jetzt läuft es ohne PUSH/POP und wird per AND bzw. OR verknüpft.



    Btw. leider funktioniert bei mir unter Win7/64 und 3.3.10.2 der in Assembleit integrierte Debugger nicht mehr. Das ist natürlich besonders ärgerlich, ich vermute wieder mal einige "Script breaking changes" in den bisher funktionierenden Funktionen...


    Also ich habe auch Win7/64 Bit und die Version 3.3.10.2, aber zumindest folgendes Debug-Beispiel von dir funktioniert bei mir:



    MfG Xenon :)


    PS: Ich hatte leider über Ostern nicht so viel Zeit und konnte erst jetzt antworten...

    Hallo Andy,


    erst einmal vielen Dank für deine Hilfe! :thumbup:


    Ich habe mein Problem jetzt lösen können, mein Programm funktioniert! Getestet habe ich es, indem ich die Entschlüsselung eben auch noch "gebastelt" habe. (Ich baue noch eine schöne GUI und dann veröffentliche ich das ganze im Skripte-Forum...)



    Deinen ersten Tipp mit movzx habe ich umgesetzt, wodurch sich auch das Problem mit den Null-Bytes (dein dritter Tipp) gelöst hat.
    Dein zweiter Vorschlag mit der Maske und der Verknüpfung erscheint auch logisch, aber den habe ich bis jetzt noch nicht umgesetzt. Dazu habe ich nämlich noch eine Frage. ^^ Was ist der genaue Vorteil? Denn mit meiner bisherigen Methode mit Stack klappt es bisher einwandfrei. Gibt es irgendwelche Nachteile bei der Verwendung des Stacks oder weshalb soll ich mir die push und pops sparen? Ich möchte deinen Tipp nicht ablehnen, mich interessiert nur der Unterschied zwischen den beiden Methoden. ;)


    Liebe Grüße,
    Xenon
    :)

    Hallo liebe AutoIt-Community! :)


    Wie die Überschrift schon verrät, bin ich dabei, ein Steganografie-Script nach diesem Vorbild zu schreiben. Mit AutoIt allein hat das ganze für mich auch kein Problem dargestellt. Nun wollte ich jedoch den Hauptteil, nämlich das Verstecken in der Bilddatei, mit Assembler (mit AssembleIt) umsetzen.
    Darin bin ich jedoch noch nicht gerade so erfahren wie in AutoIt, weshalb ich jetzt auch auf einige Problemchen stoße... ^^


    Zu meinem Skript:

    • Es wird per GDIPlus eine Bitmap-Datei geladen und der Pointer auf die Pixeldaten an den ASM-Code übergeben.
    • Der Geheimtext wird in eine DLL-Struct gepackt (ich hoffe, da mache ich soweit alles richtig - ganz sicher bin ich mir nicht...) und der Pointer dazu auch übergeben.
    • Der ASM-Code liest nun für jedes Pixel die ursprüngliche Pixelfarbe aus sowie ein Byte des Geheimtextes.
    • Die Pixelfarbe wird in (A)RGB getrennt und die untersten Bits der Farben durch Bits des Geheimtextes ersetzt (bei Rot und Grün 3 Bit, bei Blau 2 Bit -> insgesamt 8 Bit (1 Byte) pro Pixel).
    • Der neue Farbwert wird zusammengesetzt und am Ende in einer neuen Bitmap-Datei gespeichert.


    Was nicht so funktioniert: :S

    • Ich habe als Bitmap eine 2x2 Pixel reinweiße Bitmap genommen (Farbe: #FFFFFF; Datei siehe Anhang) und als Geheimtext "aaaa". Da in jedem Pixel genau ein Buchstabe versteckt wird, sollten alle Pixel am Ende wieder gleich sein (4 mal ein weißer Pixel mit "a" drin). Dies ist aber nicht der Fall, das erste Pixel ist andersfarbig.
    • Wenn die Länge des Geheimtextes kleiner ist als die Pixelanzahl, stürzt das Programm ab. Ich frage mich, wieso das Programm nicht richtig weiter macht, wenn es als Byte des Geheimtextes 0 ausliest. Denn das ist ja schließlich auch nur eine Zahl, oder nicht?


    Ich bedanke mich schonmal sehr für eure Hilfe, ich habe nun schon viele Stunden an diesem Skript verbracht und komme der Lösung leider nicht näher...


    LG Xenon :)


    PS: Ich habe es mal in diesem Forum gepostet, weil es hauptsächlich um ASM und weniger um AutoIt geht. Ich hoffe das ist okay so, ansonsten bitte verschieben. ;)

    Hallo,


    zum Sperren von einzelnen Tasten solltest du dir mal unbedingt die BlockInputEx-UDF ansehen. Damit kannst du z.B. nur Buchstabeneingaben (für Passwörter) zulassen. Außerdem kannst du auch Maus und Tastatur getrennt blockieren, was ich beispielsweise auch in meinem eigenen Skript "Screenlock" ausgenutzt habe. Lade dir am besten mal die UDF (Zip-Datei) herunter und schaue dir die verschiedenen Beispiele an.


    MfG Xenon :)

    Hallo tetex,


    herzlich Willkommen im Forum und viel Spaß hier!
    Hier wirst du ganz sicher einiges lernen! ;)


    MfG Xenon :)

    Hallo,


    ersetze mal Zeile 21 durch:_GUICtrlComboBoxEx_AddString($hCombo, $Colour[1], $i-1, 0)
    Mit dem 3. Parameter wird angegeben, welches Bild der ImageList verwendet werden soll. Da die Zählung der Imagelist mit 0 beginnt, dein $i aber mit 1 (siehe Schleife), musst du noch 1 abziehen.


    Anmerkung: Bei mir wird beim Überfahren Eintrages mit der Maus dessen Farbe auf schwarz gesetzt, aber wieso das so ist, weiß ich nicht...
    Edit: Ich habe es mal getestet, beim Überfahren wird die Farbe auf die erste Farbe der Imagelist gesetzt...


    MfG Xenon :)

    Du musst bei deinem 1. Post auf "Bearbeiten" (steht direkt darunter) gehen.
    Dort kannst du dann Beitragsinformationen und deinen Beitrag bearbeiten. Und unter anderem auch das Präfix auf gelöst setzen. ;)


    MfG Xenon :)

    Schickes Skript, super! :thumbup:
    Da kann man auch gleich mal schauen, was man so eigentlich alles mal in der Zwischenablage hat und gar nicht mitbekommt... :D


    LG Xenon


    Edit: 100. Post :party::party::party:

    Hast du den Client jetzt ganz abgeschaltet oder nur den Fehler?
    Denn ich hab vorhin in der SB von der Hilfe-Funktion mitbekommen, das ist für eine kurze Hilfe in der SB nicht unpraktisch. :)
    Und hat der Client ansonsten noch andere "Fähigkeiten"?


    LG Xenon

    So Tweaky, ich hab noch was.


    Dabei ist mir noch ein Fehler in der dt. Hilfe 3.3.8.1 aufgefallen:


    LG Xenon :)