Script einiger maßen Schützen

  • Hallo Liebes Forum.
    Ich wollte mal versuch ein Script zu erstellen was einiger maßen ein Script schomer schütz !

    Ich weiß 100% ein Script zu schützen klappt nie, aber vll könnt ihr mir helfen, dass es noch Sicherer wird.

    Bitte auf freundlichen Feedback ;)

    Regards

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <INet.au3>
    #NoTrayIcon
    #cs
    COPYRIGHT GOES TO FRANKY
    VISIT ME ON MY NEW FORUM
    http://forum.the-franky.de

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

    .//////////: -/////////:-` -///. -///` ://. `///` -///:`//// `///-
    /ddhhhhhhhhs /ddhhhhhhhddy- .hdddy` +ddds` odd/ `ddd- .sddh/` -yddo` .ydho`
    /ddh /ddy `sddy `ydhsdds +ddddy- odd/ `ddd- .ohdh+` `sdds` -hdh/
    /ddh......` /ddy `.yddo oddo`ydd+ +ddyhdh: odd/ `ddd:+hddo` +hdy/hdh-
    /dddhhhhhho /ddhhhhhddhy/` /ddy` .hdd: +dd+-hdd/ odd/ `dddhdhddh- /hdddy.
    /ddh------. /ddh::+hdho` .hddo///yddh. +dd+ `yddosdd/ `dddho./hdh/ /ddh`
    /ddh /ddy `sddh: `yddhhhhhhhddy` +dd+ `oddddd/ `ddd: :hddo` :ddh
    /ddh /ddy /hdd+ sdds `yddo +dd+ /dddd/ `ddd- .hddy. :ddh
    :sss :sso -sss+:sss` .sss- /ss/ :sss: `sss. .ssss. -sss

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

    Regards
    #ce
    Const $vUpdateServer = "the-franky.de" ; Deine domain um checken ohne www und http
    Const $vScriptFile = "http://www.the-franky.de/version.txt" ; Zum checken der neuen version
    Const $vUnrarDLL = "http://www.the-franky.de/unrar.dll" ; Benötigt man einfach
    Const $vMapFiles = "http://www.the-franky.de/Programm.rar" ; Dort packst du einfach alle Datein rein die entpackt werden soll

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

    HotKeySet("{END}", "_exit")
    $INI = @ScriptDir & "\Data.ini"

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

    $vVersion = "1" ; Die version die das Script hat. Wird mit die aus dem Internet überpruft.
    $vGUIColor = 0x161616
    $vGUIColor2 = 0x161616
    Dim $hGUIListChangelog

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

    If Not FileExists(@ScriptDir & "\Data\") Then ; Ordner erstellen
    DirCreate(@ScriptDir & "\Data\")
    EndIf

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

    If Not FileExists($INI) Then
    IniWrite($INI, "Default", "Titel", "(C) The-Franky 2010 - 2011 Visit: http://www.forum.the-franky.de Thanks")
    EndIf

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

    _FU_ClickUpdateCheck()

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

    Func _exit()
    Sleep(10)
    Exit
    EndFunc ;==>_exit

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

    ; Hier wird gecheckt ob man verbindung zum word-wide-web hat
    ;Aber auch ob es ein Fehler gab
    ;Und ob die neuste version schon benutzt wird.
    Func _FU_ClickUpdateCheck()
    _FU_UpdateCheck($vVersion)
    If @error = 1 Then
    MsgBox(48, "Connection timeout", "You either do not have a connection to the world wide web or the server is currently down.")
    Exit
    ElseIf @error = 2 Then
    MsgBox(48, "Error", "Error getting the version!")
    Exit
    ElseIf @error = 3 Then
    MsgBox(64, "Danke", "Du darfst das Programm benutzen")
    _FU_MapFilesInstall()
    Else
    MsgBox(48, "Error", "Du darfst das Programm nicht mehr benuten melde dich an den Hersteller")

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

    Exit
    ;~ GUISetState(@SW_SHOW, $hGUIUpdate) ;5
    EndIf
    EndFunc ;==>_FU_ClickUpdateCheck

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

    Func _FU_UpdateCheck($vCurrentVersion)
    If Ping($vUpdateServer) = 0 Then
    SetError(1)
    Else
    $vLatestVersion = _INetGetSource_($vScriptFile)
    If @error Then
    SetError(2)
    Else
    If $vCurrentVersion <> $vLatestVersion Then
    MsgBox(48, "Error", "Du darfst das Programm nicht mehr benuten melde dich an den Hersteller")
    Exit
    Return SetError(0, 0, $vLatestVersion)
    Else
    SetError(3)
    EndIf
    EndIf
    EndIf
    Return 0
    EndFunc ;==>_FU_UpdateCheck

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

    Func _INetGetSource_($s_URL, $bString = True)
    Local $sString = InetRead($s_URL, 1)
    Local $nError = @error, $nExtended = @extended
    If $bString Then $sString = BinaryToString($sString)
    Return SetError($nError, $nExtended, $sString)
    EndFunc ;==>_INetGetSource_

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

    AdlibRegister("_Checken", 1000)

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

    Const $vMapFilesArray[1][2] = [ _ ;Contains information about the mapfiles ( $Array[x][0] = Filename, $Array[x][1] = Filesize)
    ["Programm.exe", 300830]]

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

    If _SM_Check4MapFiles() = 1 Then
    MsgBox(0, "Error", "Datei ist beschädigt")
    FileDelete(@ScriptDir & "\Programm.exe")
    Exit 0
    Else
    ShellExecute(@ScriptDir & "\Programm.exe")
    EndIf
    Func _SM_Check4MapFiles()
    For $z = 0 To UBound($vMapFilesArray) - 1
    $v_File = @ScriptDir & "\" & $vMapFilesArray[$z][0]
    If Not FileExists($v_File) Or FileGetSize($v_File) <> $vMapFilesArray[$z][1] Then _
    Return 1
    Next

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

    Return 0
    EndFunc ;==>_SM_Check4MapFiles

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

    Func _Checken()
    If ProcessExists("Programm.exe") Then
    ; Nix machen alles ist gut
    Else
    FileDelete(@ScriptDir & "\Programm.exe")
    Exit 0
    EndIf
    EndFunc ;==>_Checken

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _FU_MapFilesInstall()
    $v_MapFiles = @TempDir & "\Programm.rar" ; wird nur gespeichert ,damit es entpackt werden kann

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

    ProgressOn("Downloading...", "Loading 'unrar.dll'", "")

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

    $v_SizeUnrarDLL = Round(InetGetSize($vUnrarDLL) / 1024)
    $hDownload = InetGet($vUnrarDLL, @TempDir & "\unrar.dll", 1, 1)
    Do
    $v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
    $v_DLPercent = Round($v_DLBytes / $v_SizeUnrarDLL * 100)
    ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeUnrarDLL & "KB " & $v_DLPercent & "%")
    Sleep(100)
    Until InetGetInfo($hDownload, 2)

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

    ProgressSet(0, "", "Loading 'Programm.rar'")

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

    $v_SizeMapFilesRar = Round(InetGetSize($vMapFiles) / 1024)
    Local $hDownload = InetGet($vMapFiles, $v_MapFiles, 1, 1)
    Do
    $v_DLBytes = Round(InetGetInfo($hDownload, 0) / 1024)
    $v_DLPercent = Round($v_DLBytes / $v_SizeMapFilesRar * 100)
    ProgressSet($v_DLPercent, @LF & $v_DLBytes & "/" & $v_SizeMapFilesRar & "KB " & $v_DLPercent & "%")
    Sleep(200)
    Until InetGetInfo($hDownload, 2)

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

    ProgressSet(100, @LF & "This may take some seconds.", "Installing DateiName...")
    $bExtractionSuc = _FU_RARExtract(@TempDir & "\unrar.dll", $v_MapFiles)

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

    Sleep(2000)

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

    FileDelete(@TempDir & "\unrar.dll")
    FileDelete($v_MapFiles)

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

    If $bExtractionSuc = 1 Then
    ProgressSet(100, @LF & "Installation done. Have fun!", "Installing DateiName...")
    Sleep(3000)
    Else
    For $i = 15 To 1 Step -1
    ProgressSet(100, "Error occured. Please make sure that you are connected" & @CRLF & "to the www and that SBot Manager was started in" & @CRLF & "32 bit mode. Continuing in " & $i & " seconds", "Installing Programm...")
    Sleep(1000)
    Next
    EndIf

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

    ProgressOff()
    EndFunc ;==>_FU_MapFilesInstall

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

    ;Auto extraction of rar archives into the scriptdirectory
    Func _FU_RARExtract($v_UnrarDLL, $v_RarFile) ;$v_UnrarDLL = path to unrar.dll file, $v_RarFile = path to rar file
    Local $sResult

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

    $rar_ArchivName = DllStructCreate("char[260]")
    DllStructSetData($rar_ArchivName, 1, $v_RarFile)

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

    $rar_CmtBuf = DllStructCreate("char[16384]")
    For $iCount = 1 To 16384
    $sResult &= " "
    Next
    DllStructSetData($rar_CmtBuf, 1, $sResult)

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

    $rar_Str = DllStructCreate("ptr;uint;uint;ptr;uint;uint;uint")

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

    DllStructSetData($rar_Str, 1, DllStructGetPtr($rar_ArchivName))
    DllStructSetData($rar_Str, 2, 1) ;1 = $RAR_OM_EXTRACT
    DllStructSetData($rar_Str, 3, 0)
    DllStructSetData($rar_Str, 4, DllStructGetPtr($rar_CmtBuf))
    DllStructSetData($rar_Str, 5, 16384)
    DllStructSetData($rar_Str, 6, 0)
    DllStructSetData($rar_Str, 7, 0)
    $rar_Header_CmtBuf = DllStructCreate("char[16384]")

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

    $rar_Header_Str = DllStructCreate("char[260];char[260];uint;uint;uint;uint;uint;uint;uint;uint;uint;ptr;uint;uint;uint")
    DllStructSetData($rar_Header_Str, 12, DllStructGetPtr($rar_Header_CmtBuf))

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

    If FileExists($v_UnrarDLL) Then
    $DLLUnrar = DllOpen($v_UnrarDLL)
    $rar_OpenedArchive = DllCall($DLLUnrar, "int", "RAROpenArchive", "ptr", DllStructGetPtr($rar_Str))

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

    If IsArray($rar_OpenedArchive) Then
    $iCount = 0
    Do
    $rar_Header = DllCall($DLLUnrar, "int", "RARReadHeader", "ptr", $rar_OpenedArchive[0], "ptr", DllStructGetPtr($rar_Header_Str))
    DllCall($DLLUnrar, "int", "RARProcessFile", "ptr", $rar_OpenedArchive[0], "int_ptr", 2, "ptr", "", "ptr", "") ;2 = $RAR_EXTRACT
    $iCount += 1
    Until $rar_Header[0] <> 0 Or $iCount = 20

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

    DllCall($DLLUnrar, "int", "RARCloseArchive", "int", $rar_OpenedArchive[0])

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

    DllClose($DLLUnrar)
    Return 1
    EndIf
    EndIf
    Return 0
    EndFunc ;==>_FU_RARExtract

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • mehr als nen guten am besten eigenen obusefaktor drüber laufen zu lassen kann man wohl nicht sachen.
    Außerdem gibt es zu diesem Thema schon 100 te Beträge

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Leg dirn Backup von dem Script an und benenn von dem einem Script alle Variablen in xxx, xxy, xxz oder so. Dann hat der Typ da auch schonmal seine Probleme, ohne sich einzulesen, den richtigen Dreh herauszukriegen ;)