Antes que nada, ¿en qué idioma estás escribiendo esto? Es cierto que es imposible lograr un programa a prueba de grietas, pero siempre puede hacerlo más difícil. Un enfoque ingenuo para la seguridad de las aplicaciones significa que un programa se puede descifrar en minutos. Algunos consejos:
Si se está implementando en una máquina virtual, eso está muy mal. No hay muchas alternativas allí. Todos los vms populares (java, clr, etc.) son muy simples de descompilar, y no hay ofuscador ni firma suficientes.
oportuno intentar disociar la medida de lo posible la programación de interfaz de usuario con el programa subyacente. Esto también es un gran principio de diseño y hará que el trabajo del cracker sea más difícil desde la GUI (por ejemplo, ingrese su ventana serie) para rastrear el código donde realmente realiza la verificación
Si está compilando en código máquina nativo real, siempre puede establecer la compilación como una versión (no incluir ninguna información de depuración es crucial), con una optimización lo más alta posible. También en las partes críticas de su aplicación (por ejemplo, cuando valida el software), asegúrese de hacer una llamada de función en línea, para que no termine con un único punto de falla. Y llame a esta función desde diferentes lugares en su aplicación.
Como se dijo antes, los envasadores siempre suman otra capa de protección. Y si bien ahora hay muchas opciones confiables, algunos programas antivirus pueden acabar identificándote como un virus falso positivo, y todas las opciones famosas (por ejemplo, UPX) ya tienen un desempaquetador bastante directo.
hay algunos trucos-depuración contra También puede buscar. ¡Pero esto es una molestia para usted, porque en algún momento también podría necesitar depurar la aplicación de lanzamiento!
Tenga en cuenta que su prioridad es hacer que la parte fundamental de su código como imposible de encontrar como sea posible. Cadenas de texto claro, llamadas a la biblioteca, elementos de la interfaz gráfica de usuario, etc. Son todos los puntos donde un atacante puede usar para rastrear las partes críticas de su código.
De todos modos, se va a agrietar si el software vale algo. ¿Estás seguro de que quieres empeorar la experiencia de los usuarios al agregar otra capa de controles/activación? (por lo que tengo entendido, ya tienes activación y claves en línea ... lo cual parece suficiente) el software "a prueba de grietas" es un mito, no puede desaparecer. – viraptor
Tendría una buena mirada en SO de las diversas discusiones sobre este mismo tema. Esta pregunta surge un * lote * – spender
¿Mi consejo? Cambiar de carrera: P –