Auch wenn ich nicht wirklich mitreden kann, finde ich es dennoch interessant wie hier drüber diskutiert wird und ob noch weitere Lösungen oder ähnliches gefunden werden!
Beiträge von Trojan
-
-
Ich hab nen logischen Fehler drin.
Als Beispiel:Wir haben ne Liste:
A bis I
Und meine $linesPerProcess sind 3. Also:
Paket 1: A B C
Paket 2: D E F
Paket 3: G H I
Bei mir werden aber jetzt nur A B C miteinander verglichen und nie A mit D E F oder sonst irgendetwas.Lässt sich aber leicht lösen
-
Ich habe es mal wie du meintest mit einem String am Anfang getestet. Funktioniert leider nicht. Ich habe die Vermutung, dass bei mir in der Überprüfung, ob der Hash gleich ist, ein Fehler liegt. Konnte ihn aber nicht finden.
-
@AspirinJunkie
Sieht ein bisschen professioneller aus als meine LösungMüsste aber dennoch funktionieren, oder?
AutoIt: Master.au3
Alles anzeigen;#AutoIt3Wrapper_run_debug_mode=Y #include <Array.au3> Global $fh = FileOpen(@DesktopDir & "\wordlist.txt", 0), $myHash = "0x06B7178AE33187356454A8B243FD9E9C", $maxProcessCount = 5, $linesPerProcess = 100, $currentLine = 1, $runningLines, $runningProcesses Global $pIDArray[0] If $fh = -1 Then MsgBox(0, "ERROR", "File not found!", 1) Exit EndIf $fr = FileRead($fh) $lines = StringSplit($fr, @CRLF) While True While ($runningProcesses <= $maxProcessCount) AddProcess() ;_ArrayDisplay($pIDArray) WEnd $j = 0 While (UBound($pIDArray) - 1 > $j) If ProcessExists($pIDArray[$j]) = 0 Then _ArrayDelete($pIDArray, $j) $runningProcesses -= 1 $j += 2 EndIf $j += 1 WEnd Sleep(100) DebugToConsole() WEnd Func AddProcess() For $i = $currentLine To $currentLine + $linesPerProcess $runningLines = $runningLines & " " & $lines[$i] Next $pID = Run("crypt.exe " & @AutoItPID & " " & $myHash & " " & $runningLines) _ArrayAdd($pIDArray, $pID) $runningLines = "" $currentLine += $linesPerProcess $runningProcesses += 1 EndFunc ;==>AddProcess Func DebugToConsole() ConsoleWrite("Runnig Process Count: " & UBound($pIDArray) & @CR) ConsoleWrite("Current Line: " & $currentLine & @CR) ConsoleWrite("First Word: " & $lines[$currentLine] & @CR) ConsoleWrite("First Word: " & $lines[$currentLine] + $linesPerProcess & @CR) EndFunc ;==>DebugToConsole
AutoIt: Crypt.au3
Alles anzeigen#NoTrayIcon #include <Crypt.au3> _Crypt_Startup() Global $parmWordCount = $cmdLine[0] - 3 Global $mainpID = $cmdLine[1] Global $myString = $cmdLine[2] For $j = 3 To $parmWordCount Step 1 For $i = 3 To $parmWordCount Step 1 $crypt = _Crypt_HashData($cmdLine[$j] & $cmdLine[$i], $CALG_MD5) If $crypt = $myString Then MsgBox(0, "Wörter:", $cmdLine[$j] & " und " & $cmdLine[$i]) ProcessClose($mainpID) EndIf Next Next _Crypt_Shutdown()
Könnte jemand gucken ob das so funktionieren würde? Geht mit nur darum ob ich das richtig verstanden und umgesetzt habe.
Leider immer noch zu langsam.
//edit
Zum besseren Verständnis:
In dem Hauptprogramm werden eine vorgegebene Anzahl an Prozessen gestartet, welche alle ein Paket an Wörtern zum bearbeiten zugewiesen bekommen. Ist ein Prozess durch schließt er sich und wir vom Hauptprogramm durch einen neuen mit neuen Wörter ersetzt.
Sollte die richtige Kombination erkannt werden, schließt der Prozess das Hauptprogramm (durch die übergebene pID) und zeigt eine MsgBox. -
Hey Leute.
Lang nicht mehr hier gewesen, jedoch habe ich gestern die Seite https://autoit.de/www.0xf.at entdeckt.
Dort kann man echt nett gemachte Javascripträtsel machen. Bin eigentlich recht gut durchgekommen und hänge an Level 20.Die Aufgabe dort ist:
Man hat eine wordlist.txt mit ~64000 Wörtern und einen MD5-Hash gegeben. Dieser Hash wurde aus 2 zufälligen Wörtern aus der
Wordlist gebildet. Das Passwort sind eben diese beiden Wörter. Also muss man alle Wörter der Liste miteinander Hashen und den Hash mit dem gegebenen vergleichen.Warum mit AutoIt?
Ich weiß das AutoIt nicht für seine Geschwindigkeit berühmt ist , jedoch wäre es interessant zu wissen ob es überhaupt mit AutoIt möglich ist die 2 Wörter in einer akzeptablen Zeit zu finden.
Wäre cool wenn ihr eure Ideen etc. hier rein schreiben würdet.Hier mein nicht optimierter Versuch:
AutoIt: MD5 Wordlist.txt Test.au3
Alles anzeigen#AutoIt3Wrapper_run_debug_mode=Y #include <Array.au3> #include <Crypt.au3> _Crypt_Startup() Global $fh = FileOpen(@DesktopDir & "\wordlist.txt", 0) Global $myString = "cd48323bcf01557f5deadc2ec301affb" If $fh = -1 Then MsgBox(0, "ERROR", "File not found!", 1) _Crypt_Shutdown() Exit EndIf $fr = FileRead($fh) $lines = StringSplit($fr, @CRLF) For $j = 1 To $lines[0] Step 1 For $i = 0 To $lines[0] Step 1 $crypt = _Crypt_HashData($lines[$j] & $lines[$i], $CALG_MD5) ToolTip($j & ":" & $lines[$j] & " " & $i & ":" & $lines[$i] & " Hash:" & $crypt) If $crypt = $myString Then MsgBox(0, "Wörter:", $lines[$j] & " und " & $lines[$i]) EndIf Next Next _Crypt_Shutdown() FileClose($fh)
Mfg Tro
-
Du Leichenschänder!
Also bist du der Meinung ich hätte nen neuen Thread für die Frage, die eigentlich sehr viel mit dem Thema zu tun hat, erstellen sollen? O.O
Und außerdem, finde ich solche Post unnötiger als wenn jemand einen alten Thread pusht.BTT:
[autoit]
Ich habs jetzt mal mitIf GUICtrlRead($Button[$i]) = $GUI_FOCUS Then
[/autoit]
versucht, aber es passiert einfach nichts -
Oscar funktioniert das mit den Checkboxen auch mit Buttons? Wenn ja wie?
Ich hab nämlich das Problem, dass eine Variable anzahl Buttons in nem GUI hab (~100) und ich nicht für alle einzelnen Funktionen schreiben will. -
Ich will ein Melde Programm schreiben... D.h. man kann den Nickname einer Person eingeben und dieser wird dann mit Datum in einer Datei auf einem Server gespeichert.
[autoit]
Wenn der Name bereits vorhanden ist wird die Anzahl meldungen +1 gerechnet...
Aber irgendwie geht der FTP upload nicht.
Hier mal der Code:#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
#Include <String.au3>
#include <IE.au3>
#include <file.au3>
#Include <FTPEx.au3>
#Include <FTP.au3>
#RequireAdminDim $aRecords
[/autoit][autoit][/autoit][autoit]
$Name = "Hans1"
$Submit = $Name&"|1|"&OnlineDate()
$FTP_open = _FTP_Open("MY FTP")
$FTP_Connect = _FTP_Connect($FTP_open,"autoitbotftp.au.funpic.de","trojan16","123456789")
$Found = 0
InetGet("ftp://autoitbotftp:123456789@autoitbotftp.au.funpic.de/Reports.txt",@TempDir&"/Reports.txt")$file = FileOpen(@TempDir&"/Reports.txt", 0)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIfIf Not _FileReadToArray(@TempDir&"/Reports.txt",$aRecords) Then
[/autoit][autoit][/autoit][autoit]
MsgBox(4096,"Error", " Error reading log to Array error:" & @error)
Exit
EndIf
For $x = 1 to $aRecords[0]
$Read = StringSplit($aRecords[$x],"|")
If $Read[1] = $Name Then
$Read[2] = $Read[2]+1
$Read[3] = OnlineDate()
$OldFileRead = FileRead($file)
$OldFileRead = StringReplace($OldFileRead,$aRecords[$x],$Name&"|"&$Read[2]&"|"&$Read[3])
$Found = 1
$file_flush = FileOpen(@TempDir&"/Reports.txt", 2)
$OldFileRead = "Test"
FileWrite($file_flush,$OldFileRead)$Ftpp = _FTP_FilePut($FTP_Connect,@TempDir&"/Reports.txt","Reports.txt")
[/autoit][autoit][/autoit][autoit]
;~ $Ftpp = _FtpPutFile($Conn, @TempDir&"/Reports.txt", 'Reports.txt')
;~ FileDelete(@TempDir&"/Reports.txt")
MsgBox(0,"","Aufgerechenet!"& $Ftpp)
EndIf
NextIf $Found = 0 Then
[/autoit][autoit][/autoit][autoit]_FileReadToArray(@TempDir&"/Reports.txt",$aRecords)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
Dim $NewFileWrite[$aRecords[0]+1]
$i = 0
For $x = 1 To $aRecords[0]
$NewFileWrite[$i] = $aRecords[$x]
$i = $i + 1
Next
$x = UBound($NewFileWrite)$NewFileWrite[$i] = $Submit
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
_ArrayDisplay($NewFileWrite)
_FileWriteFromArray(@TempDir&"/Reports.txt",$NewFileWrite)
_FTP_FilePut($FTP_Connect,@TempDir&"/Reports.txt","Reports.txt")
EndIfFileClose($file)
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
_FTP_Close($FTP_open)
;~ $Ftpc = _FTPClose($Open)Func OnlineDate()
[/autoit][autoit][/autoit][autoit]
$sRead = BinaryToString(InetRead("http://www.uhrzeit.org/atomuhr.html",1))$sRegRead = _StringBetween($sRead,'<div id="anzeige_datum">','</div>')
[/autoit][autoit][/autoit][autoit]
$sSplitRead = StringSplit ( $sRegRead[0], " ")
If $sSplitRead[3] = "Januar" Then
$Month = 1
ElseIf $sSplitRead[3] = "Februar" Then
$Month = 2
ElseIf $sSplitRead[3] = "März" Then
$Month = 3
ElseIf $sSplitRead[3] = "April" Then
$Month = 4
ElseIf $sSplitRead[3] = "Mai" Then
$Month = 5
ElseIf $sSplitRead[3] = "Juni" Then
$Month = 6
ElseIf $sSplitRead[3] = "Juli" Then
$Month = 7
ElseIf $sSplitRead[3] = "August" Then
$Month = 8
ElseIf $sSplitRead[3] = "September" Then
$Month = 9
ElseIf $sSplitRead[3] = "Oktober" Then
$Month = 10
ElseIf $sSplitRead[3] = "November" Then
$Month = 11
ElseIf $sSplitRead[3] = "Dezember" Then
$Month = 12
EndIf$DayArray = StringSplit($sSplitRead[2],".")
[/autoit][autoit][/autoit][autoit]
$Day = $DayArray[1]$Year = $sSplitRead[4]
[/autoit][autoit][/autoit][autoit]$Date = $Day&"."&$Month&"."&$Year
[/autoit][autoit][/autoit][autoit]Return $Date
[/autoit]
EndFunc -
Sorry fürs pushen, aber ich wollte nicht extra nen neuen Thread aufmachen...
Wie kann man denn die Form dann auch noch Bestätigt, weil mit _IEFormSubmit($oForm)
[autoit]
geht das nicht...#include <IE.au3>
[/autoit][autoit][/autoit][autoit]$IE = _IECreate("www.trash-mail.com")
[/autoit]
$name = "Autoit.de"
$oForm = _IEFormGetObjByName($IE, "sendmail")
$oObj = _IEFormElementGetObjByName($oForm, "mail")
_IEFormElementSetValue($oObj, $name)
_IEFormSubmit($oForm) -
Oh.....
Hatte nachher noch nen FTP-Upload der nicht Funktionierte und somit wurde beim Starten des Scripts immer die alte Datei runtergeladen!Ist gelöst
-
Ich habe eine Text datei.
Und dieser soll eine Zeile ergänzt werden.
[autoit]
Ich habe es so versucht, aber er überschreibt immer nur dieletzte Zeile.$Submit = "Hans5|65|25.12.2010"
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
_FileReadToArray(@TempDir&"/Reports.txt",$aRecords)
Dim $NewFileWrite[$aRecords[0]+1]
$i = 0
For $x = 1 To $aRecords[0]
$NewFileWrite[$i] = $aRecords[$x]
$i = $i + 1
Next
$x = UBound($NewFileWrite)$NewFileWrite[$i] = $Submit
[/autoit]
_ArrayDisplay($NewFileWrite)
_FileWriteFromArray(@TempDir&"/Reports.txt",$NewFileWrite) -
Okay, habs jetzt
[autoit]$First_IP = RegRead("HKEY_CURRENT_USER\Software\LogIP", "IpCheck")
[/autoit]
$This_IP = _GetIP()
If $This_IP = $First_IP Then
MsgBox(0,"Trial-Version","Du hast heute schon!")
Exit
EndIf
RegWrite("HKEY_CURRENT_USER\Software\LogIP", "IpCheck", "REG_SZ",_GetIP()) -
Ja, aber wann.
Weil sonst geht die Sperre ja nichmehr... -
Will es aber mit der IP machen...
Keiner ne Lösung? ._. -
Ich will durch Autoit erreichen, das das Skript nur einmal pro Tag ausgeführt wird.
[autoit]
Da sich die IP bei fast allen jeden Tag ändert hab ich es über die IP versucht.
Aber beim ersten mal klappt es ja mit dem Blocken, aber dannach nicht mehr.
Hier mal der Auszug:#include <Inet.au3>
[/autoit][autoit][/autoit][autoit]$IP_jetzt = _GetIP()
[/autoit]
If FileRead("log.txt") = _GetIP() Then
MsgBox(0,"Trial","Nur einmal pro Tag zugelassen!")
Exit
EndIf
FileWrite("log.txt",$IP_jetzt)
;Eigendliches Programm -
Ja ich weiß, dass wenn man hier:
[autoit]$Winlist = WinList("")
[/autoit]
[autoit]
die array von $winlist so einstellt:$Winlist[0][1]
[/autoit]
dass man dann die PID rausbekommt..Aber wo bitte soll ich das ändern?
[autoit]
Ich würde sagen iwo hierFunc _WinGetVis()
[/autoit]
Dim $Winvisible[1]
$Winlist = WinList("")
For $i = 1 To $Winlist[0][0]
If StringStripCR($Winlist[$i][0]) <> "" And BitAND(WinGetState($Winlist[$i][1]), 2) Then
_ArrayAdd($Winvisible, $Winlist[$i][0])
$Winvisible[0] = UBound($Winvisible) - 1
EndIf
Next
Return $Winvisible
EndFunc
aba... keine Ahnung bei mir gehts net... -
Habs bis eben versucht aba iwi versteh ich es net...
-
Okay danke klappt super nur wenn es geht könntest du es anhand der PID machen? Weil wenn man z.b. nen paar mal das Fenster "Unbenannt - Editor" aufhat öffnet er immer nur dass eine...
-
das kapier ich jetzt nicht ganz.
Ich hatte es erst so verstanden:Für jedes fenster einen button erstellen mit dem man das Fenster aktivieren kann.
Genau das meine ich!
-
Ich will einfach nur das wenn man z.b. 3 fenster auf hat ,die das Wort test im Titel enthalten, und man dann auf den entsprechenden Vorschau button drückt dieses
Fenster dann in den Vordergrund kommt.