1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Oscar

Beiträge von Oscar

  • Kryptographie-Überlegungen

    • Oscar
    • 16. Februar 2012 um 05:43

    Ich mache das jetzt so, dass ich den Hash in 100 Runden (SHA1) erstelle und zusätzlich am Schluss noch einen MD5-Hash addiere.
    Das sollte einen Rainbow-Table-Angriff unmöglich machen. Es bleibt also nur Brute-Force. :)

    Danke, an alle die geholfen haben! :thumbup:

  • installer erstellt, nur wie mache ich einen uninstaller und verküpfungen ?

    • Oscar
    • 15. Februar 2012 um 14:42

    [verschoben nach H&U]

  • Kryptographie-Überlegungen

    • Oscar
    • 15. Februar 2012 um 14:20

    Wie bewertet ihr die Methode, den Hashwert aus zwei einzelnen Hashes zu addieren.
    Das heißt, vom Master-Passwort wird ein SHA1-Hash und ein MD5-Hash erstellt und diese werden dann addiert. Das Ergebnis speichere ich in die Ini.
    Es dürfte doch ziemlich schwierig/unmöglich sein, die beiden Summanden aus der Summe zu extrahieren, um damit dann eine Rainbow-Table zu befragen.

  • Kryptographie-Überlegungen

    • Oscar
    • 15. Februar 2012 um 08:20

    Also, um das mal zu verdeutlichen.
    Wie groß ist der Aufwand, den man treiben müsste, um an das Passwort zu kommen (SHA1-Hash -> Passwort)?
    Ich will ja keine Hochsicherheits-Software programmieren, sondern lediglich einen Passwort-Speicher für Passwörter von Online-Foren, Shops, das eigene WLAN und ähnlichen.
    Es wird ja sicher keiner "Tage/Monate/jede Menge Geld" investieren, um an diese Daten zu gelangen. Vor allem müsste er ja erstmal an die verschlüsselten Daten kommen (die sind nämlich nicht online). :D

  • Kryptographie-Überlegungen

    • Oscar
    • 15. Februar 2012 um 07:47

    Ja, das ist klar. Die Daten sind mit dem Passwort verschlüsselt.

  • Kryptographie-Überlegungen

    • Oscar
    • 15. Februar 2012 um 07:45

    @Protex: Dass das Master-Passwort "sicher" sein sollte, ist mir schon bewusst, nur kann ich das als Programmierer nur begrenzt beeinflussen. Da ist dann der Benutzer gefragt.
    Ich denke, dass SHA1 sicherer sein soll als MD5, oder irre ich mich da?

    chip: Nein, so einfach kann man das nicht übergehen, denn das eingegebene Passwort wird ja zum entschlüsseln der Datenbank verwendet. Mit einem falschen Passwort würde nur Datenmüll rauskommen.

  • Kryptographie-Überlegungen

    • Oscar
    • 15. Februar 2012 um 06:10

    Ich bin gerade dabei ein Programm zu schreiben, das Passwörter verschlüsselt ablegen soll (ähnlich wie Keypass, nur nicht so umfangreich).
    Mir geht es jetzt darum, ob das so, wie ich das umgesetzt habe, sicher ist.

    Ich beschreibe mal kurz den Ablauf:
    1. Beim ersten Start des Programms wird ein Master-Passwort abgefragt (min. 6stellig).
    2. Von diesem Master-Passwort erstellt das Programm eine Checksumme (SHA1) und speichert sie in eine Inidatei.
    3. Beim "normalen" Start des Programms wird nun nach diesem Master-Passwort gefragt.
    4. Der Benutzer gibt das Master-Passwort ein (das muss er bei jedem Start des Programms tun).
    5. Das Programm generiert aus der Eingabe die Checksumme (SHA1) und vergleicht diese mit der Gespeicherten.
    6. Wenn Übereinstimmung, wird das Programm gestartet, ansonsten beendet.
    7. Nun kann man Benutzername-/Passwort-Einträge erstellen.
    8. Beim speichern dieser Einträge werden die Daten mit AES (256 Bit) verschlüsselt (mit der Crypt-UDF). Der Key (_Crypt_DeriveKey) wird aus dem eingegebenen Passwort generiert.

    Es wird also nirgendwo im Programm das Passwort gespeichert. Lediglich die Checksumme wäre angreifbar (Brute-Force).
    Oder gibt es da eine Schwachstelle, die ich übersehen habe?
    Wäre schön, wenn sich mal die Krypto-Experten melden würden. :)

  • Befehl zu mehreren festen uhrzeiten ausführen

    • Oscar
    • 14. Februar 2012 um 04:45

    Mit AutoIt:

    [autoit]


    Global $sTime
    HotKeySet('{ESC}', '_End')

    [/autoit][autoit][/autoit][autoit]

    While Sleep(1000)
    $sTime = StringFormat('%s:%s:%s', @HOUR, @MIN, @SEC)
    Switch $sTime
    Case '05:00:00'
    ShellExecute('calc.exe')
    Case '06:00:00'
    ShellExecute('calc.exe')
    Case '08:35:47'
    ShellExecute('calc.exe')
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _End()
    Exit
    EndFunc

    [/autoit]
  • GuiCtrlRead liefert falschen Wert aus

    • Oscar
    • 9. Februar 2012 um 22:26

    Das sollte eigentlich so (mit GUICtrlRead) richtig sein, aber ich vermute, dass Deine rekursiven Funktionsaufrufe mit dem neu erstellen der GUI-Elemente (mit gleichen Variablennamen) zu diesem Fehler führen.

  • Probleme mit _isPressed und HotkeySet

    • Oscar
    • 9. Februar 2012 um 22:24

    Du kannst ja auch zusätzlich einen Timer verwenden:

    [autoit]


    #include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("WinTitleMatchMode",2)
    $titel = "[TITLE:Editor;CLASS:Notepad]" ; Editor / notepad.exe

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(10)
    If WinActive($titel) And _IsPressed(71) Then
    ControlSend($titel,"","[CLASS:Edit; INSTANCE:1]","x") ; F2 Key sollte ein "x" senden
    $Timer = TimerInit()
    Do
    Until Not _IsPressed(71) Or TimerDiff($Timer) > 50
    EndIf
    WEnd

    [/autoit]
  • GuiCtrlRead liefert falschen Wert aus

    • Oscar
    • 9. Februar 2012 um 22:21

    Nein, ExitLoop ist zum verlassen einer Schleife (For...Next, While...WEnd, Do...Until). Das verlassen einer Funktion geschieht mit Return.
    Du musst in Deinem Skript aber erstmal die Rekursionsaufrufe entfernen und durch eine Schleife ersetzten. Den Inhalt des Labels kannst Du mit GUICtrlsetData verändern. Das musst Du nicht jedes Mal neu erstellen.

  • Probleme mit _isPressed und HotkeySet

    • Oscar
    • 9. Februar 2012 um 22:16

    Das lässt sich ganz einfach beheben:

    [autoit]


    #include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("WinTitleMatchMode",2)
    $titel = "[TITLE:Editor;CLASS:Notepad]" ; Editor / notepad.exe

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(50)
    If WinActive($titel) And _IsPressed(71) Then
    ControlSend($titel,"","[CLASS:Edit; INSTANCE:1]","x") ; F2 Key sollte ein "x" senden
    Do
    Until Not _IsPressed(71)
    EndIf
    WEnd

    [/autoit]
  • GuiCtrlRead liefert falschen Wert aus

    • Oscar
    • 9. Februar 2012 um 22:10

    Du machst da zwei gravierende Fehler.
    Zum einen werden immer wieder GUI-Elemente mit den gleichen Variablennamen erzeugt, indem Du die Funktion immer wieder innerhalb der Funktion aufrufst (Rekursion). Zum anderen führt das früher oder später zu einem Absturz von AutoIt, weil die max. Rekursionstiefe erreicht wurde.
    Das solltest Du zuerst mal beheben. Wozu gibt es Schleifen und ContinueLoop/ExitLoop?

  • GuiCtrlRead liefert falschen Wert aus

    • Oscar
    • 9. Februar 2012 um 21:54

    Zeig doch mal Dein ganzes Skript. Das hört sich so an, als ob Du GUICrtlRead an der falschen Stelle im Skript verwendest.

  • Fingerprint-Scanner auslesen

    • Oscar
    • 9. Februar 2012 um 21:42

    Ich besitze einen Fingerprint-Scanner (Medion MD85264). Diesen würde ich gern für ein eigenes Programm verwenden.
    Kennt jemand eine Möglichkeit die Daten mit AutoIt auszulesen?

    Der Scanner funktioniert unter Windows7. Ich kann Finger registrieren und beim Start von Windows wird statt eines Passworts der Fingerabdruck benutzt.
    Die Funktion ist also da, aber wie kann ich das mit AutoIt auslesen?

  • _Arrays & Encrypt.

    • Oscar
    • 8. Februar 2012 um 13:44

    Dein Array beim auslesen heißt $ausgelesen und nicht $info (Zeile 62). ;)

  • Schnitzel hat Geburtstag !

    • Oscar
    • 7. Februar 2012 um 16:37

    Nachträglich alles Gute zum Geburtstag!
    Und falls Du mal nach Burgdorf in die Pyramide kommst. Da gibt es die XXL-Schnitzel:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    XXL-Schnitzel.jpg 69,98 kB – 0 Downloads
  • Andy hat Geburtstag

    • Oscar
    • 7. Februar 2012 um 16:31

    Ich bin in letzter Zeit auch viel anderweitig "beschäftigt". Von daher erst jetzt:

    Herzlichen Glückwunsch nachträglich! Alles Gute und bleib wie Du bist. :thumbup:

  • Debug mit Change2CUI

    • Oscar
    • 7. Februar 2012 um 16:09

    Bastel Dir doch Deine eigene Console:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hConsoleGui, $idConsole, $fDebug = False

    [/autoit] [autoit][/autoit] [autoit]

    If StringInStr(@AutoItExe, 'Debug') Then $fDebug = True ; wenn im Dateinamen der Exe ein Debug enthalten ist, den Debugmodus aktivieren

    [/autoit] [autoit][/autoit] [autoit]

    If $fDebug Then _ConsoleOpen()

    [/autoit] [autoit][/autoit] [autoit]

    ; Anfang Deines Programms
    $a = Random(1, 100, 1)
    _ConsoleWrite('Zeile 15, Wert von $a = ' & $a)
    $a = Random(1, 100, 1)
    _ConsoleWrite('Zeile 17, Wert von $a = ' & $a)
    $a = Random(1, 100, 1)
    _ConsoleWrite('Zeile 19, Wert von $a = ' & $a)
    ; Ende Deines Programms

    [/autoit] [autoit][/autoit] [autoit]

    If $fDebug Then WinWaitClose($hConsoleGui)

    [/autoit] [autoit][/autoit] [autoit]

    Func _ConsoleOpen()
    $hConsoleGui = GUICreate('Debug-Console', 640, 320)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_ConsoleClose')
    $idConsole = GUICtrlCreateEdit('', 0, 0, 640, 320, BitOR($WS_VSCROLL, $ES_AUTOVSCROLL, $ES_READONLY))
    GUISetState(@SW_SHOW, $hConsoleGui)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ConsoleClose()
    GUIDelete($hConsoleGui)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ConsoleWrite($sMsg)
    If Not $fDebug Then Return
    $sMsg = StringFormat('%s:%s:%s.%s %s', @HOUR, @MIN, @SEC, @MSEC, $sMsg) & @CRLF
    GUICtrlSetData($idConsole, $sMsg, 1)
    EndFunc

    [/autoit]

    So kannst Du später nach belieben debuggen, indem Du in den Dateinamen der Exe ein "Debug" einfügst.

  • Dateien und Ordner/Dateien rekursive auflisten

    • Oscar
    • 24. Januar 2012 um 04:33

    Das heißt, Du möchtest nicht die absoluten Pfade, sondern nur die relativen.
    Das kann man recht einfach lösen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <File.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $pfad = @WindowsDir & '\'
    ToolTip('Bitte warten...')
    $dateien = _RecursiveFileListToArray($pfad, '', 1, 0)
    $dateien = StringReplace($dateien, $pfad, '')
    $dateien = StringSplit($dateien, @CRLF, 1)
    ToolTip('')
    _ArrayDisplay($dateien)

    [/autoit] [autoit][/autoit] [autoit]

    Local $hFile = FileOpen("Dateien.txt", 2) ; 2 = erase
    _FileWriteFromArray($hFile, $dateien, 1)
    FileClose($hFile)
    Run("notepad.exe " & @ScriptDir & "\Dateien.txt")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) zurück, die
    ; einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc ;==>_RecursiveFileListToArray

    [/autoit]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™