Métodos de protección Mq4.. - página 4

 
Bueno, usted necesita una solución profesional para proteger su código mql. No es un tema fácil. Todo esto discutido dll cosas es inútil para proteger su código.
 

¿Han considerado alguna vez lo siguiente?

Ejecutar MetaTrader como lo hacéis habitualmente. Cargar sus malditos indicadores fuertemente protegidos o lo que sea. Ejecutar una herramienta de volcado de procesos y volcar toda la memoria del proceso terminal.exe a un archivo (... y tal vez otros rangos de memoria que asigna) utilizar un editor hexadecimal o un editor de texto normal y buscar fragmentos de sus Indicadores tan perfectamente protegidos.

No he probado esto pero tengo casi 30 años de conocimientos en programación de bajo nivel (ensamblador 680x0, powerpc y demás).

Feliz caza.

:)

 

Vale, tenía un poco de prisa cuando respondí a este hilo y por eso me gustaría ampliar unas líneas. Algo como la protección real del código no existe. Se puede criptar, mover, rotar, copiar el código, pero al final está desnudo de nuevo.

Por ejemplo: En otros tiempos he escrito programas y he volcado la dirección inicial y final del código en un archivo. Todos los saltos dentro del código fueron puestos en un offset relativo y el código (que es un dato normal después de todo) fue rotado por 1 bit. Por lo tanto, el código ya no existe. Puedes añadir una parte del cargador a tu código y hacer que se desrote de nuevo y que se reasignen las direcciones de las etiquetas (que normalmente se encuentran en los hunks). Salta a la entrada y voilá vuelves a ejecutar el programa.

Por lo tanto la mayoría de la gente creerá que su programa o indicador está bien protegido porque no se puede leer ninguna etiqueta u otras cosas de la cripta (ejecutable). Al final es visible de nuevo. Visible una vez que lo ejecutas y lo haces pasar por tu proceso (o programa).

Puedes criptar, cambiar el código y o hacer la protección tanto como quieras. Una vez que el programa se ejecuta, entonces la mayor parte de la protección desaparece de nuevo (con algunas excepciones como el keyfile o los números de serie, etc.).

Así que estoy asumiendo lo mismo para los indicadores. Se compilan sí. ¿Es un binario? No lo sé. ¿Es un bytecode? Tampoco lo sé. Pero estoy bastante seguro de que una vez que lo ejecute en terminal.exe y vuelque las áreas de memoria que terminal.exe asignó para el indicador, que podría ser capaz de obtener rastros de su código (incluso si se trata de cadenas de texto utilizado en su interior o similar).

Tal vez puedas obtener algún tipo de CÓDIGO de vuelta como en tus archivos *.mql4. Tal vez no lo hagas. Tal vez obtengas algo de bytecode, tal vez no. Tal vez obtengas algo. Tal vez terminal.exe tiene su propio intérprete de código dentro que interpreta el código generado por el metaeditor.exe para que terminal.exe lo entienda. Como he dicho anteriormente, no lo he probado.

Lo que me gusta explicar es que si quieres criptar o proteger tu código no lo veas siempre desde un lado (por ejemplo, los archivos ex4 que el metaeditor compiló y cubrió con algún código desconocido. Véalo también desde el otro lado. Una vez que lo ejecutas, tu código protegido vuelve a estar desnudo. Y esta es una parte para conseguir los dedos en ella. Puede funcionar. No debe.

Un efecto negativo al volcar la dirección de inicio y fin de un código en ejecución es este. Todo se inicializa. Los arrays se llenan de valores, los placeholders podrían tener valores, etc.

 

Buenos puntos, Ali. Gracias.

La minería en el volcado de memoria parece ser una solución cara. Hasta ahora la única solución barata vino de la fuga de conocimiento de Metaquotes. Espero que alguien - que es capaz de la minería de código de memoria - puede codificar el MQL4 sí mismo desde cero por menos esfuerzo. Actualmente me siento seguro hasta que la nueva fuga de conocimiento aparezca para permitir decodificadores baratos. Entonces viene el plan B - codificarlo de la manera que hace que la manipulación del código desensamblado valga un alto costo.