I wrote a dll application that is hooked into a process. It works but it ONLY shows the FIRST letter.
I wanted to get the whole string. The string could vary from 2 letters to 32 letters.
//READING MEMORY HANDLE ExeBaseAddress = GetModuleHandleA(0); char uNameAddr = *(char*)((char*)ExeBaseAddress + 0x34F01C); printf("%c \n", uNameAddr); I also wanted to understand the parts:
*(char*)((char*) //<-- what this is for. And if it is possible to use this if using multilevel pointers:
char multipoint = *(char*)((char*)ExeBaseAddress + 0x34F01C + 0x123 + 0x321 + 0x20); UPDATE
I guess something is wrong here:
if(uNameAddr == "omnicient") cout << "YOU ARE OMNI" << endl; I used the username name omnicient but it did not cout YOU ARE OMNI. I guess my compare is wrong?
%cmeans character.%smeans string.*(char*)((char*) something)means: convertsomethinginto a char pointer, then... convert it again for some reason (bizarre code), then dereference it (find the thing it pointed to). In this case, the first character of the string%swhen the app displays the data. It crashes.char*. Hang on, too much code for a commentuNameAddris defined as a single character,