[Tutorial] Blade and Soul How to self-troubleshoot client errors on game boot.

Results 1 to 1 of 1
  1. #1
    Ultimate Member Flipend0 is offline
    MemberRank
    Dec 2016 Join Date
    157Posts

    [Tutorial] Blade and Soul How to self-troubleshoot client errors on game boot.

    [Tutorial] Blade and Soul How to self-troubleshoot client errors on game boot.


    Occasionally, at some point in your development life for Blade and Soul, you'll come across an error like this.
    Sadly it seems like the developers for this game decided to just put Error IDs and not give out the actual error of why this occurs.
    So, how do we figure out what's causing the error? That's where reverse engineering comes into play.

    Step 1

    Open up your favorite debugger. For me personally I like using x64dbg with ScyallHide. I recommend getting it as well, it is pretty much the modern version ollydbg.
    You'll want to attach the client, which can be found in the "File" menu.


    NOTE: [/COLOR] If you fail to attach, you can also Open Client.exe, But you'll want to Change Command Line to : /LaunchByLauncher /LoginMode 2

    Also I'd want to point out that I recommend having GameGuard already bypassed in order to effectively troubleshoot the issue.

    Step 2
    Once you've successfully attached the BnS Client, press CTRL+G, an Address box will appear, You'll want to type in MessageBoxTimeOutW. Please do that and go in the function.


    Step 3
    You should be at the MessageBoxTimeOutW function now. There's a RETN operator below it. Add a breakpoint to that operator.


    Step 4
    The Address should now be red, indicating that the debugger has successfully been attached. Go back to the MessageBox and click on OK.



    Step 5
    Look at the Thread Stack, you'll want to enter in the address that's below the SEH Handler that's shown here. Let's go to this address via CTRL+G



    Step 6



    So far, the assembly instructions doesn't really say much. Let's scroll to the top of the function and add a breakpoint.



    You'll want to restart the client after doing this.


    Step 7
    Once you restarted, the breakpoint should instantly trigger. Press F8 and follow the On-Screen Assembly Instruction.



    Tip: Try to remember the address from where you got here from Step 5 while debugging.




    So eventually, I figure out that it's failing to load xml.dat, and now I'm starting to wonder why?
    It turns out that I didn't even have xml.dat in the first place. Opps.
    I guess I should go fix that now, and document the error code 1002 2 = No xml.dat

    What error code have you tried to document? Make sure to share below to help others out.
    Passionate x86 Reverse Engineer for Cute Anime MMO games only.
    The only person in MMOExtra with a brain.
    Current Projects : MabiPro, Awakened Dungeon Fighter,
    Audition Galaxy (WIP), SW (WIP)




Advertisement