Samstag, 2. März 2013

Updates investigation documents and server code published

I'm happy to announce that I just published the updated work of tAmMo containing updated documentation and servercode that should hopefully work with the updated network protocol from Riders of Rohan.

For now we are keeping the encryption/decryption checksum functionality proprierary. The primary reason for this that we don't want the official servers to get compromised. It is unlikely that one would be able to cheat using this code because we think that the official servers most likely have client packet validation beyond checksumming (e.g. the client sends a movement to the server and the server will validate that it is actually possible and reject it if not, as seen when you "bounce back" in the game). But since we cannot be certain about that we don't want to harm the official servers.

I'm in the process of creating proper documentation for how to run a client against your own server which will hopefully released soon.

For now you can find the code at: gitorious.org/lotro/lotro-server

6 Kommentare:

  1. woo the project's not dead!

    AntwortenLöschen
    Antworten
    1. actually wait no, i sounded like too much of a douche there.


      thank you for not abandoning the people who wish to see a lotro emulator

      Löschen
  2. The biggest problem is, that i haven't got much time for this project. My vision is: Once the server architecture is ready (for unstable home use), people can look for missing (packet)objects, try to analyse them and tell everybody in this blog, what they think the packet does.

    SO what's a beautyful working home server in my mind?

    - Everything is an object, this also includes very small (protocol)"actions"
    - Handle missing packets
    - Handle multiplayer things correctly
    - No database, just plain xml for chara data, account creds and so on...
    - Performance optimization, account handling, ... is something for the final stage
    - ...

    So if the base server isn't well designed, we have to do a lot more work. In german we say that such kind of "rumgefrickel" doesn't make sense. Hacking-in code is only for a proof of concept, now everyone knows that a p-server could be working, so we have to go to the next step.

    And, don't forget: I think when we got a fully working p-lordi, than it's not much more work to implement a p-ddo.


    Bygypyth,

    1. write more often blog entries, so that people don't thing that this project is dead.

    2. Make blog entries for every packet, start with the first client packet, than second server packet and so on. Let people discuss them. Maybe someone investigates something, we haven't seen before.

    Seperate it in character selection server and later the world server. At last the voice chat server. The source you got per mail was only for a possible chara server. The world server will be released some far day as an extra "exe". We can't merge many servers into one, without loosin overview. Amen ;-)



    P.S. A lordi fake account would be good, because packets contain sensetive data.

    AntwortenLöschen
  3. Apart from that, the algo for checksum generation is inside the helper.dll (for those who are interested and want to use it). It took me ages to rip it out ;-) At my last invests it seemed to be, that only the checksum of 06 packets is xor'ed with the value from the generated table (with 256 entries). Checksum for 40 02 packets is generated in the normal way, "...sum up all 32 bit values, til no data left, add this value to the pseudo header checksum..." my unpatched client didn't "complain" about 40 02 self generated packets with checksum added in normal way.

    AntwortenLöschen
  4. What kinds of packet captures are still needed at this point if any?

    AntwortenLöschen
  5. Hopefully you'll be able to gather all the information you need to release something functional before Helm's Deep. The class changes coming are MAJOR and it'd be nice to preserve the game's current playable state.

    AntwortenLöschen