M
M
mr-ZA2019-09-10 22:50:12
assembler
mr-ZA, 2019-09-10 22:50:12

Looking for a static address to write a value to memory?

Hello everyone, there was a need to perform a low-level operation, but I got stuck at the moment of searching for a static address to write a value to it. The resources of the game are located at this address, I want to change them manually. The program is written in C ++ language, I more or less know no problems with it. I caught the necessary dynamic address using CheatEngine and tried to change the value there - it changes in the game (naturally, when the game is restarted, garbage is located at this address).
5d77fd06ef2bf958333669.png
Further in the game, I set a breakpoint to read from this address and get a line like this:
5d77fd48083ea186576377.png
I found an instruction: 5d77fdec1ef57033337690.png
Please explain what of all this in the screenshots is the base, the offset, as I understand it (01CC), but the offset is relative to what? Regarding the address 2002A2EF in the screenshot? Pointer to 2002A2EF + 01cc does it turn out to be 06201D38?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
J
jcmvbkbc, 2019-09-10
@jcmvbkbc

mov [esi + 000001cc], ecx
Please explain that of all this in the screenshots, the base, the offset, as I understand it (01CC), but the offset is relative to what?

relative to the esi register, which is currently 06201d38. The type of addressing used by the mov instruction is indirect, with base and offset. The base is in the register, the offset is in the instruction.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question