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

skill_values_checksum

← Back to Miscellaneous
When you edit the skills values, you will have a DC4 triggering after a few seconds ingame.
This is because there's a checksum to prevent skill edition.

To prevent that DC4, you have 2 solutions: updating the compared value (that's for the release client) or disabling the DC4 (that would be for development purpose only)

The magic happens here :

OllyDbg - Client side

004B6D59  |.  3D A8262400   CMP EAX,2426A8                           ; UNICODE "VERSION.dll"
004B6D5E  |.  74 0A         JE SHORT 004B6D6A
004B6D60  |.  6A 05         PUSH 5                                   ; /Arg1 = 5
004B6D62  |.  E8 C9C70900   CALL 00553530                            ; \xxxxxx.00553530
004B6D67  |.  83C4 04       ADD ESP,4
004B6D6A  |>  B9 02000000   MOV ECX,2


1. Disabling :

You just need to transform the conditionnal jump (JE) into an unconditionnal one (JMP).

OllyDbg - Client side

004B6D59  |.  3D A8262400   CMP EAX,2426A8                           ; UNICODE "VERSION.dll"
004B6D5E      EB 0A         JMP SHORT 004B6D6A
004B6D60  |.  6A 05         PUSH 5                                   ; Arg1 = 5
004B6D62  |.  E8 C9C70900   CALL 00553530
004B6D67  |.  83C4 04       ADD ESP,4
004B6D6A  |>  B9 02000000   MOV ECX,2


2. Updating the value :

To do that, you need to put a breakpoint on the CMP instruction :

OllyDbg - Client side

004B6D59      3D A8262400   CMP EAX,2426A8                           ; UNICODE "VERSION.dll"


Run the game with the new skill values once. It'll trigger the breakpoint.
You just need to get which value is inside EAX, and update the CMP instruction with the correct value.

This also exists in the server, but no clue if it's used or not.

OllyDbg - Client side

004BA409  |.  3D A8262400   CMP EAX,2426A8