Beiträge von Fisticuff

    Hallo,
    also nach langem Rumprobieren hat es nun geklappt SRO auf den Proxy verbinden zu lassen und auch ein Packet zu senden, jedoch klappt das bei mir nur in VB6.
    Jedoch wollte ich es in VB.NET nachmachen, aber beim Senden des Packets passiert nichts..mit dieser Sub kann ich in VB6 ein Packet senden:
    [cs]
    Public Sub InjectPacket(rOpCode As String, sData As String, blnToServer As Boolean, blnEncrypted As Boolean)
    Dim sLen As String
    Dim sOpCode As String
    Dim sPacket As String
    sLen = longToHex(Len(sData) / 2)
    sOpCode = Right(rOpCode, 2) & Left(rOpCode, 2)
    If blnEncrypted Then
    If blnToServer Then
    sPacket = HexToString(sLen & sOpCode & "0300" & sData)
    Else
    sPacket = HexToString(sLen & sOpCode & "0400" & sData)
    End If
    Else
    If blnToServer Then
    sPacket = HexToString(sLen & sOpCode & "0100" & sData)
    Else
    sPacket = HexToString(sLen & sOpCode & "0200" & sData)
    End If
    End If
    cSocket.SendData sPacket
    End Sub
    [/cs]
    Dann rufe ich die Sub z.B. so auf und mein Char läuft nach vorne:
    [cs]
    InjectPacket "7021", "01865C32060A001706", True, False
    [/cs]
    Was ich nicht verstehe ist, warum ist in der letzten Zeile einfach nur "cSocket.SendData sPacket" und in VB.NET muss ich "socket.Send(buffer As Byte(), size As Integer, socketFlags As SocketFlags) benutzen? Wie kann ich also "7021" und "01865C32060A001706" als Byte senden?

    Ich hab den Mediapatcher benutzt, IP: 127.0.0.1 Port: 15778 und auf Patch geklickt, danach phConnector, phAnalyzer und Silkroad normal gestartet -> beim phAnalyzer wird nichts angezeigt, dann hab ich es nochmal mit dem HardMod Loader probiert, den ich normalerweise für iSRO benutze, bekomme beim Einloggen aber Failed to Connect to Server [C8]...ich blick da nicht mehr durch... -.-
    Welchen Loader soll ich denn für ZSZC benutzen?

    So, also ich hab nun auch den phAnalyzer gefunden und habs nun so versucht: phConnector mit dieser Config gestartet:

    Code
    1. [phConnector]
    2. IP=72.55.143.209
    3. Port=15779
    4. LoginListenPort=15778
    5. WorldListenPort=15777
    6. BotPort=22580
    7. ServerBlock=
    8. ClientBlock=
    9. Dev=0


    phAnalyzer gestartet, oben in der Leiste steht dann auch "Connected" und anschließend ZSZC über Silkroad.exe gestartet, aber mir wird gar nichts im phAnalyzer angezeigt, warum? Was fehlt mir denn noch?

    Also ich hab mir jetzt den phConnector runtergeladen und in der Config Datei folgendes:

    Code
    1. [phConnector]
    2. IP=127.0.0.1
    3. Port=15779
    4. LoginListenPort=15778
    5. WorldListenPort=15700
    6. BotPort=9000
    7. ServerBlock=
    8. ClientBlock=
    9. Dev=0


    SrProxy:

    Code
    1. Send to host:
    2. IP: 127.0.0.1
    3. Port: 15779
    4. Listen:
    5. Port: 15778
    6. Bot: 9000


    Wenn ich den phConnector starte, öffnet sich die Konsole mit folgendem Inhalt:

    Code
    1. Error starting the login server: 10048
    2. World Server is now online [15700]
    3. Error binding on port 9000 for bot connections

    Also ich wollte es erstmal so versuchen, mit Programmen die das Entschlüsseln usw. für mich erledigen. Also bin ich mit SrProxy und dem SRO-DB Bot eingeloggt und kann dann mit WPE Pro Packets senden, z.B. um sich hinzusetzen, Pots kaufen, laufen usw. Kann mir jemand sagen, wie ich nun dieses Packet (siehe Bild) in VB.NET oder C# senden kann?
    Ich hab im Internet schon gelesen, dass man es mit TCPClient-Klasse macht, aber ich weiß nicht genau wie das gehen soll..IP und Port muss ich doch dann von SrProxy verwenden oder? Also 127.0.0.1:15778, aber wie sende ich das dann?

    Hi,
    ich wollte nun auch mal versuchen Packets an das Spiel Silkroad Online (Privateserver) zu senden, jedoch weiß ich nicht genau wie das funktionieren soll. Hab zuvor mit WPE Pro nach Packets gescannt und als Test will ich nun mal dieses Packet senden: 01 00 4F 70 59 75 04 (hinsetzen/aufstehen).
    Kann mir jemand sagen, wie ich da vorgehen muss? Arbeite mit VB.NET, aber ist auch egal wenn Antworten mit C#-Code kommen..
    Achja und noch was: wenn ich SRO ganz normal starte, dann steht über dem Packet meine IP und beim Senden bekomme ich sofort einen Disconnect. Wenn ich jedoch mit SRProxy+SRO-DB Bot drinne bin, dann steht oben drüber 127.0.0.1:15788 und es klappt, dann..heißt das, ich muss das dann auch noch irgendwie mit in mein kleines Tool bringen, also dass er sich irgendwie über den Port 15788 verbindet?


    Hoffe mir kann da jemand helfen!

    So, endlich eingeloggt und: logged = 1 :D
    Klappt perfekt, muss mich also nochmal bei dir bedanken :thumbsup:
    Vielen Dank!^^

    Ich würde OpenProcess allerdings immer mit PROCESS_ALL_ACCESS aufrufen. Sonst willst du nachher was reinschreiben und übersiehst dass du keine Rechte hast und dann geht die Errorsuche nochmal los ;)


    Ja, das mache ich dann, das mit &H10 war nur ein kleines Testprojekt um Login zu prüfen.

    OK, hab mal deinen Code übersetzt:


    Mal schauen ob es klappt...dauert ewig bis man eingeloggt ist -.-
    Hab es noch so gemacht, dass logged und result in einem Label angezeigt werden, bei logged ist schon eine hohe Zahl, result ist jedoch 0. Wenn ich eingeloggt bin und der Code stimmt, darf da keine 0 stehen oder?

    Ich bin's nochmal.
    Also, Silkroad starten usw. klappt nun, aber wie kann ich nun prüfen, ob man eingeloggt ist? Falls ein Code benötigt wird, hier der AutoIT-Code:

    Code
    1. $base = 0xAA0E44
    2. $name = 0xA9FB98
    3. $logged = $name-0x2D14
    4. Do
    5. enter($hwnd)
    6. Sleep(1000)
    7. Until memread($mid, $logged) = 1


    Also da ist ja eine Do Until-Schleife, die jede Sekunde Enter drückt und das so lange, bis $logged = 1. Hab natürlich schon vor dem Posten selber probiert, das ist dabei rausgekommen, klappt aber natürlich nicht -.-:

    Es geht um ZSZC und ich versuche den Loader von lolkop nachzumachen...
    Naja aber wenn es nur für die WriteProcessMemory-API benötigt wird, dann müsste es doch auch ohne gehen, oder? Weil der Aufruf ja dann einfach nur so ist:

    Code
    1. memwrite($mid, 0x633D00, 'EB')


    Und ganz oben in der Funktion ist ja noch dieser Code:

    Code
    1. Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')


    Da ist irgendwas mit BinaryLen und dann 0x & $hex, also wirds ja am Ende "0xEB", aber wenn ich die Zeile in der Funktion entferne und den Aufruf so verändere:

    Code
    1. memwrite($mid, 0x633D00, '0xEB')


    Dann kommt auch Please execute...
    ich versteh einfach nicht was mir noch fehlt...

    Hm..davor kam immer die Nachricht von Silkroad: "Please execute the Silkroad.exe.", wenn ich es nun mit diesem Code versuche:

    Code
    1. 'davor wird die "sro_client.exe" gestartet...
    2. Dim sro As Process = Process.GetProcessesByName("SRO_Client")(0)
    3. Dim mid = OpenProcess(&H1F0FFF, False, sro.Id)
    4. Dim bytes As Byte() = New Byte(0) {}
    5. Dim myArr As Byte() = New Byte(0) {&HEB}
    6. If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = "7547" Then
    7. WriteProcessMemory(mid, &H633D00, myArr, 2, 0)
    8. End If


    Mit diesem Code kommt zwar die "Please execute the Silkroad.exe." MsgBox nicht mehr und die SRO_Client.exe sieht man auch im Prozessmanager, jedoch nur für ~2sec, dann verschwindet es wieder -.-"
    Im AutoIT-Code ist ja noch diese Schleife in der "memwrite"-Funktion:

    Code
    1. Func memwrite($mid, $adress, $hex)
    2. Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
    3. ---> DIESE HIER: For $i = DllStructGetSize($struct) To 1 Step - 1
    4. DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
    5. Next
    6. Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
    7. DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
    8. DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
    9. EndFunc ;==>memwrite


    Wenn ich diese entferne kommt beim Starten auch Please execute...aber wie kann ich diese in VB.NET schreiben..ich versteh nicht was da mit DllStructGetSize..usw gemeint ist.

    Hi,
    ich hab seit gestern das Problem, dass wenn ich mit meinem Char mit dem SRO-DB Bot eingeloggt bin und dann einen weiteren Clienten mit dem lolkop Loader starten will, immer ein DC beim Bot-Char bekomme und dann kommt die Nachricht "Connection to SRProxy lost." und die SRProxy.exe ist dann auch geschloßen..wenn ich es aber andersrum mache, also erst lolkop Loader dann den Bot, dann beendet sich einfach der Client, den ich mit dem lolkop Loader geöffnet habe. Woran kann das liegen? Vor 2 Tagen ging noch alles perfekt, aber nun..auch wenn ich mich mit einem 2. Windows-Konto einlogge und dort den 2. Client starte passiert das gleiche.