a. Non è vero che chiunque può usare Read/WriteProcessMemory; per usarla il processo deve essere aperto con i flag PROCESS_VM_WRITE/READ e PROCESS_VM_OPERATION, il che richiede il possesso del privilegio SeDebugPrivilege e la sua esplicita abilitazione; questo privilegio è dato di default solo agli utenti amministratori (come è giusto che sia), per cui se uno non usa utenti amministratori per il lavoro normale (come si dovrebbe fare e come su Unix si fa da sempre) non rischia niente. In ogni caso si tratta di funzioni pensate per funzionalità di debug, e se non ci fossero non sarebbero possibili diversi "sporchi trucchi". Inoltre sotto Vista sono stati introdotti i cosiddetti "processi protetti", che non consentono tutta una serie di operazioni dall'esterno per evitare che la gente metta mano ad applicazioni che lavorano con il DRM. In ogni caso tieni conto che se disponi di diritti sufficienti per effettuare il debugging del kernel non c'è sicurezza che tenga.
b. e c. Devi usare i normali metodi di IPC; tra l'altro un po' di tempo fa si era proprio parlato di memoria condivisa qui sul forum, fai una ricerca (cerca MapViewOfFile).
In ultimo, ti segnalo un articolo interessante che spiega perché non va bene usare la ReadProcessMemory come metodo di IPC.