That's very simple, really. You need at least to know programming, from there you can do things and learn-by-doing.
For your first tests, you might want to use a software to inject a DLL in any process for you, so you can focus on developping your DLL.
I would recommand Winject for that : (Download link) *********/12ee59
It is so easy to use, just select the process you want to inject, the DLL you want to inject, and press Inject.
Screenshot of injecting "minime.dll" in explorer.exe : puu.sh/gQHeL/c58f9afbfd.png
Now, you want to code a DLL. The easiest way to do that is to take your favorite compiler (let's say, MSVC), create a new DLL project in Visual Studio, and start coding whatever you want!
The most simple example I can think of is to make a MessageBox appear :
MessageBox(NULL, "Im in the process!", "Hello", 0);
Don't forget to create a thread when you inject the DLL if you want to keep your DLL active when the process is running. If you're not sure how to do it, you might want a simple source code, I have a few of them on my ******. For instance :
(LoLClientAPI) : https: //******. com/Spl3en/LoLClientAPI/blob/master/mainServer.c#L62
(BSHack) : https: //******. com/Spl3en/BSHack/blob/master/main.c#L216
Or you can inject your DLL, hook few functions, and leave the process :
(RPC Fuzzing) : https: //******. com/Spl3en/RPCFuzzing/blob/master/RPCFuzzing/main.cpp#L35
I suggest you to copy the DllMain function and code your own things in startInjection function.
If you don't code in C, that's basically the same thing for the other langages. Just look for "DLL coding in <whatever langage>" on google.
Once you have your MessageBox working, you can start trying to find values in CheatEngine, and try to modify them with you DLL :
*(0xwhateverAddress) = value;
Your DLL will be in the same address space than the process, so you can do (almost) whatever you want
Once you have this working, just tell me, we will see what you want to do next.