I have a program which creates a hard-coded number of objects. I patched the binary so that now it can attempt to create more objects than the limit allows, however when it does it allocates them to memory that wasn't supposed to be originally written to in the
.data section. Here's an illustration:
I'm wondering what approach I should use tackle this. Right now, I used CFF Explorer to create a an exact copy of the
.data section, called
.dataex, which has double the size of
.data, and put it at the end of the binary:
My initial thought was that there is possibly some way to "shift" the references down so that the program will use the ones in
.dataex, and then do another "shift", but this time only from
.dataex + n. That way, there is more free space which the program can use to create new objects.
I realise I may be missing/overlooking/misunderstanding many things here, so please let me know if what I want to do is even possible, or if there exists a simpler solution.