[SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 33
  1. #16
    Registered tofuman is offline
    MemberRank
    Sep 2016 Join Date
    16Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development


    RaGEZONE Recommends

    RaGEZONE Recommends

    I'm hopefully a few days away from releasing a simple build of the server code which will allow people to try out the 67 cars on an empty highway. Just need to find the time over the next couple of days.

    It is a shame there aren't any packet logs of this game because I'd have a pretty much working server by now. Although I do enjoy the challenge which comes with reversing the client.

  2. #17
    Connoisseur of Fine Code SanGawku is offline
    ModeratorRank
    Oct 2006 Join Date
    CyberSpanksLocation
    589Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    This is incredible work. Nice Job!

    Disclaimer
    : Everything I post or share information about.
    Is considered,
    "AS IS" and for Educational Purposes under the Fair Use Act.



  3. #18
    Hardcore Member SSFM is offline
    MemberRank
    Apr 2008 Join Date
    137Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    This is really impressive! It's quite the rarity to see server developments here that actually turn into anything.

    I also can't believe that I didn't know there was on online PC version of my favorite racing game ever! Very much looking forward to trying this. :) Keep up the good work!

    Now if only someone would pick up Dokapon World Online, another underrated Japanese gem that got a short-lived online variant. ;)
    --Insert signature--

  4. #19
    Ultimate Member savetherobots is offline
    MemberRank
    Apr 2010 Join Date
    197Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Quote Originally Posted by tofuman View Post
    I'm hopefully a few days away from releasing a simple build of the server code which will allow people to try out the 67 cars on an empty highway. Just need to find the time over the next couple of days.

    It is a shame there aren't any packet logs of this game because I'd have a pretty much working server by now. Although I do enjoy the challenge which comes with reversing the client.
    Remarkable progress for not having packet logs. Great job! What language are you writing the server in?
    <Brandon> everyone has sp3 xp anyway

    Rice

  5. #20
    Registered tofuman is offline
    MemberRank
    Sep 2016 Join Date
    16Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    I'm coding in C.

  6. #21
    Member AcarX is offline
    MemberRank
    Aug 2015 Join Date
    74Posts

    Re: [SBOL]Server development

    Quote Originally Posted by tofuman View Post
    I'll reverse the client further to find out what packets it expects back and their structures.
    Quite curious about how you're doing this. I've been writing an emulator for another game yet I've always used packet logs to reverse packet structures. A brief explanation would be much appreciated. Great work either way.

  7. #22
    only asm, only hardcore! lastfun is offline
    DeveloperRank
    Apr 2012 Join Date
    RussiaLocation
    424Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    @tofuman
    I found only this client for PC, but he v.1.01.00
    You can upload v.2.00.03?
    ---upd---
    as i can see, *.dat files (S,P...) -> blowfish encrypted
    Last edited by lastfun; 01-11-16 at 09:55 PM.

  8. #23
    Newbie nikko777 is offline
    MemberRank
    Oct 2016 Join Date
    4Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    I have client Shutokou Battle Online 2.00.03
    Download link from my Dropbox: SBOL20003

  9. #24
    Registered tofuman is offline
    MemberRank
    Sep 2016 Join Date
    16Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    For reversing the network protocol first look for the WinSock recv function in Ida. Then using a debugger trace the function and send the client a packet. See where it goes. Usually a client will have a function pointer table. Sbol was slightly different the way it looked up to get the function for the pointer type but essentially worked like this. Once you have this function table you know what packets are processed by the client. So send a packet using a valid packet type it'll then jump to a function to process the packet. There you'll see the subtypes of each packet so again work your way through these and you'll see the client moving byte/short/int/string/arrays to either the stack to use against another function or move to global values. If mov'd to global values use a debugger to find out what reads them or alter them to see what changes. I also make educated guesses on what the structure does. For instance select a car and when a packet is needed that has arrays of bytes it'll usually be the stats of the car and configuration and other client data such as team membership. The process is time consuming but gets easier when you work your way through the packets.

    Also I've found mentions of a client version 2.08.00 which has had quite a few improvements. Unfortunately I can't find a download for this.

  10. #25
    Member AcarX is offline
    MemberRank
    Aug 2015 Join Date
    74Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Quote Originally Posted by tofuman View Post
    For reversing the network protocol first look for the WinSock recv function in Ida. Then using a debugger trace the function and send the client a packet. See where it goes. Usually a client will have a function pointer table. Sbol was slightly different the way it looked up to get the function for the pointer type but essentially worked like this. Once you have this function table you know what packets are processed by the client. So send a packet using a valid packet type it'll then jump to a function to process the packet. There you'll see the subtypes of each packet so again work your way through these and you'll see the client moving byte/short/int/string/arrays to either the stack to use against another function or move to global values. If mov'd to global values use a debugger to find out what reads them or alter them to see what changes. I also make educated guesses on what the structure does. For instance select a car and when a packet is needed that has arrays of bytes it'll usually be the stats of the car and configuration and other client data such as team membership. The process is time consuming but gets easier when you work your way through the packets.
    I managed to get through the part where you figure out which packet is handled in which function but couldn't make any sense of what client was doing with the packet data. Much appreciated for the detailed answer.

  11. #26
    Ultimate Member savetherobots is offline
    MemberRank
    Apr 2010 Join Date
    197Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Quote Originally Posted by AcarX View Post
    but couldn't make any sense of what client was doing with the packet data
    I don't know anything about this game but I'm working on an emulator for a very similar one.
    For this you probably want to compare function calls and field accesses in packet handlers with similar functionality. You'll see packets that have to do with car/player information accessing the same data like getting car or player by ID or something, which helps you narrow down what the calls are for. Combine this with the knowledge of packet contents and you can just follow where the data from the packet is being copied.
    It's especially helpful to use IDA for this, because the more structures you define and unknown functions/locals you name, the easier it becomes.
    <Brandon> everyone has sp3 xp anyway

    Rice

  12. #27
    Newbie nikko777 is offline
    MemberRank
    Oct 2016 Join Date
    4Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Quote Originally Posted by tofuman
    Also I've found mentions of a client version 2.08.00 which has had quite a few improvements. Unfortunately I can not find a download for this.

    Unfortunately the latest version I played was 2.00.03
    Can you give a description of where mentioned about 2.08.00?


    If we can not find the version 2.08.00, then we need to ask the guys from Genki.

  13. #28
    Registered tofuman is offline
    MemberRank
    Sep 2016 Join Date
    16Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Quote Originally Posted by nikko777 View Post
    Unfortunately the latest version I played was 2.00.03
    Can you give a description of where mentioned about 2.08.00?


    If we can not find the version 2.08.00, then we need to ask the guys from Genki.
    I found a screenshot of it on a cached version of their site. archive.org doesn't have the latest unfortunately but someone took a snapshot here: 首都高バトルOnline and the image in question is on this page: 首都高バトルOnline

    The in game HUD does look different too from the version I have. I had made contact with Genki years ago when I first wanted to attempt this. They actually replied but said the service is terminated and not much more. I've attempted to contact them again this time round and got no reply.

    AcarX, I use a mixture of utils while working on the game. IDA is very good at giving me graphical version of the code flow. As I said with global values you'll see mov's to around 0x6cXXXX - 0x6dXXXX. Using Cheat engine for example check for what accesses the value and you'll gradually work out what the packet does. But most will initially move the packet data to stack for either a structure loop or conditional sub packet commands. Like the initial car list in packet 0xe80. A short specifies the amount and ints need to follow as many as specified in the short. the int is the TXR car value. It actually matches TXR0. Other packets may use strlen and strcpy which are displayed in IDA which is an indicator that it's a string and could be team name, player name and so on. Most things come with experience not only in reversing clients in general but in the experience you gain in the particular game. After some time you get familiar with the client and it becomes much easier to follow and make educated guesses with structures.

    Its no where near complete but the wiki I started is HERE. It'll have the packet structures documented eventually.

  14. #29
    Registered tofuman is offline
    MemberRank
    Sep 2016 Join Date
    16Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    Here is the progress so far for everyone to test out: DOWNLOAD

    I've included the client I've partially translated to English. It is nowhere near done but will get you through the menus.

    Also remember you can run the client with -w switch to run in windowed and -skipwarning
    to load straight to login screen. Enter any username and password and then handle. This is not saved yet. You can choose from all available cars in the game.

    I've found the client slightly buggy. It can crash after selecting a car. It'll generally be okay when retried.

  15. #30
    Newbie nikko777 is offline
    MemberRank
    Oct 2016 Join Date
    4Posts

    Re: [SBOL] 首都高バトルOnline (Shutoko Battle Online) Server development

    I found some information on the 02.08.00 unfortunately I was told that she did not have the installer and loaded via SBUpdate.exe ...

    This may have some difficulty since some components downloaded from the server game.

    At this point, I could not find game files 02.08.00 and information may not be 100% accurate, we still have a chance to look

    I download and run this client 0.1, I am very pleased to see these cars again))
    Forward to the opportunity to go on C1 route!




Page 2 of 3 FirstFirst 123 LastLast

Advertisement