← Back to DevelopmentAging & Mixing viewer.dll generatorProgramsClan filesInternet Information ServiceOllyDbg tutorialsMiscellaneousSkinsLinks / Files

Introduction

← Back to OllyDbg tutorials1. Prerequisite2. Setting up my development environment3. Understanding the client checksum3.1. How to know my client checksum ?4. Windows Data Execution Prevention (DEP)5. Conclusion

1. Prerequisite

Before starting this guide, you must have done, following the available guides, the following things :

  • Installing the .NET framework 2.0 or newer
  • Installing a Microsoft SQL server (MSSQL or MSSQL Express)
  • Setting up a functional PristonTale server (those guides aren't about setting up a PristonTale server) with :

I will be using those all the time, so if you plan on using other executables, it's your own problem.

2. Setting up my development environment

All the guides will be based on that default environment. It includes :

  • The debugger OllyDbg (version 2.0, it's still in beta, but it's stable - available in the Links section).

That's all, we don't need any more tools !
This is what you should see, more or less :

Client side (OllyDbg & Client 1873)

3. Understanding the client checksum

Client checksum is a really important thing. With it, you can allow only your client to connect on your server, it's even more powerful that the client version. If someone edits your client, the checksum will be changed, and thus blocked by your server.

Client checksum

In order to enable that protection, you must do 2 things :

  • Enable the protection option in your server's hotuk.ini file :

    *CL_PROTECT
    *DISCONNECT_CLIENT_BADCODE 1

  • Register your client checksum inside your server's hotuk.ini file (here i'll use the checksum from the image above)

    *CONNECT_CLIENT_CODE 147843254568

3.1. How to know my client checksum ?

The client checksum appears in your server logs when you connect on it with a wrong client.

  • Register a dummy client checksum inside your server :

    *CONNECT_CLIENT_CODE 123456789

  • Connect to your server with your client without using a GM client's hotuk.ini file !
  • Read the logs (on your server, inside the folder LogFile, a file named mm-dd.log (where mm is the current month, and dd the current day)

    15:53:23 - ID:( gregoo ) / Name:( Gregoo ) / IP ( 10.0.0.102 ) Process Checksum Error ( 182756241 )( c:\pristontale\1873_quantumfusion.exe )

  • Register the correct client checksum

    *CONNECT_CLIENT_CODE 182756241

Important : You must remember that everytime you edit your client, the checksum will change, make sure to register it correctly inside your server before releasing your client.

Important : When you are editing your client, disable that protection, or connect to your server with a GM client's hotuk.ini file to avoid registering your client checksum all the time.

4. Windows Data Execution Prevention (DEP)

Sometimes, depending on your computer configuration, your client might crash for no reason. It may also happen when you are editing your client with OllyDbg, raising an exception that might force you to do your last modifications again. Alot of those crashes (but not all of them) are caused by that in-built Windows mechanism, the DEP.
To prevent, or at least reduce the amount of crashes/exceptions, you can add your client .exe file inside the DEP exclusion list. Proceed like that :

  • Open your computer properties with a right click :

  • Switch to the Advanced tab :

  • Open the performances settings, switch to DEP tab, check Turn on ... except those I select and add your client .exe file to the list :

5. Conclusion

At this point, if I haven't forgotten anything, we're ready to do some changes to our client, and our server too.