|
You last visited: Today at 18:39
Advertisement
AutoIt Programm nur mit "Patcher" öffnen?
Discussion on AutoIt Programm nur mit "Patcher" öffnen? within the AutoIt forum part of the Coders Den category.
01/08/2012, 12:43
|
#1
|
elite*gold: 25
Join Date: Nov 2011
Posts: 266
Received Thanks: 60
|
AutoIt Programm nur mit "Patcher" öffnen?
Hallo erstmal.
Mich intressiert:
1. wie man ein AutoIt Programm nur mit einem "Patcher" öffnen kann.
2. Wenn Ja, wie heißt der code & wie funktioniert das ganze?
3. An die VB Experten unter euch: Ich würde gerne den Patch über VB
machen mit DownloadFile usw. Wie heißt der code und wie Funktioniert das ganze?
4. Andere Sachen
1.
Ich würde gerne für meine kommenden programme sowas wie ein Patcher erstellen. d.h. Wenn man die datei.exe startet dann kommt eine Error meldung.
Wenn man es über den Patcher startet (der alles auf den Aktuellsten stand bringt)dann Funkioniert es. Wie bei Metin2... man kann es nur über den Patcher starten.
2.
Den code für AutoIt.
Das ganze können dann Releaser mit Ihren Programmen nutzen können. Nicht nur für mich^^. Wär nett wenn Ihr den Code hier rein postet.
3.
Den code für VisualBasic (VB).
Mit VB könnte man einen normalen "downloader" per FTP & Homepage machen
z.b.:
PHP Code:
My.Computer.downloadfile(" ... .de/Programme/...")
.../Programme/"Datei1.exe"
.../Programme/"Datei2.dll"
.../Programme/"Datei3.txt"
4.
Für Leute die meinen Sie können hier Beleidigen oder Meckern oder nur DUMME Sprüche ablassen wollen ist dieser Thread nichts!!!
Es gibt da so ein Button im Internet das heißt "Back", "Zurück" oder ein "Pfeil nach Links". Da könnt Ihr dann Drauf kilcken!
Ich möchte sowas nicht für Illegale zwecke Nutzen! es soll nur helfen das die leute immer das Update haben. z.b. veraltete version mit Fehlern. Kurz bearbeiten und als Update reinstellen.
MfG
BlueBasHeR or BB
|
|
|
01/08/2012, 13:06
|
#2
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
für das verhindern eines normalen start würden mir pauschal 2 wege einfallen.
- startup parameter übergabe
- überschreiben eines wertes im speicher. zb $start = False auf $start=True setzen
|
|
|
01/08/2012, 14:11
|
#3
|
elite*gold: 25
Join Date: Nov 2011
Posts: 266
Received Thanks: 60
|
Ich werde es später versuchen^^ aber danke das Du was reingeschrieben hast...
|
|
|
01/08/2012, 14:20
|
#4
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Code:
If $CmdLine[0] = 0 Then Exit
So beendet es sich schon gleich wieder, wee es keine Parameter mit bekommt.
|
|
|
01/08/2012, 14:37
|
#5
|
elite*gold: 25
Join Date: Nov 2011
Posts: 266
Received Thanks: 60
|
Und wie bekomme ich das hin, dass ich es über eine andere Exe starten kann?
|
|
|
01/08/2012, 14:41
|
#6
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Parameterübergabe lässt sich leicht Umgehen. Würde eher einen kleinen Teil Code jedesmal vom Server laden und diesen dann vom Programm laden lassen. Dürfte allerdings mit AutoIt schwer umzusetzen sein.
|
|
|
01/08/2012, 15:44
|
#7
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Alles lässt sich in autoit leicht umgehen. Man kann ja noch Versionsnummern online abgleichen o.ä.
|
|
|
01/08/2012, 15:56
|
#8
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by MoepMeep
Parameterübergabe lässt sich leicht Umgehen. Würde eher einen kleinen Teil Code jedesmal vom Server laden und diesen dann vom Programm laden lassen. Dürfte allerdings mit AutoIt schwer umzusetzen sein.
|
möglich wäre das ganze, da der autoit interpreter während der laufzeit per "Execute" beliebigen neuen code ausführen kann. in meinen augen wäre das allerdings nur traffic verschwendung.
der normale user, welcher das programm benutzen will, wird nicht in der lage sein das programm ohne den patcher zu starten.
sollte ein halbwegs fähiger "coder/reverse engineerer" versuchen wollen das ganze zu umgehen, so ist es ohnehin nicht möglich dies zu verhindern.
|
|
|
01/09/2012, 00:48
|
#9
|
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
|
Quote:
Originally Posted by BlueBasHeR
es soll nur helfen das die leute immer das Update haben. z.b. veraltete version mit Fehlern. Kurz bearbeiten und als Update reinstellen.
|
also ich versteh ihn so, dass er keine umgehungssicherheit braucht. dafür würd ich dann auch die genannte methode mit parameterübergabe nehmen.
1. patcher: läd sich eine datai runter in der drinsteht, was die aktuelle version ist, vergleicht mit der auf dem computer. läd dann und ersetzt oder startet das programm mit irgendeinem parameter, ist ja egal welcher.
2. programm guckt ob am anfang der richtige parameter angegeben wurde, wenn nicht dann gibts nen fehler.
funktionen: inetget(),$CmdLine[0],FileCopy()
|
|
|
01/09/2012, 08:51
|
#10
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
_inetgetsource würde aucg gehn
|
|
|
01/09/2012, 13:57
|
#11
|
elite*gold: 25
Join Date: Nov 2011
Posts: 266
Received Thanks: 60
|
Hallo?? xD Ich bin doch nicht so ein Profi wie IHR^^ gibt mir mal nen beispiel z.b.
inetget() = inetget(zahl x, zahl y) oder wie?
Thanks für euch weil ich euch so reinhängt
|
|
|
01/09/2012, 14:01
|
#12
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Wenn du alles fertig kriegst, bringt dir das nichts. Dir wurde gesagt wie du vorgehen musst und dir wurden einige Befehle genannt. Nun setz es selbstständig um, sonst wirst du nie besser werden.
|
|
|
01/09/2012, 16:08
|
#13
|
elite*gold: 25
Join Date: Nov 2011
Posts: 266
Received Thanks: 60
|
kk Ich habs^^
InetGet("URL", "Filename") das alles mit nem "IF satz" & "einer .txt datei" von der man die Version lesen kann. Wenn die Version im FTP höher ist als die im Ordner oder die datei nicht existiert dann wird es als UPDATE gesehen und alles wird gedownloadet.
Richtig?^^
|
|
|
01/09/2012, 17:22
|
#14
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by BlueBasHeR
kk Ich habs^^
InetGet("URL", "Filename") das alles mit nem "IF satz" & "einer .txt datei" von der man die Version lesen kann. Wenn die Version im FTP höher ist als die im Ordner oder die datei nicht existiert dann wird es als UPDATE gesehen und alles wird gedownloadet.
Richtig?^^
|
Ne, einfach ne feste Variable im Script mit der Versionsnummer.
Code:
Global $Version = 1.0.3
...
If $Version <> _inetgetsource("URl.de/version.txt") then
...
endif
Und wenn du die Parameter der Funktionen wissen willst, immer über die AutoIt Hilfe (F1 in SciTe).
Davor evl. noch die SoureURL anpingen, da _inetgetsource, soweit ich weiß, nicht austimet.
Das geht am besten mit
Code:
$var = Ping("www.AutoIt.de",250)
Wenn der Server nicht innerhalb von 250ms antwortet, gibt die Funktion 0 zurück.
Also musst du einfach prüfen
Code:
If $var = 0 then return false (oder ähnlich)
|
|
|
01/10/2012, 19:29
|
#15
|
elite*gold: 0
Join Date: Jul 2011
Posts: 137
Received Thanks: 18
|
Ich weiß nicht wie ich es dir erklären soll, aber so wär ein autoit patcher aufgebaut.
Code:
Func Update()
Debug("Checking version")
$URL="..."
$httpObj = ObjCreate("...")
$httpObj.open("GET",$URL)
$httpObj.send()
$Version = $httpObj.Responsetext
#cs
If Number($Version) == *version* Then
MsgBox(0, "Error", "Kann nicht gepatcht werden")
Exit
Else
#ce
If (Number($Version)-$ver) > 0.01 Then
MsgBox(0, "Update?", "Jetzt wird geupdatet.", 10)
$FileToDownload = Deine File.rar"
$FileDownloadURL = "..."
Updater()
MsgBox(0, "Updated", $FileToDownload & " Fertig")
Exit
ElseIf (Number($Version)-$ver) > 0 Then
MsgBox(0, "Update?", "Kann nicht gepatched werden", 10)
$FileToDownload = "File.rar"
$FileDownloadURL = ..."
Updater()
MsgBox(0, "Updated", $FileToDownload & "Fertig")
Exit
Else
MsgBox(0,"Update?","Du bist up todate.", 1)
EndIf
EndFunc
Func Updater()
FileRecycle (@ScriptDir & "\" & $FileToDownload)
$FileSize = InetGetSize ($FileDownloadURL & $FileToDownload,1)
$FileDownloading = InetGet ($FileDownloadURL & $FileToDownload, @ScriptDir & "\" & $FileToDownload,1,1) ;1 für Force redownload, 1 für Do not wait till downloaded and go next
ProgressOn ("Download progress", "Downloading file ", "0 %") ;start progress bar windows
For $i = 1 to $FileSize step 1
$FileDownloadingInfo = InetGetInfo ($FileDownloading)
$FilePercentDownloaded = Round($FileDownloadingInfo[0]*100/$FileSize, 2)
ProgressSet($FilePercentDownloaded, $FilePercentDownloaded & " %")
;GUICtrlSetData ($progress,$percentDownloaded)
If InetGetInfo($FileDownloading,2) Then
InetClose($FileDownloading)
ExitLoop
Else
ContinueLoop
EndIf
Next
ProgressOff()
ProgressSet(100 , "100%", "Download komplett!")
EndFunc
Is zwar jetz nicht mit nem "patcher" aber es patched ^^
|
|
|
All times are GMT +1. The time now is 18:44.
|
|