Dll's and accessing program memory
Hmm i guess this is just a general question. Let us say i had a program, that i didn't make, Program Cat. And i wanted to create a program to directly interact(ie have access to the memory of), with program Cat, called program Hi.
Would the only way for program Hi to do this be to make program hi a dll instead of an exe, and injecting it into Cat?
Also suppose lets say i wanted my now dll to have a GUI, could the GUI be coded directly into the DLL, or would it be necessary to make another exe that the dll interfaces with. infact is that even possible? Having the same dll be attached to 2 different processes at the same time?
Also now that the topic comes up, when there is a dll, and it is either injected, or legitimately there, is it's purpose so that the program can draw functions from it or something like that? So kinda like for extensibility?
Thanks, i'm new to DLL's, microsoft is confusing v_v