Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2010, 10:23
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 8 meses
Puntos: 95
Proyecto Nuevo.

Hola compañeros, tengo un proyecto que se me ocurrió al estar limpiando uno de mis discos duros externos.
Me encontré con todos mis programas cuando estaba empezando a programar en C++, desde estructuras de control, programación orientada a objetos, pasando por estructuras de datos (listas, colas, arboles, arboles de decision, tablas de acceso directo, hash table, arboles binarios, grafos, algoritmos bellman-ford, dijikstra, etc, etc etc..) es un compendio de programas en C++ valiosisimo, obviamente tengo el tipico programa "Haz un programa que genere los números del 1 al 10", o "Haz un programa que encuentre todos los números perfectos" o los números impares.. etc...

Estaba pensando en juntar todos esos programas, montar un portal de programación que he estado diseñando y ponerlos para que sean descargados, con codigo fuente y ejecutable.

La manera de remunerar sería que el código fuente de estos programas estaría ofuscado.

por ejemplo, este es el programa Hello World ofuscado para C
Código C:
Ver original
  1. #include "stdio.h"
  2. #define e 3
  3. #define g (e/e)
  4. #define h ((g+e)/2)
  5. #define f (e-g-h)
  6. #define j (e*e-g)
  7. #define k (j-h)
  8. #define l(x) tab2[x]/h
  9. #define m(n,a) ((n&(a))==(a))
  10.  
  11. long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };
  12. int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };
  13.  
  14. main(m1,s) char *s; {
  15.     int a,b,c,d,o[k],n=(int)s;
  16.     if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); }
  17.     else switch(m1-=h){
  18.         case f:
  19.             a=(b=(c=(d=g)<<g)<<g)<<g;
  20.             return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d));
  21.         case h:
  22.             for(a=f;a<j;++a)if(tab1[a]&&!(tab1[a]%((long)l(n))))return(a);
  23.         case g:
  24.             if(n<h)return(g);
  25.             if(n<j){n-=g;c='D';o[f]=h;o[g]=f;}
  26.             else{c='\r'-'\b';n-=j-g;o[f]=o[g]=g;}
  27.             if((b=n)>=e)for(b=g<<g;b<n;++b)o[b]=o[b-h]+o[b-g]+c;
  28.             return(o[b-g]%n+k-h);
  29.         default:
  30.             if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;
  31.             for(*s=a=f;a<e;) *s=(*s<<e)|main(h+a++,(char *)m1);
  32.         }
  33. }

Entonces con la ofuscación al compilarlo, imprimiría una marca de agua.

"Programa descargado desde http://www.mipaginaweb.com"

Y si la persona que lo descargue, quiere el codigo fuente original sin la marca de agua y sin codigo fuente, para que lo pueda modificar a su gusto, entonces tendría que pagarme no se, unos 5 dolares por programa, por su codigo fuente, y mas adelante incorporar una sección de usuarios premium, que por una suscripción mensual, tendrían acceso a contenido exclusivo, e incluso recursos para el aprendizaje y enseñanza, es decir un maestro de programación podría entrar como usuario premium a mi comunidad, y descargar metodos de enseñanza de programación, diagramas, graficas, figuras, videos, ejemplos, power points, etc...

Que les parece? Funcionaría?