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. WhiteLion

Beiträge von WhiteLion

  • [Demotool] kode kompressor - Extremer EXE Packer

    • WhiteLion
    • 13. Mai 2013 um 10:14

    schönes tool, dann mal ran an C++ / asm um die demos zu coden ;)

  • _HTML_UDF (Funktionen für den Umgang mit HTML-Source-Code - ohne Browser)

    • WhiteLion
    • 6. Mai 2013 um 08:37

    klasse! tolle idee!

  • S7-1200 als Visu

    • WhiteLion
    • 26. April 2013 um 16:01

    visu ? was ist das ? kann man das essen ?

  • Problem mit einem Fehler in _GetRegValues

    • WhiteLion
    • 24. April 2013 um 18:41

    gut,, gebe ich dir recht .... allerdings dürfte die variante von dir auch nicht funktionieren .... hmmm, böses dilemma

  • Problem mit einem Fehler in _GetRegValues

    • WhiteLion
    • 24. April 2013 um 18:00

    PainTain
    Ich glaube nicht das deine variante funktioniert, da der Fehler ja aus der Zeile 1 (dein script) bereits entsteht und geworfen wird (siehe fehlermeldung und post 1).
    da nützt es doch nichts, wenn ich danach eine abfrage mache, deswegen hab ich meine variante im post über deinem anders gestaltet,
    bin mir aber nicht sicher dabei.

  • Problem mit einem Fehler in _GetRegValues

    • WhiteLion
    • 24. April 2013 um 15:59

    Also evtl war es nicht so ganz deutlich ... das script ist hier nur auszugsweise gepostet, da viel zu lang .... es fordert natürlich per #RequireAdmin die entsprechenden rechte an. daran scheint es nicht zu liegen. leider trat das problem nur einmal/sich immer wiederholen bei jemanden auf. ich möchte natürlich verhindern das es erneut bei anderen passiert.
    deshalb möchte ich den fehler möglichst abfangen, weiss aber nicht wie bzw ob es überhaupt geht die besagte fehlermeldung abzufangen.
    wäre das eine mögliche lösung ?

    [autoit]


    If Not IsObj("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") Then
    ;MsgBox(0, "FEHLER", "Ist kein Objekt.")
    return 0
    Else
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") ;hier cracht es!
    ....
    EndIf

    [/autoit]
  • Problem mit einem Fehler in _GetRegValues

    • WhiteLion
    • 23. April 2013 um 19:48

    hallo community!
    Ich benutze die Funktion _GetRegValues von BugFix .... leider hab ich ein Problem, welches ich einfach nicht reproduzieren konnte, ausser auf dem Rechner eines Freundes per Teamviewer.
    Ich habe keine ahnung warum er dort immer wieder mit folgender fehlermeldung crashte:
    http://puu.sh/2FDJJ.jpg (Error: Variable must be type object)

    ich benötige tipps wie ich das ganze am glücklichsten abfange, da ich nicht erwarte, dass jemand einen fehler in dieser funktion bzw an dieser stelle ausmachen kann und andererseits auch keinen fehler beim
    abfangen des fehlers machen möchte.
    der Ursprung für dem Fehlermeldung liegt genau in der Zeile:
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")


    hier benutze ich die Funktion um _GetRegValues aufzurufen:

    [autoit]

    Func _add_to_autostart_Taskplaner()
    $taskname = StringReplace(@ScriptFullPath,"\","")
    $taskname = StringReplace($taskname,":","")
    $taskname = _Crypt_HashData($taskname, $CALG_MD5)
    $regkeys = _GetRegSubKeys("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks")
    for $z = 0 to UBound($regkeys) -1
    $regvalues = _GetRegValues("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\"&$regkeys[$z])
    $regentryfound = _ArraySearch($regvalues, "\"&$taskname)
    if $regentryfound >= 0 Then Return 1
    Next
    $result000 = ShellExecute("schtasks.exe",'/create /sc ONLOGON /tn '&'"'&$taskname&'"'&' /rl HIGHEST /tr '&'"\"'&@ScriptFullPath&'\"',"","",@SW_HIDE)
    EndFunc

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

    ;========================================================================================
    ; Function Name: _GetRegValues($HKEY)
    ; Description: Ermittelt alle Namen, Typen und Werte in einem gegebenen Schlüssel
    ; Parameter(s): $HKEY der Registryschlüssel
    ; Return Value(s): Erfolg Array[0] = Name
    ; Array[1] = Typ
    ; Array[2] = Wert
    ; Fehler Leerstring (Schlüssel existiert nicht oder ist ohne Einträge)
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;========================================================================================
    Func _GetRegValues($HKEY)
    Local $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
    If StringInStr($HKEY, '\') Then
    If StringRight($HKEY, 1) = '\' Then
    $HKEY = StringTrimRight($HKEY, 1)
    Local $strKeyPath = ''
    Else
    Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
    $HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
    EndIf
    Else
    Local $strKeyPath = ''
    EndIf
    Select
    Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
    $HKEY = 0x80000002
    Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
    $HKEY = 0x80000003
    Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
    $HKEY = 0x80000001
    Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
    $HKEY = 0x80000000
    Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
    $HKEY = 0x80000005
    EndSelect
    Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") ;hier cracht es!
    Local $arrValueNames, $arrValueTypes, $strValue
    $oReg.EnumValues($HKEY, $strKeyPath, $arrValueNames, $arrValueTypes)
    $OEvent = ObjEvent($oReg, "EnumValues")
    If Not IsArray($arrValueNames) Then Return ''
    Local $arOut[UBound($arrValueNames)][3]
    For $i = 0 To UBound($arrValueNames) -1
    $arOut[$i][0] = $arrValueNames[$i]
    Switch $arrValueTypes[$i]
    Case 1
    $arOut[$i][1] = 'REG_SZ'
    $oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 2
    $arOut[$i][1] = 'REG_EXPAND_SZ'
    $oReg.GetExpandedStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 3
    $arOut[$i][1] = 'REG_BINARY'
    $oReg.GetBinaryValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 4
    $arOut[$i][1] = 'REG_DWORD'
    $oReg.GetStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    Case 7
    $arOut[$i][1] = 'REG_MULTI_SZ'
    $oReg.GetMultiStringValue($HKEY, $strKeyPath, $arrValueNames[$i], $strValue)
    EndSwitch
    $arOut[$i][2] = $strValue
    Next
    Return $arOut
    EndFunc ;==>_GetRegValues
    Func MyErrFunc()
    Return
    Endfunc

    [/autoit]
  • String packen ohne auf Festplatte auszulagern ?

    • WhiteLion
    • 8. April 2013 um 22:16

    perfect! das LZMA packt mit ratio zwischen 75 und 85 % !
    danke :D

  • String packen ohne auf Festplatte auszulagern ?

    • WhiteLion
    • 8. April 2013 um 20:28

    ich habe im speicher ein debuglog (string), was ich gerne zippen oder irgendwie packen möchte und zwar ohne selbiges auf die platte auszulagern.
    (es das ergebnis (der gepackte string) wird dann direkt an den server geschickt)
    PS: der string bzw das logfile hab ich auf 20 mb begrenzt.
    habt ihr eine idee ?

    PS: um missverständnisse zu vermeiden: es geht nur um das packen ohne auf platte zu schreiben, der rest ist bereits fertig.

  • AutoIt Compiler (Project Perseus)

    • WhiteLion
    • 6. April 2013 um 17:21

    und wann wird die version veröffentlicht ?

  • in ein Fremdes Programm per Control einen Button setzen

    • WhiteLion
    • 5. April 2013 um 08:47
    Zitat von BugFix

    Wir danken für die äußerst präzise Problemdarstellung und empfehlen den Kauf einer Kristallkugel. :whistling:

    lol :D
    sorry :)

    gerade wollte ich eine fehlerbeschreibung liefern, da hab ich den versteckten "hallo" - knopf in Autoit window info entdeckt.
    also nehme ich Inahlt des vorherigen kommentares (den es nicht gab) und beschwerde zurück -->> ES GEHT <<-- ;)

  • in ein Fremdes Programm per Control einen Button setzen

    • WhiteLion
    • 5. April 2013 um 08:22

    Also bei mir geht das bzw die verlinkten beispiele von dir nicht Andy,

  • Themida stürtzt immer ab.

    • WhiteLion
    • 4. April 2013 um 15:40

    Themida ist mit sicherheit nicht in Autoit geschrieben. es ist ein protector der eine VM um eine exe wrappt und somit besonders hohen schutz bietet. allerdings verstehen die meisten leute nicht, dass sie beim benutzen solcher programme nur den autoit-interpreter-teil ihrer kompilierten exe schützen und nicht ihr script. der schutz bringt also nichts.

  • Nur bestimmte Textstelle in Zeile ändern

    • WhiteLion
    • 3. April 2013 um 20:09

    bitte.... bedenke allerdings, dass dieses keines falls eine ideallösung ist.... die passwortdatay wird jedes mal neu geschrieben.
    das liegt hauptsächlich daran wie du an die sache rangegangen bist ... du solltest bei ini dateien einfach mit iniread / iniwrite arbeiten.
    das macht es nicht nur einfacher, sondern auch schneller, wenn die datei größer ist.

  • Nur bestimmte Textstelle in Zeile ändern

    • WhiteLion
    • 3. April 2013 um 08:16

    ich glaube das sind deine freunde:
    http://www.autoitscript.com/autoit3/docs/f…ileReadLine.htm
    http://www.autoitscript.com/autoit3/docs/f…ringReplace.htm


    Hier die Lösung...
    Über Sinnhaftigkeit des Ganzen lässt sich streiten:

    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <DateTimeConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>
    #include <File.au3>
    #include <array.au3>

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

    $Form1 = GUICreate("Form1", 314, 254, -1, -1)
    $Altes_PW = GUICtrlCreateInput("", 50, 40, 200, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Neues_PW = GUICtrlCreateInput("", 50, 104, 200, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Neues_PW_WDH = GUICtrlCreateInput("", 50, 160, 200, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Button1 = GUICtrlCreateButton("Passwort ändern", 50, 208, 200, 25, 0)
    $Altes_Passwort = GUICtrlCreateLabel("Altes Passwort:", 50, 16, 76, 17)
    $Neues_Passwort = GUICtrlCreateLabel("Neues Passwort:", 50, 80, 84, 17)
    $Neues_Passwort_Wiederholen = GUICtrlCreateLabel("Neues Passwort wiederholen:", 50, 136, 144, 17)
    GUISetState(@SW_SHOW)

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

    $Nutzer = "Jan" ; Ändert sich immer durch einen input

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    _PW()
    EndSwitch
    WEnd

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

    Func _PW()
    $Zaehlen = _FileCountLines(@ScriptDir & "\Test.txt")
    For $i = 4 To $Zaehlen
    $Zeile = FileReadLine(@ScriptDir & "\Test.txt", $i)
    If StringInStr($Zeile, $Nutzer) Then
    $PasswortZeile = FileReadLine(@ScriptDir & "\Test.txt", $i)
    $Passwortdatei = StringSplit($PasswortZeile, " = ", 1)
    $PW = $Passwortdatei[3]
    $1 = GUICtrlRead($Altes_PW)
    $2 = GUICtrlRead($Neues_PW)
    $3 = GUICtrlRead($Neues_PW_WDH)
    if $2 <> $3 Then MsgBox(0, "Fehler", "Die Wiederholung des neuen Passwortes ist falsch")
    if $1 = $Passwortdatei[2] Then
    $read = FileRead(@ScriptDir & "\Test.txt")
    $read = StringReplace($read, $Nutzer&" = "&$1&" = ", $Nutzer&" = "&$2&" = ")
    FileDelete(@ScriptDir & "\Test.txt")
    $ret = FileWrite(@ScriptDir & "\Test.txt", $read)
    if $ret = 1 MsgBox(0, "OK", "Neues Passwort wurde gesetzt")
    Else
    MsgBox(0, "Fehler", "Das alte Passwort wurde falsch eingegeben")
    EndIf
    Return
    EndIf
    Next
    Return ""
    EndFunc

    [/autoit]
  • Problem mit Windows 8 und 64bit und WinHTTP.au3

    • WhiteLion
    • 2. April 2013 um 22:26

    danke für die mühe. letztendlich hat es geholfen auf ein update ihrer UDF auf die version von´vor ein paar tagen, meine version war wohl älter, was man mangels einer versionsnummer der udf nicht erkennen konnte.

  • Problem mit Windows 8 und 64bit und WinHTTP.au3

    • WhiteLion
    • 2. April 2013 um 11:31

    okay, dann meine ich sie ;)
    na ja, in 32 bit läuft es auch unter windows 8 ... allerdings brauche ich eine 64 bit kompilierung, und da crasht es an der besagten stelle.
    ich hab versucht das handle per hand um 4 byte zu kürzen und habe gehofft, dass ich den fehler damit vermeiden könne, hat leider nicht funktioniert.... hmmmpf :(

  • Problem mit Windows 8 und 64bit und WinHTTP.au3

    • WhiteLion
    • 1. April 2013 um 21:27

    na ja, der hat geantwortet, dass autoit windows 8 nicht unterstützt... hilft mir leider nicht weiter.

  • Problem mit Windows 8 und 64bit und WinHTTP.au3

    • WhiteLion
    • 1. April 2013 um 16:21

    Das problem ist das system ;)
    wenn ich versuche das untere script als 64bit variante auszuführen, dann funktioniert das ganze nicht (unter Win7 64 komischer weise schon)
    und zwar ist das problem genau hier:
    Local $hRequestWinHttp = _WinHttpOpenRequest($hConnectWinHttp, "POST", $target_URL)
    wenn $hConnectWinHttp eine 64bit langer int ist, crasht es...
    was soll ich nun tun ? den int einfach zurechtpharsen wäre wohl stümperhaft oder ?
    _WinHttpOpenRequest ist keine von mir erstellte funktion. (UDF hängt an)

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_UseX64=y

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

    #include <WinHTTP.au3>
    #include <base64.au3>

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

    $crypted_file = FileOpenDialog("Select crypted logfile", @ScriptDir, "Logfiles (*.*)", 1)
    $connect_to_server = "xxxxxxserver.de"
    $target_URL = "upload-test.php"

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

    MsgBox(0, "ergebnis", _send_post_binary($connect_to_server, $target_URL, $crypted_file))

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

    func _send_post_binary($connect_to_server, $target_URL, $binaryfiledata, $file_send_to_server = "binary.exe", $sBoundary = "XXX", $encodebase64 = 1 )

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

    ;~ ; Initialize and get session handle
    ;~ Local $hOpenWinHttp = _WinHttpOpen()
    ;~ ; Get connection handle
    ;~ Local $hConnectWinHttp = _WinHttpConnect($hOpenWinHttp, $connect_to_server)
    ;~ ; Specify the reguest
    ;~ Local $hRequestWinHttp = _WinHttpOpenRequest($hConnectWinHttp, "POST", $target_URL)

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

    ; Initialize and get session handle
    Local $hOpenWinHttp = _WinHttpOpen()
    MsgBox(1,"$hOpenWinHttp",$hOpenWinHttp)
    ; Get connection handle
    Local $hConnectWinHttp = _WinHttpConnect($hOpenWinHttp, $connect_to_server)
    MsgBox(1,"$hConnectWinHttp",$hConnectWinHttp)
    ; Specify the reguest
    Local $hRequestWinHttp = _WinHttpOpenRequest($hConnectWinHttp, "POST", $target_URL)
    MsgBox(1,"$hRequestWinHttp",$hRequestWinHttp)

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

    ;~ --------------------------------------------------------
    Local $base64Stuff, $sS
    if $encodebase64 = 1 Then
    $base64Stuff = _Base64Encode(FileRead($binaryfiledata))
    Else
    $base64Stuff = _Base64Encode(FileRead($binaryfiledata))
    EndIf

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

    $sS = @CRLF & "--" & $sBoundary & @CRLF
    $sS &= 'Content-Disposition: multipart/form-data; name="userfile"; filename="' & $file_send_to_server & '"' & @CRLF
    $sS &= 'Content-Transfer-Encoding: base64' & @CRLF
    $sS &= "Content-Type: text/plain" & @CRLF & @CRLF & $base64Stuff & @CRLF
    $sS &= "--" & $sBoundary & "--" & @CRLF

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

    ;MsgBox(0,"SS", $sS)

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

    ; Send request
    Local $hSendRequestWinHttp = _WinHttpSendRequest($hRequestWinHttp, "Content-Type: multipart/form-data; boundary=" & $sBoundary & @CRLF, $sS, StringLen($sS))

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

    ; Wait for the response
    _WinHttpReceiveResponse($hRequestWinHttp)
    Local $recieived_data = _WinHttpReadData($hRequestWinHttp)

    ; Close handles
    _WinHttpCloseHandle($hRequestWinHttp)
    _WinHttpCloseHandle($hConnectWinHttp)
    _WinHttpCloseHandle($hOpenWinHttp)

    ; Check if there is data available...
    If _WinHttpQueryDataAvailable($hRequestWinHttp) Then
    Return $recieived_data
    Else
    Return $recieived_data
    EndIf

    EndFunc

    [/autoit]

    Dateien

    WinHTTP.au3 57,52 kB – 387 Downloads WinHTTPConstants.au3 21,09 kB – 381 Downloads base64.au3 2,68 kB – 392 Downloads
  • AutoIt Compiler (Project Perseus)

    • WhiteLion
    • 1. April 2013 um 10:39

    wo ist sie denn ?

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™