What does this assembly code do?

1

I'm playing with the Cheat Engine in a MMO RPG game.

Following the game's values in RAM through the functions of the Cheat Engine, I found the memory addresses where the player's experience values are stored. Changing them does not work, and values only change at those addresses a few seconds after the player's experience value is added to the game.

However, Cheat Engine lets you know what is running on that memory address, or rather, what assembly code writes what at that address.

In this case, the code is this:

01089EA7 - 8B 40 18  - mov eax,[eax+18]
01089EAA - 8D 4D FC  - lea ecx,[ebp-04]
01089EAD - 89 43 44  - mov [ebx+44],eax <<
01089EB0 - E8 62F2FFFF - call dro_client.exe+49117
01089EB5 - 8B 40 1C  - mov eax,[eax+1C]

EAX=000000C8
EBX=3230DAD0
ECX=0271EFB8
EDX=32BA0944
ESI=0271F098
EDI=00000001
ESP=0271EFA0
EBP=0271EFBC
EIP=01089EB0

If anyone can interpret I would be happy. But know it's just a joke, I do not mean anything serious about it.

    
asked by anonymous 16.10.2015 / 23:06

1 answer

5

This is x86 assembly written in the Intel syntax. There are many references on the internet to learn the basics, it will not be hard to find.

In a very practical way:

  • mov X,[Y] : Write in X what is in the address memory Y.
  • mov [X],Y : Write in the X address memory what is in Y.
  • lea X,[Y] : Makes X = Y.
  • call AAA : Calls the function at address AAA.
06.12.2015 / 14:05