Benutzt du den SRO-DB Bot? Bzw. mit was startest du denn Silkroad?
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? -
Hat jemand schon den SRO-DB Bot v1.3a beim neuen Client (v1.689) getestet? Kann leider erst morgen probieren, würde es aber gerne schon vorher wissen^^
-
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:
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:
SrProxy:Wenn ich den phConnector starte, öffnet sich die Konsole mit folgendem Inhalt:
-
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!
-
Die 1.3a vom db bot funtzt noch
Ah zum Glück...dachte schon das Update macht alles kaputt^^ -
So, endlich eingeloggt und: logged = 1
Klappt perfekt, muss mich also nochmal bei dir bedanken
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:
Code- Dim SRO_Processes As Process() = Process.GetProcessesByName("sro_client")
- Dim Silkroad_Online As Process = SRO_Processes(0)
- Dim readHandle As IntPtr = OpenProcess(&H10, False, CUInt(Silkroad_Online.Id))
- Dim base As UInteger = &HAA0E44
- Dim name As UInteger = &HA9FB98
- Dim logged As UInteger = name - &H2D14
- Dim result as UInteger = 0
- While result = 0
- Dim bytesRead As Integer = 0
- Dim buffer As Byte() = New Byte(4) {}
- ReadProcessMemory(readHandle, logged, buffer, 4, bytesRead)
- result = BitConverter.ToUInt32(buffer, 0)
- End While
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:
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 -.-:Code -
So, klappt jetzt, hab dieses Tutorial gefunden: [VB]/[Assembler] Tutorial Silkroad Online Patches: Wie finde und editiere ich sie??
Du hast Recht, die Abfrage brauch ich gar nicht und der Rest war bei mir eigentlich schon richtig, nur hatte ich eine falsche WriteProcessMemory-API ins Projekt eingefügt...also vielen Dank für deine Hilfe! -
OK, werde ich gleich mal ausprobieren..jedoch hat es davor immer in einem Ordner geklappt.
-
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:
Und ganz oben in der Funktion ist ja noch dieser Code:
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:
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- 'davor wird die "sro_client.exe" gestartet...
- Dim sro As Process = Process.GetProcessesByName("SRO_Client")(0)
- Dim mid = OpenProcess(&H1F0FFF, False, sro.Id)
- Dim bytes As Byte() = New Byte(0) {}
- Dim myArr As Byte() = New Byte(0) {&HEB}
- If ReadProcessMemory(mid, &H633D00, bytes, 2, 0) = "7547" Then
- WriteProcessMemory(mid, &H633D00, myArr, 2, 0)
- 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- Func memwrite($mid, $adress, $hex)
- Local $struct = DllStructCreate('byte[' & BinaryLen('0x' & $hex) & ']')
- ---> DIESE HIER: For $i = DllStructGetSize($struct) To 1 Step - 1
- DllStructSetData($struct, 1, BinaryMid('0x' & $hex, $i, 1), $i)
- Next
- Local $x = DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', 0x40, 'dword*', 0)
- DllCall($kernel32, 'int', 'WriteProcessMemory', 'int', $mid, 'int', $adress, 'ptr', DllStructGetPtr($struct), 'int', DllStructGetSize($struct), 'int', 0)
- DllCall($kernel32, 'int', 'VirtualProtectEx', 'int', $mid, 'ptr', $adress, 'int', DllStructGetSize($struct), 'dword', $x[5], 'dword*', 0)
- 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. -
OK, hab nun &H1F0FFF und merke gerade, dass das auch im AutoIT-Code verwendet wird..ok, aber wie füge ich nun die "EB" ein? Also als welchen Parameter in WriteProcessMemory muss ich es denn übergeben?
-
-
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. -
bräuchte einen link wo man sich regestirern kann
danke im vorraus
Der steht doch im ersten Post...http://reg.zszc.info:6334//register.php