No se puede utilizar una en lugar de otra ya que no hacen lo mismo.Hola Eternal Idol, como siempre muchas gracias por despejar mis dudas.
A grosso modo OpenProcess obtiene un HANDLE a un proceso y VirtualProtect cambia la proteccion de la memoria especificada - sobre el proceso actual, para actuar sobre un tercero tenes que usar VirtualProtectEx -.
Documentacion:
OpenProcess (http://msdn2.microsoft.com/en-us/library/ms684320.aspx).
VirtualProtect (http://msdn2.microsoft.com/en-us/library/aa366898.aspx).