VirtualProtect te serviría específicamente para aludir bp on memory, ya que estos dejan de funcionar cuando se modifica el permiso de una sección. Durante el arranque podrías ir cambiando los permisos, aun así quedan los BP int3 y hardware breakpoint, ahora en sí podrás mitigar el porcentaje de éxito de un ataque a tu aplicación aun así no esperes tener una aplicación incrackeable, es cosa de decir la palaba mágia MCKSys Argentina o Fly y el programa se autocrackea y te da un keygen 
Saludos y suerte

Saludos y suerte