ja, ups Passwort fehlt noch. Aber das hattest du ja schon, oder?
peethebee
ja, ups Passwort fehlt noch. Aber das hattest du ja schon, oder?
peethebee
Hallo!
So?
; Grundgerüst by peethebee
Global $on = 0
Global $click_speed = 500 ; Millisekunden Pause dazwischen
If InputBox("Pass", "Passwort:", "", "*") <> "Geheim" Then Exit
HotKeySet("{F6}", "_toggle")
HotKeySet("{F7}", "_quit")
While 1
Sleep($click_speed)
$pos_x = MouseGetPos(0)
$pos_y = MouseGetPos(1)
If $on Then MouseClick("right", $pos_x, $pos_y)
WEnd
Func _toggle()
If $on = 0 Then
$on = 1
Else
$on = 0
EndIf
EndFunc
Func _quit()
Exit
EndFunc
Alles anzeigen
peethebee
Hallo!
Hier eine verbesserte Version, die auch mit 2 MAC-Adressen in einem Rechner klarkommt und dennoch nur einmal User und Pass abfragt.
#include <array.au3>
#include <file.au3>
#include <Date.au3>
$filename = "C:\ipconfig.txt"
$source_filename = "C:\macs.txt"
; Macs auslesen
RunWait(@ComSpec & " /c ipconfig /all > " & $filename, "", @SW_HIDE)
Dim $array
_FileReadToArray($filename, $array)
$text = _ArrayToString($array, ";")
$macs = StringRegExp($text, ":\s((?:\A\A-){5}\A\A);", 3)
; Benutzernamen holen:
$user = InputBox("Username", "Bitte geben Sie ihren Benutzernamen ein:", "")
If $user <> "" Then ; Fehler abfangen
Dim $filearray
; Datei mit den Daten einlesen in das Array filearray
_FileReadToArray($source_filename, $filearray)
; Alle Einträge durchgehen
For $i = 1 To UBound($filearray) - 1
; Einträge aufsplitten, sodass Zugriff auf die Einzelteile komfortable wird
$filearray_splitted = StringSplit($filearray[$i], ":")
; Die Zeile mit dem richtigen Username finden
If $filearray_splitted[1] = $user Then
; Mac checken
; alle im Rechner gefundenen MACs durchgehen
For $j = 0 to UBound($macs)
; wenn keine Mac zum Schleifenverlassen geführt hat, dann Exit
If $j = UBound($macs) Then
MsgBox(0, "raus", "nichts gefunden")
Exit
EndIf
; Mac aus Datei mit vorhandener Mac verlgeichen
If $filearray_splitted[3] = $macs[$j] Then
ExitLoop
EndIf
Next
; Passwort checken
If $filearray_splitted[2] <> _hash(InputBox("Passwort", "Passwort eingeben:", "", "*")) Then
MsgBox(0, "Passwort inkorrekt", "Sie haben ein falsches Passwort eingegeben!")
Exit
EndIf
; Ablauf checken
If _DateDiff("D", _NowCalcDate(), $filearray_splitted[4]) < 0 Then
MsgBox(0, "Abgelaufen", "Ihr Account ist abgelaufen!")
Exit
EndIf
; Alles korrekt
MsgBox(0, "Online", "Zugangsdaten korrekt, verbinde mit Service...")
; hier käme alles hin, was geht, wenn man eingeloggt ist. Eventuell der Übersichtlichkeit halber in eine Funktion auslagern
EndIf
Next
EndIf
; temporäre Datei löschen
FileDelete($filename)
Func _hash($_hash_string)
; Testfunktion, die nicht hashed
Return $_hash_string
EndFunc ;==>_hash
Alles anzeigen
peethebee
[Klarstellung ein für alle mal]
AuoIt ist eine interpretierte Sprache. Das heißt, dass ein Programm sich einen Quelltext zeilenweise vornimmt und dabei je nach Zeilentext bestimmte Handlungen ausführt. AutoIt3.exe ist dabei der Interpreter, die jeweilige au3-Datei ist der Quelltext.
Wird das Skript nun kompiliert, wird es nicht zu Bytecode übersetzt, sondern es wird zusammen mit der AutoIt3.exe in eine neue Exe-Datei gepackt. Dabei wird zip-ähnlich gepackt (?), upx-gepackt und das ganze verschlüsselt. Gibt man ein Passwort an, so wird dieses zur Verschlüsselung verwendet. Bei der Einstellung "Dekompilieren nicht erlauben" wird auch ein Passwort verwendet, allerdings wird dieses intern generiert und ist relativ lang. Es ist keinesfalls ein Standardpasswort.
Damit der Interpreter beim Ausführen den Quellcode lesen kann, wird er mit dem gepsicherten Passwort wieder entschlüsselt. Wie das Passwort gespeichtert wird, weiß ich nicht genau.
Der einzig möglich scheinende Angriff ist also, entweder das Auslesen des (irgendwann) Klartextpasswortes abzugreifen oder den Quelltext direkt bevor ihn der Compiler zu Gesicht bekommt.
Das ist aber sicher keine triviale Aufgabe. Erfodert sicher sehr große PC-Erfahrung, das Wissen, dass es sich um AutoIt handelt, AutoIt-Wissen an sich und v.a. einige (!) Erfahrung im Reverse Engeneering.
Die Gefahr ist also eher gering einzustufen.
[/Klarstellung]
peethebee
Weil es ein heikeles Thema ist und der Threadstarter keine Informationen herausrückt, die mich glauben lassen könnten, dass er nicht einfach fremde Skripte ohne Erlaubnis dekompilieren will.
peethebee
naja, es ist das erste mal, dass da was fundiertes zu war. aber ich kann es evtl. mal zusammenfassen, waren 3 oder 4 seiten.
peethebee
WinSetState....
Dein Code?
Nach Then kannst du eine Funktion aufrufen. Wenn es mehrere sein sollen, musst du nach Then einen Zeilenumbruach machen und die Funktionsgruppe mit EndIf (in eigener Zeile) abschließen.
Wenn eine Fehlermeldung kommt, bitte die auch posten oder Screen davon machen.
peethebee
ZitatWir wissen nicht wer die Skripte geschrieben sind
Wieso ist es dein Problem. Bitte beantworte meine Fragen mal mit Zitat von oben bis unten.
Danke,
peethebee
Hallo!
In der aktuellen c't gibt es Hinweise, wie man die neuen XML-basierten Formate von OpenOffice (ODF, empfehlenswert) und Word 2k7 (DOCX, möglich, aber MS halt) leicht schreiben kann.
Das sollte auch in AutoIt gehen, falls das noch jemanden interessiert.
peethebee
Werde halt bitte mal konkret.
Welches Skript, wer hat ess geschrieben, was macht es?
Zitatvoraussichtlich im Internet und in Tauschbörsen veröffentlicht.
Wo veröffentlicht? was bedeutete voraussichtlich??
Fragen über Fragen...
peethebee
Was hat das:
ZitatIch hab ein Paar Skript gefunden die mit einem Passwort versehen sind, wie kann ich trotzdem die Skripte auslesen
damit
ZitatEin paar Skripte sind mit keinem Passwort versehen. Der Code wurde voraussichtlich im Internet und in Tauschbörsen veröffentlicht.
zu tun??
peethebee
Schildere den Fall wesentlich genauer, sonst können wir dazu gar nichts sagen...
Lag der Source offen oder nicht?
Ist der Code im Internet veröffentlicht worden?
Welche Funktionen scheinen kopiert und wieso können sie nicht einfach nachprogrammiert sein?
peethebee
Wie soll er etwas geklaut haben?
peethebee
Lesen aus dem Dos-Fenster geht mit StdOutRead, wenn ich es richtig im Kopf habe. Da scheint mir Bernds Lösung aber schöner als so Dos-Gefitzel, muss ich ehrlich sagen.
peethebee
Ich bin inhaltlicher Admin, Gun-Food technischer. Darum kann ich jetzt ins Bett.
Habe mit der Antwort wild ins Gras geschossen. Sollte eigentlich eine Fehlermeldung gegeben habe, die uns weitergeholfen hätte. Aber hat ja auch so geklappt.
Gute Nacht,
peethebee
#Include <Constants.au3>?
$msg = TrayGetMsg()?
Zu müde für bessere Antworten.
peethebee
Ja, wenn ich drüber nachdenke, ist es nciht so schwer zu implementieren, aber ich will halt auch, dass irgendwann mal eine (möglichst bug-freie) Version 1.0 released wird.
Dann kann man sich erst mal etwas zurücklehnen und auf dieser Basis weitere Dinge integrieren.
peethebee
@8. Naja, wer legt Termine in die Vergangenheit an?
Bei einem Geburtstag nehme ich den nächsten und sage dann: Jedes Jahr.
peethebee
2 Dinge:
1. gibt bestimmt Registry-Keys, die anzeigen, ob Java da ist...
2. bei deiner Lsung: Kommt die Fehlermeldung nicht auch in die Datei, wenn er Java nicht findet? Damit wäre sie auch da... (und lösch sie am Ende, sonst klappt es nur einmal)
peethebee