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
), ahora esto hará UN soldado inmortal tras congelar el address de vida, para que todos los soldados tengan vida, podrías intentar encontrar el address de cuando se realiza un ataque, de esta forma siempr elo estableces a 0 y nunca te atacarán, ahora si quieres más acción podrías injertar una dll que busuqe todas las estructura de soldado y les cambie el parámetro vida, no sé si se entiende la idea, espero que sí! saludos