Saltar al contenido
Daniel Alfocea Academy

Ofuscación y protección de código Python

Formación de 118 minutos para proteger tu código Python de la copia y la ingeniería inversa: ofuscación, ejecución dinámica y control post-entrega.

Con Daniel Alfocea

de vídeo
118 min
lecciones
19
nivel
avanzado
Ofuscación y protección de código Python

Para quién es

Distribuyes software en Python y quieres mantener el control sobre tu código después de entregarlo: licencias, propiedad intelectual e ingeniería inversa. Hace falta un nivel avanzado de Python.

Sobre la formación

Si entregas tu código tal cual, se puede copiar, modificar y usar sin tu permiso

118 minutos de vídeo para proteger tu código Python de la copia y la ingeniería inversa.

Entregas un script, una herramienta o un producto escrito en Python. El cliente lo instala, y a partir de ahí el código es tan legible para él como para ti.

Sin ningún control, nada te impide que alguien lo copie entero, se salte la licencia que pactaste o cambie una condición que tú habías puesto ahí a propósito.

La mayoría de quien distribuye en Python no toca este problema hasta que ya es tarde.

Quién te lo cuenta

Soy Daniel Alfocea. Llevo veinte años entre desarrollo y seguridad, y he escrito unas cuantas herramientas de auditoría (GoLismero, Plecost, Dockerscan).

Aquí te enseño a proteger tu código Python como lo haría yo, con el terminal abierto y tecleando delante de ti.

Quiero proteger mi código

Lo que te llevas

Primero, por qué querrías un mecanismo de control dentro de tu propio código: gestión de licencias, control post-entrega, o un botón que desactiva una copia cuando hace falta.

Luego, las formas de ejecutar código Python de manera dinámica: desde una cadena de texto, desde bytecode compilado y desde funciones construidas en tiempo de ejecución. Cada una tiene su sitio según lo que necesites esconder.

Un módulo entero de cómo se revisa un código fuente en Python, con las herramientas de análisis estático que se usan de verdad (pylint-security, Bandit, Pysa, Prospector, Semgrep) y qué es lo que miran.

Con eso entiendes qué hace que una pieza de código sea legible o no para esas herramientas, y aplicas varias capas: ocultar una llamada tras otra función, bytecode serializado, ofuscación manual de cadenas, Base64 y ROT13 combinados.

Y al final, construyes tu propio mecanismo, de principio a fin: una conexión a un servidor que mantiene control sobre una instancia entregada, protegida con las técnicas del curso.

Quiero mantener el control de mi código

Qué cuesta

105 €, un pago, y la formación es tuya. Si la actualizo, la versión nueva la tienes sin volver a pagar.

No vas a salir con un sistema de licencias comercial, eso es otro producto. Sales con las técnicas de ejecución y protección que hay detrás, y un mecanismo propio construido de principio a fin.

Si lo que buscas es aprender Python desde cero, esta formación te va grande.

Pago los 105 € y empiezo

Un abrazo,

Dani

P. D. Si dudas, mira primero las dos lecciones abiertas. En menos de 10 minutos sabes si es para ti.

Temario

Son 118 minutos de vídeo repartidos en 19 lecciones y 4 módulos. Las marcadas «Muestra» se ven sin entrar.

01Conceptos básicos 2 lecciones · unos 6 min
  • Qué es un huevo de pascua 2:18
  • Por qué querríamos un huevo de pascua
02Ejecutando un huevo de pascua 7 lecciones · unos 41 min
  • Métodos nativos de Python
  • Usando “eval”
  • Usando “exec”
  • Usando “compile”
  • Usando “types” 7:09
  • Usando “codeops”
  • Usando “subprocess”
03Haciendo el código indetectable 9 lecciones · unos 72 min
  • Métodos, herramientas y tipos de detección. Análisis estático y dinámico
  • Ocultando el método “exec”
  • Nuestro primer huevo de pascua
  • Alias de funciones y monkey patching
  • Usando Python byte codes
  • Usando cadenas ofuscadas (parte 1)
  • Usando cadenas ofuscadas (parte 2)
  • Usando base 64
  • Usando ROT 13
04Herramientas de análisis 1 lección
  • Herramientas de análisis de código estático para Python

Lecciones de muestra

Míralas antes de pagar.

  • Qué es un huevo de pascua2:18

  • Usando “types”7:09

Quién lo imparte

  • Daniel Alfocea

    Veinte años en desarrollo y seguridad, y autor de herramientas como GoLismero, Plecost y Dockerscan.

Dudas

Qué nivel de Python hace falta

Avanzado. Tienes que estar cómodo con funciones, imports y manejo de cadenas, porque el curso va de técnicas de ejecución y protección, no de aprender a programar.

Si todavía escribes tu primer script, esta formación te va a ir grande.

Para qué sirve esto en el día a día

Para tres casos que se repiten cuando entregas software en Python a un cliente o lo distribuyes fuera de tu control: que alguien lo copie sin pagar la licencia, que lo modifique sin tu permiso o que te haga falta un mecanismo de control después de la entrega, como un botón que desactive una copia pirateada.

El curso te enseña a construir ese mecanismo y a ocultarlo dentro de tu propio código.

Esto es legal

El contenido es para proteger tu propio código, gestionar licencias de software que desarrollas tú, o entender cómo se revisa un código fuente ajeno.

Lo que hagas con estas técnicas fuera de eso es tu responsabilidad, no la del curso.

Linux, macOS o Windows

Todo el código es Python puro y corre en los tres sistemas. Alguna lección usa netcat para las pruebas, que también está disponible en los tres.

118 minutos valen 105 €

Si entregas o vendes software en Python y quieres mantener algún control sobre él después de la entrega, es un método que aplicas una vez y usas en cada proyecto nuevo.

Y si no lo ves claro, empieza por las dos lecciones abiertas. No pagas nada por verlas.

Salgo sabiendo proteger cualquier código

No. Esto no sustituye un sistema de licencias comercial ni un servicio de ofuscación profesional.

Sales con las técnicas que hay detrás de esos sistemas, para construir tu propia protección a medida de lo que entregas.

Para quién esDistribuyes software en Python y quieres mantener el control sobre tu código después de entregarlo: licencias, propiedad intelectual e ingeniería inversa. Hace falta un nivel avanzado de Python.