Beiträge von dongdong

    Du brauchst
    - jede Menge Zeit
    - Viel Erfahrung in der Programmiersprache die du benutzen willst.
    - Erfahrung in der Netzwerkprogrammierung
    - Du solltest wissen wie man mit Hexadezimal Zahlen umgeht
    - Ahnung von Silkroad
    - Kenntnisse über Silkroads Security System
    - jede Menge Geduld
    - noch mehr Geduld um gute Tutorials zu lesen und VOLLSTÄNDIG zu verstehen
    - noch mehr Zeit


    Und ich hab mit Sicherheit noch einiges vergessen...
    Für den Anfang könnte dir dieses Tutorial von chea77er hilfreich sein.

    Wenn ich das richtig verstehe habt ihr das Game noch nicht, also nur ne Idee in eurem Kopf. So keiner von euch kann coden, es ist noch nichts vorhanden und ihr wollt euch Coder & Grafiker einstellen, die die ganze Arbeit für euch machen? Nur mal vorne weg, dass wird nicht billig. Schaut euch mal auf Seiten im Internet um die (nur) einfache Website Erstellung (ohne i-welche Games) anbieten, da biste locker 500-1500 € los. Ich weiß ja nicht ob ihr euch dessen bewußt seid...
    Vielleicht findet ihr ja auich jemanden der es billiger macht aber naja.
    Es wäre vielleicht noch von Vorteil, wenn ihr euer Budget (nicht so wichtig, müsst ihr dann sowieso mit demjenigen klären) und den Aufwand bzw. die späteren Funktionen was ihr euch da so vorstellt angibt, damit der Interessent weiß, auf was er da zusteuert...

    Ja muss dann normalerweiße ne 1 sein.
    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 ;)

    Also den VB Code versteh ich mal gar nicht ?!


    Du verwendest ReadProcessMemory an der falschen Stelle.
    Warum liest du jeweils 24 bytes aus? ein Int32 besteht aus 4 bytes...
    Du musst in Der Do... Until Schleife natürlich immer wieder logged aktualisieren.
    In dem AutoIt Code werden nur die Addressen miteinander subtrahiert, nicht das was an der Stelle im Speicher steht.


    [cs]
    uint base = 0xAA0E44;
    uint name = 0xA9FB98;
    uint logged = name - 0x2D14;


    uint result = 0;


    while (result == 0)
    {
    int bytesRead = 0;
    byte[] buffer = new byte[4];
    ReadProcessMemory(myProcess, logged, buffer, 4 out bytesRead);
    result = BitConverter.ToUInt32(buffer, 0);
    }
    [/cs]
    so könnte das in etwa aussehen in c# (also der Auto-IT Code übersetzt.

    kein Problem ;)
    Schau am besten immer auf pInvoke.net nach, dort findest du so ziemlich alle API's mit den verschiedenen enums usw., meistens sind auch noch die verschiedenen Überladungen der Funktion dabei.

    Ne funktioniert auch nicht so, drück mal in Visual Studio, ich geh mal davon aus du benutzt VS, F1 dann kommst du auf eine sehr detaillierte Hilfe. Dort steht dann auch wie man etwaige Funktionen zu benutzen hat.


    [quelle]http://msdn.microsoft.com/de-d…8b1470s%28v=vs.80%29.aspx[/quelle]

    Sei doch nicht so auf den Auto-It Code fokussiert.


    Um den Sro_Client zu starten musst du nur die richtigen Parameter übergeben und brauchst eig. nur einen Mutex zu erstellen. Stimmt denn auch deine Addresse? Lade den Client mal in Olly und schau dir an was gepatched wird. Die ReadMemory Zeile macht für mich keinen Sinn... Ist der Client gepackt oder warum prüfst du die bytes ab? Und warum machst du ne einfache if-Abfrage wenn dass Sinn ergeben soll müsste es schon eine while Schleife sein, die beendet wird sobald die Bedingung erfüllt ist. Dann prüft man das auch nicht mit einem String ab, sondern als Hex, eventuell musst du dann die Bytes umdrehen, ich weiß nicht genau wie das ausgegeben wird also anstatt 0x7547, dann 0x4775 oder du liest jedes Byte einzeln aus.

    Du musst den string einfach richtig aufspalten.


    zu 1.)
    spalte doch den string einfach nochmal auf nochmal mit IndexOf("/") rausfinden an welcher stelle das Zeichen liegt und ab da alles hintendran löschen (string.remove).


    2.)
    Dann kannst du auch mit Convert.ToInt32 konvertieren.

    s sollte nur ein Beispiel sein wie du IndexOf anwendest. Du bekommst doch diesen String (mit weitaus mehr drin) vom HTTPWebRequest zurückgegeben. Dann musst du halt den String durchsuchen.

    0x10 ist VM_Read


    Code
    1. All = 0x001F0FFF,
    2. Terminate = 0x00000001,
    3. CreateThread = 0x00000002,
    4. VMOperation = 0x00000008,
    5. VMRead = 0x00000010,
    6. VMWrite = 0x00000020,
    7. DupHandle = 0x00000040,
    8. SetInformation = 0x00000200,
    9. QueryInformation = 0x00000400,
    10. Synchronize = 0x00100000