¿Cuál es la mejor manera de asegurar el uso/carga de un archivo DLL con un archivo de licencia?Asegure un archivo DLL con un archivo de licencia
Respuesta
Un par de cosas es posible que desee considerar:
Comprobar suma la DLL. Usando un cryptographic hash function, puede almacenar esto dentro del archivo de licencia o dentro de la DLL. Esto proporciona un método de verificación para determinar si mi archivo DLL original está deshabilitado o si es el archivo de licencia para este archivo DLL. Algunas técnicas simples de intercambio de bytes pueden llevar rápidamente a su función de hash fuera de los caminos trillados (y por lo tanto no es fácil de reproducir).
No guarde su hash como una cuerda, divídalo en pantalones cortos sin firmar en diferentes lugares.
Como dijo Larry, una dirección MAC es bastante común. Hay muchos ejemplos de cómo obtenerlo en The Code Project, pero tenga en cuenta que es fácil de falsificar en estos días.
Mi sugerencia, debe ser el uso de private/public claves para la generación de licencias.
En resumen, los modos de ataque serán binarios (modifique las instrucciones de su archivo DLL) para protegerse de esto o de la generación de claves, de modo que cada usuario de licencia, máquina e incluso la instalación sean específicos.
Puede comprobar si hay una licencia dentro de DllMain() y fallecer si no se encuentra.
También depende de cómo funciona su algoritmo de licencia. Te sugiero que busques utilizar algo como Diffie–Hellman key exchange (o incluso RSA) para generar algún tipo de clave pública/privada que se pueda pasar a tus usuarios, en función de cierta información.
(De acuerdo con la aplicación, conozco un caso en el que escribí el código de licencia de un contrato para una empresa, utilizaron MAC address y otros datos, lo modificaron y cifraron el hash, dándoles la "clave" valor ", si el número de registro era correcto). Esto asegura que el archivo de clave no se puede mover, (o entregar) a otra máquina, por lo tanto 'robando' el software.
Si quiere conocer en profundidad y evitar hackers, eso es un todo 'tro tema ....
- 1. Cómo ejecuto un archivo * .dll
- 2. Cargando dinámicamente un archivo DLL
- 3. ¿Cómo descompilo un archivo .dll?
- 4. ¿Un método efectivo para encriptar un archivo de licencia?
- 5. Descarga de un archivo dll en mef
- 6. Leer recursos de un archivo DLL
- 7. Use RSA para firmar un archivo de licencia
- 8. Obteniendo CLSID para un archivo DLL?
- 9. crear un archivo dll en C#
- 10. Cómo depurar un archivo DLL en Delphi
- 11. acceder a .net2.0 DLL en un archivo DLL .NET 4.0
- 12. Creando una DLL desde un archivo cpp envuelto con SWIG
- 13. Al compilar un archivo DLL, ¿el archivo LIB generado contiene el nombre de la DLL?
- 14. ¿Cómo analizar un archivo de volcado desde un archivo DLL de Delphi?
- 15. C++: Carga de un archivo EXE como un archivo DLL, vftable problema local de
- 16. Archivo .dll no accesible
- 17. ClickOnce - El archivo ya existe - ¿Por qué un archivo DLL intenta copiarse dos veces con ClickOnce?
- 18. Archivo DLL versión
- 19. Lectura del archivo .Doc con DocumentFormat.OpenXml dll
- 20. Listado de las funciones exportadas de un archivo DLL
- 21. número de versión de un archivo DLL en .NET
- 22. Obtener la versión de archivo de un dll o exe
- 23. ¿Obtiene un objeto de archivo o URI para un archivo dentro de un archivo con Java?
- 24. Asegure un enlace de descarga en Symfony 2
- 25. ¿Cómo puedo usar un archivo DLL de Python?
- 26. Almacenar un archivo XML dentro de una DLL compilada
- 27. ¿Puedo hacer que Vim ignore un bloque de licencia en la parte superior de un archivo?
- 28. Qt entorno GUI en un archivo DLL (complemento VST)
- 29. ¿Un archivo ejecutable grande o muchos DLL pequeños?
- 30. Consumir servicio web desde un archivo DLL .NET - app.config problema
¡HAGA una lectura de lo que se le permite hacer en DllMain, no es mucho! – MSalters