Beiträge von Fisticuff

    In VB kann diese Funktion z.B. so aussehen.

    Code
    1. <DllImport("kernel32.dll", SetLastError:=True)> _
    2. Public Shared Function ReadProcessMemory( _
    3. ByVal hProcess As IntPtr, _
    4. ByVal lpBaseAddress As IntPtr, _
    5. ByVal lpBuffer As IntPtr, _
    6. ByVal iSize As Integer, _
    7. ByRef lpNumberOfBytesRead As Integer) As Boolean
    8. End Function


    andrehaehnel ach das meintest du..ja sry, das ist schon die richtige Funktion. Jedoch hab ich das mit ReadProcessMemory hinbekommen:

    Code
    1. Dim sroProcess As Process() = Process.GetProcessesByName("SRO_Client")(0)
    2. Dim mid As IntPtr = OpenProcess(&H10, False, CUInt(sroProcess.Id))
    3. Dim bytes As Byte() = New Byte(2) {}
    4. If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = "7547" Then 'hier musste ich statt &H7547 einfach nur "7547" schreiben, also die MsgBox wird nun angezeigt
    5. MsgBox("Test")
    6. End If


    Jedoch komme ich nun aber beim WriteProcessMemory nicht weiter, das ist irgendwie sehr kompliziert, AutoIT-Code:


    Mein bisheriger Code ist der:


    Code
    1. WriteProcessMemory(mid, &H633D00, bytes, 2, 0) 'Ich weiß nicht wie/wo ich 'EB' einfügen soll..
    2. Hier noch meine WriteProcessMemory-Funktion:
    3. <DllImport("kernel32.dll")> _
    4. Private Shared Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As UInt32, ByRef lpNumberOfBytesWritten As UInt32) As Boolean
    5. End Function


    Das ist nun ein wenig kompliziert, da hier nichts farbig markiert wird usw...hoffe mir könnte da trotzdem jemand helfen

    o.O Wie ohne meinen Code zu sehen? Den hab ich doch im ersten Post schon eingefügt...Also, diesen AutoIT-Code will ich übersetzen:

    Code
    1. $pid = Run('Pfad zur SRO_Client.exe')
    2. $mid = memopen($pid)
    3. If memread($mid, 0x633D00, 'byte[2]') = '0x7547' Then
    4. MsgBox('Test')
    5. EndIf


    Und das ist mein derzeitiger VB.NET-Code:

    Code
    1. Dim sroProcess As Process() = Process.GetProcessesByName("SRO_Client")(0)
    2. Dim mid As IntPtr = OpenProcess(&H10, False, CUInt(sroProcess.Id))
    3. Dim bytes As Byte() = New Byte(2) {}
    4. If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = &H7547 Then
    5. MsgBox("Test")
    6. End If


    Eigentlich müsste dann die MsgBox kommen, aber es passiert nichts und ich weiß nicht woran es liegt...

    Richtig kanns ja dann nich sein, da ja keine MsgBox angezeigt wird^^
    Ja da gibts noch mehr Code, aber für mein Vorhaben ist nur dieser Teil wichtig und nur der wird auch benötigt. Mein Aufruf muss ja irgendwo falsch sein... wo ich mir beim übersetzen nicht sicher bin ist hier:

    Code
    1. 'Im AutoIT-Code ist das ja so:
    2. ...'byte[2]'...
    3. 'Und ich habe das so in VB.NET gemacht:
    4. ...
    5. Dim bytes As Byte() = New Byte(2) {}
    6. ...


    Da weiß ich nich ob das nun richtig ist, vielleicht liegts ja auch daran, dass es nicht klappt...

    Hi, ich versuche gerade ein kleines Tool das in AutoIT geschrieben wurde (um genau zu sein der Loader von lolkop für private Silkroadserver) zu übersetzen und komme da an einer Stelle nicht weiter. Es geht um diesen Abschnitt:


    Code
    1. If memread($mid, 0x633D00, 'byte[2]') = '0x7547' Then
    2. memwrite($mid, 0x633D00, 'EB')
    3. 'als Test habe ich dann hier das memwrite... weggemacht und eine MsgBox eingefügt
    4. EndIf


    Hier noch die Funktionen 'memread' und 'memwrite':


    Mir würde auch erstmal reichen, wenn ich nur das erste schaffen würde zu übersetzen, also die 1. Zeile (If memread($mid...)).
    Anstatt memwrite($mid...)) habe ich zum Test eine MsgBox eingefügt und nun ist es so, dass wenn ich das Spiel starte, die MsgBox sofort angezeigt wird.
    Nun, habe ich das gleiche in VB.NET versucht, jedoch kommt bei mir keine MsgBox:

    Code
    1. Dim meinProzess As Process() = Process.GetProcessesByName("sro_client")
    2. Dim Silkroad_Online As Process = meinProzess(0)
    3. Dim mid As IntPtr = OpenProcess(&H10, False, CUInt(Silkroad_Online.Id))
    4. Dim bytes As Byte() = New Byte(2) {}
    5. If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = &H7547 Then
    6. MsgBox("blubb")
    7. End If


    Woran liegt das? Ist mein Code komplett falsch? Hoffe mir könnte da jemand helfen der sich vielleicht mit beiden Sprachen auskennt..
    Natürlich kann es dann auch C# sein, das ist mir egal, da sich beide sehr ähneln und außerdem gibts ja auch Converter.


    Vielen Dank schonmal!

    Hi,
    wollte mal fragen, ob vielleicht jemand noch die .au3-Datei vom "private_server_loader" von lolkop hat. Die gab es ja damals auf seiner Seite, jedoch gibt es die nicht mehr und auf anderen Seiten finde ich nur die .exe-Datei...bräuchte die um mir mal anzuschauen, wie da geprüft wird, ob man eingeloggt ist oder nicht..vielleicht auch noch die anderen Funktionen :)

    Bei mir ist es seit heute so, dass ich zwar das Logo dann sehe, und das Spiel auch startet (ID&PW-Eingabe funzt auch) jedoch schließt sich Silkroad nach einigen Sekunden..das hat der jetzt schon ca. 10mal in einer Minute gemacht..weiß jemand woran das liegen könnte? Davor ist das auch mal passiert, dass das Spiel während dem Einloggen ausging, aber wenn dann auch nur einmal und das nach einer halben Stunde oder so. Die im ZSZC-Forum haben doch irgendwas geschrieben, dass der Bot dann nicht mehr funktionieren wird, wenn das neue Update kommt, kann das denn jetzt schon sein, dass es da irgendwie geblockt wird? Oder erst wenn man die neue Version runtergeladen hat?

    ja den selben hab ich auch, aber wenn ich damit start kann ich mich i-wie nich einloggen, kommt entwerder unten links nur eine 0 oder es kommt das es diese id nich gibt

    Das Problem hatte ich, du musst beim Loader das Häckchen bei "English patch" rausnehmen. Dann sollte der normale Text angezeigt werden.

    Hallo,
    ich wollte mal fragen, wie man selber eine Notice ingame schreiben kann, wie z.B. bei den Bots/Loadern. Da ist es ja so, dass wenn man sich einloggt und seinen Character auswählt, dann steht da z.B. "Welcome to xy Bot..." oder "Your are using xy Loader...", entweder als Notice oder halt gleich im Chatfenster in lila/grüner Farbe. Wie geht sowas? Wollte das mal auf dem ZSZC Server versuchen...

    Sobald ich den Crackloader starte und den SRO_Client auswähle und auf START GAME klicke
    erhalte ich den Fehler 'Silkroad Client already Excuted'

    Hi, nochmal^^
    Du hast Crackloader.exe geöffnet und dann kam ja gleich beim ersten mal die Nachricht "Can't create process. Search for it?" oder so ähnlich und dann hast du die SRO_Client.exe ausgewählt? Wenn ja, dann ist das der Grund warum der Fehler kommt, ich habe es nähmlich so gemacht: Als erstes die "SRO-DB Bot v1.3a Crack.exe" gestartet und dann auf Patch geklickt. Danach erschien die "Crackloader.exe" im Ordner. Diese habe ich dann gestartet, nach der Meldung, dass er den Prozess nicht finden kann habe ich die .exe Datei vom Bot ausgewählt, nicht SRO_Client.exe. Dann startet der Bot automatisch und beim ersten mal musst du noch so einen Text mit Agree bestätigen. Im Botfenster gibst du dann ID und PW ein und darunter ist dann eine TextBox und nebendran ein Button der "Change folder" heißt, auf den klicken und dann erst die SRO_Client.exe auswählen. Als letztes auf Start Game.
    So hab ich das gemacht und es klappt auch bei mir...

    Die einzige Möglichkeit wäre der Autoselect. Nur, lolkops Downloads (Auch seine Website) sind down, und keine Ahnung wo man den noch herbekommen soll.

    Hallo, ich hab hier noch die beiden Dateien auf der Festplatte liegen, die habe ich noch damals bei ECSRO verwendet, und die gehen bei mir auch heute noch auf ZSZC.
    Musst erst Autoselect.exe starten und patchen, dann Auto Skill.exe und einstellen. Wenn Virenmeldungen oder sonst was kommen, musst du selbst entscheiden ob du sie öffnest oder nicht, ich kann nur sagen, dass ich die damals von lolkop's Seite runtergeladen habe..
    Leider kann man hier nur max. 150kb Dateien hochladen, hier mal Rapidshare-Link: Autoselect.rar