Tu sistema debería tener en cuenta a qué tipo de "cracker" quieres frustrar. Un programa siempre puede crackearse; si vale la pena, tus claves se leerán.
Muchas veces ni siquiera es necesario leer ni descifrar ninguna clave, sólo tocando un "if" para que la condición sea siempre "true" ya queda resuelto (o provocando un salto que pase de largo de cualquier comprobación).
En términos prácticos, lo que me parece más razonable es dedicar la cantidad de energía "protectora" necesaria para dejar fuera a la mayor cantidad de parásitos.
Puedes verlo como una pirámide, donde abajo está la masa inocente que ni siquiera lo intentaría; después, a medida que subes, te encontrarás con los que intentarán algo y desistirán prontamente; luego los que googlearán con algo más de criterio y malicia; y así subiendo hasta los niveles en que "si vale la pena, se hará". Prevenir el primer escalón es gratis, por el segundo algo hay que pagar, ... y el precio sube en forma exponencial hacia la punta, en que para simples como nosotros se vuelve infinito (No dejes de tener en cuenta el nivel de las otras preguntas y respuestas
.
Después de aclara lo que me parecía moralmente necesario... Hay varios sistemas más o menos prácticos que apuntan a distintos escalones de esa pirámide:
El primero consiste en "jamás poner las claves sin transformar en el código".
Otro: "nunca depender de un puto if".
Y así, lo que google y tu imaginación te dicten.
Conozco un sistema razonable, que deja fuera a una buena proporción de esa pirámide sin un esfuerzo monumental, que consiste en generar un hash del programa compilado y guardar ese mismo hash en el programa. De este modo tu programa puede chequearse a sí mismo y si detecta que fue modificado, bueno, tú sabrás.
La dificultad consiste en guardar ese hash en un espacio predeterminado del ejecutable e ir iterando las compilaciones hasta obtener un ejecutable con el mismo hash que se haya integrado. No es fácil pero tampoco es un proceso eterno, con criterio, práctica y un buen procesador (refrigerado) en unos días lo tienes.
Suerte, y no nos cuentes.