Ich würde auch gern mithelfen falls ihr mich braucht :D. Um Pixelveränderungen zu überprüfen könnte man vielleicht mit Checksummen arbeiten. ![]()
Beiträge von name22
-
-
Zitat
wie kommt man nur auf sowas

Viiiieeel Langeweile, und den ständigen Drang in jedes Script ein #include<GDIPlus.au3> an den Anfang zu setzen.
-
Zitat
also diese punkte beeinhalten den string oda wie?
Ja, die Punkte sind der String. Jeder Punkt steht für ein Zeichen.
-
Zitat
Aber is an der stelle unnütz
Deswegen ja: "Nichts".
Was die normalerweise bringen weiß ich schon. 
-
Zitat
ich begreifs nich xD
iwie macht es punkte xD
Gut beobachtet...
Es wandelt einen beliebigen String mit einem Schlüssel in ein Bild um und kann auch ein Bild mit diesem Schlüssel wieder in Stringform bringen.
Was das bringt? Keine Ahnung, aber mir war langweilig :P. -
Von mir auch ein verspätetes herzliches Willkommen.

-
Zitat
Ähm, meines Wissens nach kann man ein Bild einfach per FileRead auslesen und dann mit der passenden Endung per filewrite abspeichern...
Hast du dir mal angesehen was mein Script überhaupt macht?
-
Zitat
Was bringen die Klammern?
Nichts :P. -
Mit dieser UDF kann man Strings in Bildform umwandeln und selbstverständlich auch wieder zurück ;). Ein Schlüssel kann zufällig erstellt, in einer Datei abgespeichert oder aus einer Datei eingelesen werden.
Alle Funktion sind beschrieben und ein Beispiel ist auch mit dabei.
Und wieder wird die GDIP.au3 benötigt...
Die GDIP.au3, die UDF und ein Beispiel befinden sich im Anhang.UDF:
Spoiler anzeigen
[autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ImageCrypt_GenerateImage
; Beschreibung ..: Erstellt eine Bitmap aus den angegebenen Daten und dem angegebenen Schlüssel. Benötigt: '#include <GDIP.au3>'
; Syntax ........: _ImageCrypt_GenerateImage($sData, $aColorKey, $iCryptImageSize, [$sFilePath = ""])
; Parameter .....: $sData - Die Daten die in die Bitmap geschrieben werden
; $aColorKey - Array das den Schlüssel enthält
; $iCryptImageSize - Höhe/Breite der Bitmap
; $sFilePath - [Optional] Speicherort der Bitmap (Wird ein leerer String "" angegeben, gibt die Funktion ein Bitmap Handle zurück
; Rückgabewerte .: Success - Gibt ein Bitmap Handle bzw. den Rückgabewert von _GDIPlus_ImageSaveToFile zurück
; Failure - -1 und setzt @error
; |@error = 1 - $sData ist ein leerer String
; |@error = 2 - $aColorKey ist kein Array
; |@error = 3 - Der Datenstrang ist zu groß für die Bitmap
; Bemerkungen ...: Benötigt _GDIPlus_Startup. Das Bild darf nicht verkleinert/vergrößert oder komprimiert werden, da es sonst nicht mehr korrekt entschlüsselt werden kann
; ===============================================================================================================================
Func _ImageCrypt_GenerateImage($sData, $aColorKey, $iCryptImageSize, $sFilePath = "")
If $sData = "" Then Return SetError(1, 0, -1)
If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)Local $aDataSplit = StringSplit($sData, "")
[/autoit] [autoit][/autoit] [autoit]
If $aDataSplit[0] > $iCryptImageSize ^ 2 Then Return SetError(3, 0, -1)Local $hCryptGraphicsTmp = _GDIPlus_GraphicsCreateFromHWND(WinGetHandle(AutoItWinGetTitle()))
[/autoit] [autoit][/autoit] [autoit]
Local $hCryptBitmapTmp = _GDIPlus_BitmapCreateFromGraphics($iCryptImageSize, $iCryptImageSize, $hCryptGraphicsTmp)
Local $hBitmapGraphicsContextTmp = _GDIPlus_ImageGetGraphicsContext($hCryptBitmapTmp)_GDIPlus_GraphicsClear($hBitmapGraphicsContextTmp, 0xFFFFFFFF)
[/autoit] [autoit][/autoit] [autoit]Local $iJ = 0
[/autoit] [autoit][/autoit] [autoit]
For $iY = 0 To $iCryptImageSize - 1
For $iX = 0 To $iCryptImageSize - 1
$iJ += 1
For $iI = 1 To $aColorKey[0][0]
If $iJ > $aDataSplit[0] Then ExitLoop 3
If $aDataSplit[$iJ] == $aColorKey[$iI][0] Then
_GDIPlus_BitmapSetPixel($hCryptBitmapTmp, $iX, $iY, "0xFF" & $aColorKey[$iI][1])
ExitLoop
EndIf
Next
Next
Next_GDIPlus_GraphicsDispose($hCryptGraphicsTmp)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose($hBitmapGraphicsContextTmp)If $sFilePath <> "" Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $iReturn = _GDIPlus_ImageSaveToFile($hCryptBitmapTmp, $sFilePath)
_GDIPlus_BitmapDispose($hCryptBitmapTmp)
Return $iReturn
EndIf
Return $hCryptBitmapTmp
EndFunc ;==>_ImageCrypt_GenerateImage; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ImageCrypt_DecryptImage
; Beschreibung ..: Entschlüsselt ein Bild mit dem angegebenen Schlüssel. Benötigt: '#include <GDIP.au3>'
; Syntax ........: _ImageCrypt_DecryptImage($sImagePath, $aColorKey, [$iCryptImageSize = 0])
; Parameter .....: $sImagePath - Die Daten die in die Bitmap geschrieben werden
; $aColorKey - Array das den Schlüssel enthält
; $iCryptImageSize - [Optional] Höhe/Breite der Bitmap. Falls 0, so wird die Größe mit _GDIPlus_ImageGetWidth ausgelesen
; Rückgabewerte .: Success - Gibt den entschlüsselten Datenstrang zurück
; Failure - -1 und setzt @error
; |@error = 1 - $sImagePath ist ein leerer String
; |@error = 2 - $aColorKey ist kein Array
; Bemerkungen ...: Benötigt _GDIPlus_Startup.
; ===============================================================================================================================
Func _ImageCrypt_DecryptImage($sImagePath, $aColorKey, $iCryptImageSize = 0)
If $sImagePath = "" Then Return SetError(1, 0, -1)
If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)Local $hCryptBitmapTmp = _GDIPlus_BitmapCreateFromFile($sImagePath)
[/autoit] [autoit][/autoit] [autoit]
If $iCryptImageSize <= 0 Then $iCryptImageSize = _GDIPlus_ImageGetWidth($hCryptBitmapTmp)Local $sReturnData = ""
[/autoit] [autoit][/autoit] [autoit]
For $iY = 0 To $iCryptImageSize - 1
For $iX = 0 To $iCryptImageSize - 1
$iPixelColorTmp = StringTrimLeft(Hex(_GDIPlus_BitmapGetPixel($hCryptBitmapTmp, $iX, $iY)), 2)
If $iPixelColorTmp = "FFFFFF" Then ExitLoop 2
For $i = 1 To $aColorKey[0][0]
If $iPixelColorTmp == $aColorKey[$i][1] Then
$sReturnData &= $aColorKey[$i][0]
ExitLoop
EndIf
Next
Next
Next_GDIPlus_BitmapDispose($hCryptBitmapTmp)
[/autoit] [autoit][/autoit] [autoit]Return $sReturnData
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_ImageCrypt_DecryptImage; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ImageCrypt_CreateRandomKey
; Beschreibung ..: Erstellt einen zufälligen Schlüssel für die spätere Verwendung
; Syntax ........: _ImageCrypt_CreateRandomKey()
; Parameter .....: Keine
; Rückgabewerte .: Success - Gibt den erstellten Schlüssel zurück
; Failure - ""
; Bemerkungen ...: Keine
; ===============================================================================================================================
Func _ImageCrypt_CreateRandomKey()
Local $aRandomKey[102][2]
$aRandomKey[0][0] = 101
For $i = 1 To 26
$aRandomKey[$i][0] = Chr($i + 64)
Next
For $i = 27 To 52
$aRandomKey[$i][0] = Chr($i + 70)
Next
For $i = 53 To 62
$aRandomKey[$i][0] = Chr($i - 5)
Next
$aRandomKey[63][0] = " "
$aRandomKey[64][0] = "?"
$aRandomKey[65][0] = "!"
$aRandomKey[66][0] = "."
$aRandomKey[67][0] = ","
$aRandomKey[68][0] = ";"
$aRandomKey[69][0] = ":"
$aRandomKey[70][0] = "("
$aRandomKey[71][0] = ")"
$aRandomKey[72][0] = '"'
$aRandomKey[73][0] = "'"
$aRandomKey[74][0] = "%"
$aRandomKey[75][0] = "&"
$aRandomKey[76][0] = "$"
$aRandomKey[77][0] = "ß"
$aRandomKey[78][0] = "="
$aRandomKey[79][0] = "+"
$aRandomKey[80][0] = "-"
$aRandomKey[81][0] = "_"
$aRandomKey[82][0] = "*"
$aRandomKey[83][0] = "/"
$aRandomKey[84][0] = "\"
$aRandomKey[85][0] = "@"
$aRandomKey[86][0] = "#"
$aRandomKey[87][0] = "~"
$aRandomKey[88][0] = "{"
$aRandomKey[89][0] = "}"
$aRandomKey[90][0] = "§"
$aRandomKey[91][0] = "^"
$aRandomKey[92][0] = "°"
$aRandomKey[93][0] = "<"
$aRandomKey[94][0] = ">"
$aRandomKey[95][0] = "|"
$aRandomKey[96][0] = "ä"
$aRandomKey[97][0] = "ö"
$aRandomKey[98][0] = "ü"
$aRandomKey[99][0] = "Ä"
$aRandomKey[100][0] = "Ö"
$aRandomKey[101][0] = "Ü"
For $i = 1 To 101
Do
$bUnique = True
$aRandomKey[$i][1] = Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2) & Hex(Random(0, 255, 1), 2)
For $j = 1 To 101
If $j <> $i And $aRandomKey[$j][1] = $aRandomKey[$i][1] Or $aRandomKey[$i][1] = "FFFFFF" Then $bUnique = False
Next
Until $bUnique
Next
Return $aRandomKey
EndFunc ;==>_ImageCrypt_CreateRandomKey; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ImageCrypt_SaveKeyToFile
; Beschreibung ..: Speichert einen Schlüssel in einer Datei
; Syntax ........: _ImageCrypt_SaveKeyToFile($aColorKey, $sFilePath)
; Parameter .....: $aColorKey - Der Schlüssel der gespeichert werden soll
; $sFilePath - Pfad zur Zieldatei
; Rückgabewerte .: Success - 1
; Failure - -1 und setzt @error
; |@error = 1 - $sFilePath ist ein leerer String
; |@error = 2 - $aColorKey ist kein Array
; Bemerkungen ...: Falls die Datei bereits existiert wird ihr Inhalt überschrieben
; ===============================================================================================================================
Func _ImageCrypt_SaveKeyToFile($aColorKey, $sFilePath)
If Not IsArray($aColorKey) Then Return SetError(2, 0, -1)
If $sFilePath = "" Then Return SetError(1, 0, -1)$hCryptKeyFile = FileOpen($sFilePath, 2)
[/autoit] [autoit][/autoit] [autoit]
If $hCryptKeyFile = -1 Then Return SetError(3, 0, -1)$sKeyTmp = ""
[/autoit] [autoit][/autoit] [autoit]
For $iI = 1 To $aColorKey[0][0]
$sKeyTmp &= $aColorKey[$iI][0] & "=" & $aColorKey[$iI][1] & ";"
Next
FileWrite($hCryptKeyFile, StringTrimRight($sKeyTmp, 1))
FileClose($hCryptKeyFile)
$sKeyTmp = ""Return 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
EndFunc; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _ImageCrypt_LoadKeyFromFile
; Beschreibung ..: Lädt einen Schlüssel aus einer Datei
; Syntax ........: _ImageCrypt_LoadKeyFromFile($sFilePath)
; Parameter .....: $sFilePath - Pfad zur Datei
; Rückgabewerte .: Success - Gibt den Schlüssel aus der Datei zurück
; Failure - -1 und setzt @error
; |@error = 1 - $sFilePath ist ein leerer String
; Bemerkungen ...: Keine
; ===============================================================================================================================
Func _ImageCrypt_LoadKeyFromFile($sFilePath)
If $sFilePath = "" Then Return SetError(1, 0, -1)$aKeySplitTmp = StringSplit(FileRead($sFilePath), ";")
[/autoit] [autoit][/autoit] [autoit]
Local $aColorKey[$aKeySplitTmp[0] + 1][2]
$aColorKey[0][0] = $aKeySplitTmp[0]For $i = 1 To $aColorKey[0][0]
[/autoit] [autoit][/autoit] [autoit]
$aSplitTmp = StringSplit($aKeySplitTmp[$i], "=", 2)
$aColorKey[$i][0] = $aSplitTmp[0]
$aColorKey[$i][1] = $aSplitTmp[1]
NextReturn $aColorKey
[/autoit]
EndFunc
Ich hoffe es hilft irgendjemandem bei... was auch immer...
Und so sieht das nachher aus:
-
Zitat
Du kannst das Bild per _FileRead auslesen
Zu langsam :P. Wenn dann direkt im Speicher verschlüsseln und als String verschicken.
Vielleicht könnte man die Überprüfung ob sich im Bild bestimmte Pixel verändert haben in eine DLL auslagern...
-
Ein Bekannter hat mal wegen seines Handyvertrages (kein Scherz) SMSe von einer gewissen "Olga" bekommen die sich scheinbar sehr für ein Treffen engagierte.

Also ich könnte das ja verstehen wenn man z.B. auf diese Jamba Werbung am Seitenrand hereinfällt, aber durch einen "seriösen" Vertragsanbieter?
-
-
Wenn ich da an meine Müll Email denke...

Erst letztens habe ich wieder eine gekriegt in dem mir irgendwelche "asiatischen" "Frauen" Bilder von sich geschickt haben und eigenartigerweise alle sehr europäisch aussehen...
-
Zitat
Ok, dann bitte einen Tip. Steh am Schlauch.
Du kannst z.B. beide Scripts aus seinem Post kombinieren ;). Das erste Beispiel von ihm ließt Daten aus einem Script das zweite sendet Daten an ein Script. -
Zitat
Wenn ich´s richtig verstanden habe, würde das doch auch nur von Script1 nach Script2 funktionieren, aber nicht andersrum, oder ?
Doch, klar würde das gehen ;). Schau dir sein Script noch einmal an. -
Zitat
Funktioniert nur bei AutoIt Scripten die mit Run bzw. RunWait aufgerufen werden. Wenn´s stimmt, dann bringt´s mir nix, da Script1 läuft, Script2 zwar per Run gestartet wird, aber Script2 soll ja Werte an Script1 übergeben, welches ja nicht mit Run gestartet wurde.
Dann mach es über eine Ini oder eine Textdatei oder die Registry oder TCP... Es gibt genug Möglichkeiten ;).eukalyptus Darauf wäre ich nicht gekommen... Genial danke!
(Das kann ich auch noch gebrauchen). -
Zitat
Ne, nur Spass. Funktioniert halt nicht der Link. Hattest Programme + kommunizieren als Suchbegriff, oder
Jup
.
Im ersten Ergebnis steht genau das wonach du suchst ;). -
Zitat
Sag ja immer, dass mich dir Forensuch nicht mag. Hab vorher gesucht, naja, und nix gefunden. Egal, dank dir
Wenn man weiß nach was man suchen muss ;). -
Ich bin mir nicht sicher ob das damit geht und kamm mir kaum vorstellen, dass Microsoft das möchte ;).
Schließlich könnte dann jeder "trottel" seinen Spaßvirus als verifiziertes Programm anzeigen lassen und seine eigene Signatur einblenden.
-
Verwende EnvSet und EnvGet ;).
Solche Threads gibt es hier zu genüge, benutze einfach mal die Forensuche.