Schau mal bei deinem Antiviren Programm nach, ob es den MachineManager möglicherweise gelöscht oder den Zugriff darauf gesperrt hat und füg den MachineManager ggf. bei der Ausnahme-Liste hinzu.
Beiträge von user000user
-
-
Falls du in der ListBox mehrere Spalten hast, dann kannst du mit der Eigenschaft SubItems auf die nächste Spalte zugreifen.
Falls du noch mehr Spalten hast, kannst du die auch mit SubItems.AddRange(string[] items) füllen.Edit: Geht nur mit einem ListView.
-
-
Das höchstwertige Bit einer vorzeichenbehafteten Zahl ist negativ, also würde 100000 einem Wert von -32 entsprechen, statt 32 bei einer vorzeichenlosen Zahl.
-
Kenne mich jetzt auch nicht so gut damit aus, aber wenn die Zahl vorzeichenbehaftet ist(was sie in diesem Fall ist, da sonst keine negative Zahl bei einem Überlauf einer Addition heraus kommen kann), ist das höchstwertige Bit negativ.
Bei einer Länge von 6 Bit wäre das also -32 und entspricht einem Werte Bereich von -32( 100000 ) bis 31( 011111 ). Wenn du jetzt also 2 Zahlen miteinander addierst, die ein Ergebnis >31 haben, wird das erste Byte gesetzt und die Zahl ist negativ.
Bsp:
Gleiches gilt dann auch für die Addition von negativen Zahlen, nur eben umgekehrt.
Korrigiert mich, falls ich falsch liege.^^ -
ich hab lauter 0 en auf necrosro egal was skills etc. nur 0en
Steht eine Seite vorher. -
Danke, aber hat sich schon erledigt.
Mit dem neuen Code klappt alles wunderbar. Danke bloodman -
Danke für den Release. Allerdings habe ich Probleme damit, Dateien auszulesen, die direkt in der Pk2 sind und in keinem Unterordner. Also Dateien wie sv.t, type.txt, etc...
FileExists liefert immer false und getFile funktioniert auch nicht. -
Auch komisch ist, dass ich anscheinend nicht dass richtige Socket aus ECX bekomme. Beim Versuch die Protokoll-Informationen mit WSADuplicateSocket zu bekommen, sagt er mir dann, dass das Socket kein richtiges Socket ist (WSAENOTSOCK) und wenn ich die unveränderten Parameter pushe, kommt auch der C9 Fehler bzw. gibt die connect Funktion -1 zurück, mit dem gleichen Socket Error.
-
Komischerweise bekomme ich die Fehlermeldung aber auch, obwohl er eine Verbindung zum Proxy aufbaut und der LoginServer nicht offline ist.
Über den edxLoader funktioniert es ohne Probleme. -
Das ist die Funktion, die den Memory patcht, um beim connecten meine eigene Funktion aufzurufen.
Code- std::stringstream ss;
- //connect function
- byte connect_pattern[10] = { 0x6A, 0x10, //PUSH 10
- 0x57, //PUSH EDI
- 0x51, //PUSH ECX
- 0xFF, 0x15, 0x30, 0xB6, 0xE4, 0x00 }; //CALL DWORD PTR DS:[<&WS2_32.#4>] -> Patch to custom call
- ConnectAddress = FindPattern(connect_pattern, 10);
- void (*fp)(void) = Redirect;
- DWORD f_addr = PtrToUlong(fp) - ConnectAddress - 5;
- byte addr[4];
- GetBytes(f_addr, addr);
- byte custom_call[10] = {
- 0xE8, addr[0], addr[1], addr[2], addr[3], //CALL CodeCave
- 0x90, //NOP
- 0x90, //NOP
- 0x90, //NOP
- 0x90, //NOP
- 0x90, //NOP
- };
- WriteProcessMemory(GetCurrentProcess(), UlongToPtr(ConnectAddress), custom_call, 10, NULL);
Wenn ich das custom_call Array so habe, wird die Funktion auch gecalled und eine Verbindung zum Proxy aufgebaut, allerdings kommt trotzdem der Error mit der (9).Wenn ich die NOPs vor den Call mache, crasht der Client bevor er in "Redirect" ankommt.Code- void Redirect()
- {
- __asm MOV sock, ECX
- __asm MOV pSockAddr, EDI
- int af = AF_INET;
- int type = SOCK_STREAM;
- int protocol = IPPROTO_TCP;
- sockaddr_in *addr_in = (sockaddr_in*)pSockAddr;
- addr_in->sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
- addr_in->sin_port = htons(16000);
- addr_in->sin_family = AF_INET;
- pSockAddr = (PSOCKADDR)addr_in;
- SOCKET s = socket(af, type, protocol); //komischerweise kann ich hier nicht das Socket aus ECX benutzen
- DWORD d = PtrToUlong(GetProcAddress(GetModuleHandle("WS2_32.dll"), "connect"));
- int result;
- __asm MOV ECX, s
- __asm MOV EDI, pSockAddr
- __asm PUSH 16
- __asm PUSH EDI
- __asm PUSH ECX
- __asm CALL DWORD PTR DS:[d]
- __asm MOV result, EAX
- if(result == -1)
- {
- std::stringstream ss;
- ss<<"Error on redirecting: "<<WSAGetLastError()<<"\n";
- printf(ss.str().c_str());
- }
- //connect function
- byte connect_pattern[10] = { 0x6A, 0x10, //PUSH 10
- 0x57, //PUSH EDI
- 0x51, //PUSH ECX
- 0xFF, 0x15, 0x30, 0xB6, 0xE4, 0x00 }; //CALL DWORD PTR DS:[<&WS2_32.#4>]
- //patch it back to original connect
- WriteProcessMemory(GetCurrentProcess(), UlongToPtr(ConnectAddress), connect_pattern, 10, NULL);
- }
MS Detours habe ich mir auch schon angeguckt, bzw. die Source vom EDX Loader, allerdings würde ich es gerne erst mal ohne versuchen.
Edit: Habe vergessen das Offset der Funktions-Addresse zu ändern, deswegen crashte der Client. Der andere Fehler besteht allerdings weiterhin.
Edit2: Hier nochmal ein Bild von der Fehlermeldung: -
Hi!
Ich bin grade dabei einen Loader für Silkroad zu machen, der auch die IP redirecten kann. Dazu patche ich den Memory vom sro_client, so dass statt der connect Funktion meine eigene Funktion gecalled wird.
Die connect Funktion sieht ja so aus:
Als erstes habe ich dann versucht, den Call meiner eigenen Funktion direkt bei 0045DEE4 zu machen. Meine Funktion wird dann auch aufgerufen und der Client connected auch zum Proxy, allerdings kommt trotzdem der Fehler mit der 9 in den Klammern.
Ich denke mir, dass es daran liegt, dass der Client nach dem Call bei 0045DEE9 weiter macht und damit nicht ganz zurecht kommt, da ich den Memory vorher in meiner Funktion wieder zurück patche.Deswegen habe ich versucht, die ersten 5 Bytes zu NOPen und den Call dann ans Ende zu setzen. Bei dem Versuch wird meine Funktion allerdings gar nicht erst aufgerufen, sondern der Client crasht vorher. Hätte irgend jemand vielleicht eine Idee woran das liegen könnte?MfG,
user000user -
Wie soll ich mich einloggen? Kann nicht auf Start klicken, weil die Auflösung zu hoch ist.^^
Edit: Hab es über den mBot gemacht.
-
Das ist glaube ich unterschiedlich. Musst du gucken wie viel Energie dir einer gibt und dann kannst du es dir ausrechnen.
-
Ich brauche 300k Energie für ne Forschung , wie bekomm ich so viel Energie ?
Mit Solarsatelliten, die allerdings auch zerstört werden können. -
Such am besten nach der SilkroadSecurityAPI und dem simple_proxy von Drew Benton für C#. Dann brauchst du noch ein Tool, mit dem du die Packets von Silkroad sniffen kannst. Ich habe dafür meistens den phConnector oder den EDX-Loader mit der Packet Auto-Parser Funktion genommen.
Dann musst du gucken, welche du von den Packets brauchst und wie deine Informationen darin gespeichert sind. Über den simple_proxy kannst du dann eine Verbindung zu Silkroad aufbauen und musst die Packets, die normalerweise vom Clienten an den Server geschickt werden, über dein Programm erstellen und über das Proxy an Silkroad senden.
Irgendwann müsste dann das Packet über die Server Informationen kommen, dass du dann nur noch auswerten musst. -
Du musst noch einstellen, welche Items er aufheben soll. Dazu kannst du auf der linken Seite den Filter einstellen und dann auf "Filtern" klicken. Dann sollten dir die Items in der Box darunter aufgelistet werden. Da kannst du dann die Items auswählen und mit Rechtsklick einstellen, was damit gemacht werden soll.
-
Ist es nicht einfacher, die ID aus den Textdateien zu einem int zu konvertieren und dann mit der ausgelesenen ID des Packets zu vergleichen?
Dein Item-Parsing sieht noch nicht ganz vollständig aus Bei dir wird nur die Position ausgelesen und dann ein dword, dass meistens 0 ist(habe bis jetzt nur bei Dimension Holes einen anderen Wert gesehen).
Der Aufbau fast aller Stackable-Items sieht etwa so aus:
Das würde auch erklären, wieso die erste id auf dem Screen 0 ist und die id vom zweiten Item mit 0C(=12 => Anzahl der Scrolls vom ersten Slot) anfängt. -
Versuch mal beim Packet-Parser 0000 zu Show Only Opcodes hinzuzufügen. Bei mir wurd dann auch das 3013 Packet geordnet aufgelistet(allerdings mit Opcode 0000 ?!).
-
Wenn du nur ein Leerzeichen vor und nach den Operatoren machst, dann sollte es eigentlich auch mit mehrstelligen Zahlen funktionieren.