It is the process of injecting code into the memory space of another process. Think of opening a legitimate process and somehow the attacker managed to inject some arbitrary code inside your process as if it was part of that legitimate program in the first place.
The code that runs inside of the legitimate process has all of the attributes and metadata of that process.
Basic Process
Open the process handle for the process in which code is going to be injected.
Reserve and modify permissions for a region of memory within that process. This is where the code is going to be written into.
Write the data to an area of memory in a specified process. The “data” here being the payload.
Create the thread that is going to execute that code.