Originally Posted by
Cypher
No, you do not need code injection to read data from a process. That functionality is provided by the Windows API in the form of ReadProcessMemory.
Code injection is useful when calling engine functions, hooking functions, etc. An example would be for 'advanced' functionality such as drawing an ingame UI for your bot/hack (which is a combination of calling and hooking functions -- though at the D3D layer, not at the engine layer).
If your radar app renders in its own window there is no need to inject code. If you want to overlay your radar directly onto the game then you WILL need to inject code. Its obviously not necessary to do that but it's quite a nice touch (and warden won't ban you if all you're doing is hooking D3D and reading memory, Fraps for example hooks D3D, and reading memory from an injected dll is invisible to the target process).
No, warden can't detect memory reading, it doesn't reside at a high enough level. To do that it would need to run from the kernel.
As far as pointers to injected code, no. The .text segment holds all of WoW's compiled code, and the .rdata segment most of WoW's hardcoded constants that can't be inlined into the code.
Code injection is not bannable under WoW if you resist the urge to call engine functions (which could technically be detectable, but the chances of that happening are relatively small), which for your radar project is quite reasonable.
At any rate. Just because you have to learn doesn't mean we should spoonfeed you every step of the way.
Before returning please do some research on the topics you're curious about.
As far as injection goes, the book "Windows via C/C++" has an excellent chapter solely devoted to DLL injection.
As for the layout of a PE file and what all the sections are for you'll probably find the best resources online, just do a google search.
You'll also want to research ways for interacting with another process. Again, the book "Windows via C/C++" is excellent for that.
Obviously the lack of knowledge stems from a much deeper lack of research overall, but if you want to pinpoint the specifics currently in your way those are the things you need to look at.
Be forewarned though, I can guarantee you a lot of the content will confuse you unless you go back and start at the beginning.