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
#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
.//////////: -/////////:-` -///. -///` ://. `///` -///:`//// `///-
/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
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
HotKeySet("{END}", "_exit")
$INI = @ScriptDir & "\Data.ini"
$vVersion = "1" ; Die version die das Script hat. Wird mit die aus dem Internet überpruft.
$vGUIColor = 0x161616
$vGUIColor2 = 0x161616
Dim $hGUIListChangelog
If Not FileExists(@ScriptDir & "\Data\") Then ; Ordner erstellen
DirCreate(@ScriptDir & "\Data\")
EndIf
If Not FileExists($INI) Then
IniWrite($INI, "Default", "Titel", "(C) The-Franky 2010 - 2011 Visit: http://www.forum.the-franky.de Thanks")
EndIf
_FU_ClickUpdateCheck()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _exit()
Sleep(10)
Exit
EndFunc ;==>_exit
; 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")
Exit
;~ GUISetState(@SW_SHOW, $hGUIUpdate) ;5
EndIf
EndFunc ;==>_FU_ClickUpdateCheck
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
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_
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]]
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
Return 0
EndFunc ;==>_SM_Check4MapFiles
Func _Checken()
If ProcessExists("Programm.exe") Then
; Nix machen alles ist gut
Else
FileDelete(@ScriptDir & "\Programm.exe")
Exit 0
EndIf
EndFunc ;==>_Checken
While 1
Sleep(1000)
WEnd
Func _FU_MapFilesInstall()
$v_MapFiles = @TempDir & "\Programm.rar" ; wird nur gespeichert ,damit es entpackt werden kann
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)
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)
ProgressSet(100, @LF & "This may take some seconds.", "Installing DateiName...")
$bExtractionSuc = _FU_RARExtract(@TempDir & "\unrar.dll", $v_MapFiles)
Sleep(2000)
[/autoit] [autoit][/autoit] [autoit]FileDelete(@TempDir & "\unrar.dll")
FileDelete($v_MapFiles)
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
ProgressOff()
EndFunc ;==>_FU_MapFilesInstall
;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
$rar_ArchivName = DllStructCreate("char[260]")
DllStructSetData($rar_ArchivName, 1, $v_RarFile)
$rar_CmtBuf = DllStructCreate("char[16384]")
For $iCount = 1 To 16384
$sResult &= " "
Next
DllStructSetData($rar_CmtBuf, 1, $sResult)
$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]")
$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))
If FileExists($v_UnrarDLL) Then
$DLLUnrar = DllOpen($v_UnrarDLL)
$rar_OpenedArchive = DllCall($DLLUnrar, "int", "RAROpenArchive", "ptr", DllStructGetPtr($rar_Str))
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
DllCall($DLLUnrar, "int", "RARCloseArchive", "int", $rar_OpenedArchive[0])
[/autoit] [autoit][/autoit] [autoit]DllClose($DLLUnrar)
Return 1
EndIf
EndIf
Return 0
EndFunc ;==>_FU_RARExtract