First of all I understand that I am new to this community, and if you do not want to answer my question because I have not given anything back to this community as of yet, I understand. However hopefully in time, and learning, I can give something back
Yesterday I was able to (first time for me) inject a dll into a target process, at first I played around with a 'hackme' test dummy application before I jumped right in to messing with World of Warcraft.
Upon injecting code into my test dummy application, I used the MessageBox() api to let me know that DLL_PROCESS_ATTATCH was currently in execution flow, then I had a test function inside of my test dummy app, which for the sake of simplicity we will say the call procedure lies at 0xDEADBEEF.
I used this method to call the function
that was the best I could come up with, and it worked. The function was called in the target application, with no deadlocks and no crashes.
DWORD location=0xDEADBEEF;
__asm
{
CALL location
}
Its a different story with WoW however.
I have a certain function that I chose from TOM_RUS' post of 4.0.6 static data.
I know that my injection works, it gets to the the MessageBox() api, however it crashes out after that, which is where the asm function call is located.
so basically what I need to know here is, am I using the proper calling convention? What am I missing and what am I doing wrong?