[Python-es] proteccion de codigo

Daπid davidmenhur en gmail.com
Mie Abr 4 20:34:43 EDT 2018


2018-04-05 2:06 GMT+02:00 Mario Lacunza <mlacunza en gmail.com>:

> Hola,
>
> a ver entre #1 y #3 tienes un problema de diseño, si estás haciendo un
> sistema web el cual corre por ende en el servidor q TU debes controlar para
> q quieres protegerlo? si lo q tu vendes me imagino será el acceso al
> mismo.. o lo q pretendes es vender el sistema web server completo para q
> cualquiera lo instale en SU servidor? esto último de nuevo es la peor forma
> de llevarlo a cabo.
>

No necesariamente. Puedes distribuir una manylinux wheel compilada con
Cython. El usuario sólo necesitaría instalar unos pocos paquetes, y a
correr.

Como te han dicho no hay sistema seguro, sólo demoras el tiempo q a alguien
> le lleve descompilarlo, para evitarlo, véndele servicios agregados a tu
> sistema, actualizalo constantemente ofrece soporte especializado, etc hay
> muchas vias indirectas de evitar q te descompilen el software.
>

Tampoco hay que exagerar. Dependiendo de cómo de interesante y caro sea el
proyecto, el código C generado por Cython es de por sí extremadamente
complejo:

  {
      double __pyx_temp_scalar = 0.0;
      {
          Py_ssize_t __pyx_temp_extent = __pyx_v_marginal_.shape[0];
          Py_ssize_t __pyx_temp_idx;
          double *__pyx_temp_pointer = (double *) __pyx_v_marginal_.data;
          for (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent;
__pyx_temp_idx++) {
            *((double *) __pyx_temp_pointer) = __pyx_temp_scalar;
            __pyx_temp_pointer += 1;
          }
      }
  }

Y esto es antes de pasarlo por GCC. ¿Alguien se atreve a descifrarlo?
(Solución más abajo)

En uno de mis códigos, elegido al azar, 232 líneas de Python se convierten
en 29560 de C.


Hay otras herramientas, pero no las conozco, yo uso Cython por velocidad,
pero sé que hay quien lo usa para ofuscar.



/David.
________
Solución: poner a 0 todos los elementos de un array unidimensional.
Exactamente, marginal_[:] = 0
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20180405/decf0eb3/attachment.html>


Más información sobre la lista de distribución Python-es