I haven't had any luck researching this, so I thought I would inquire here!

Let's assume I have found a memory address housing a value of interest. Using a program like Cheat Engine, I look for instructions that access the address.

Let's assume there are five total instructions that access the address: four of them read from the address, and one of them writes to the address.

Of the instructions that read, I see differing counts: one instruction reads a total of 4 times per second, another reads 60 per second, another reads 180 per second, and the last reads 300 per second. Naturally, these are arbitrary numbers simply meant to represent the difference in number of counts per instruction, per second.

Based on that information, is there a way I could manually increase/decrease the number of times any of those instructions access the address?

I've absolutely no idea where such timing exists. I'm assuming it doesn't happen at an instruction level, but rather elsewhere from some ultimate caller or something. Is there something like a table of timings for how often specific functions run?

Thanks for any advice on this topic!

  • 2 questions. Does OS allow to read/write other process memory? Wouldn't it takes huge time to iterate the whole memory?
    – Biswapriyo
    Nov 26, 2018 at 19:05
  • Yes, this is on Windows; assume full access. Not looking to iterate through memory. I know the instructions that access the address I'm interested in, thus I can back-trace any particular flow of execution leading to my instruction of interest. It's how many times that flow of execution happens that I'm interested in modifying.
    – dsasmblr
    Nov 26, 2018 at 19:08
  • I understand that you're trying to find the code that makes the specific delay and change the wait time, but won't modifying the code directly be easier? (for example if the code increases 1, just change it to increase 2 or 3 etc.)
    – user202729
    Nov 27, 2018 at 11:36
  • Besides, all of the instructions may use a common timer, so you can't change each independently; or (less likely) that's max cpu speed and it can't be increased.
    – user202729
    Nov 27, 2018 at 11:39
  • Hey, user202729! Yeah, it's not about what's easier here; it's purely a technical question. Whether increasing or decreasing the timing, where is that whole thing controlled? And where is it defined within a binary to be as such? Like, what makes one instruction write/read more times than another, and at varying times per CPU cycle? It seems obvious it's not a hard-coded value, but anyway, I'm just curious about where that's all controlled per instruction/function (using my example as a specific set of instructions/functions), and is it something that's possible to manually modify?
    – dsasmblr
    Nov 27, 2018 at 13:52


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.