lunes, 22 de octubre de 2012

Conceptos que necesitamos entender!

Okay, primero necesitamos entender algunas cosas para saber que estamos haciendo o que vamos a hacer,

Primero que nada C# es un lenguaje de alto nivel, pero atras de esto que hay?, como en otro lenguaje C# genera un codigo intermedio llamado CIL, que significa Common Intermediate Language, este es el codigo de bajo nivel que generan nuestro programas en C#, pero que es el codigo CIL?, como decia es lenguaje de programacion de mas bajo nivel en el CLI (Common Lenguage Infraestructure) y en la plataforma .Net Framework, el lenguaje CIL es un lenguaje orientado a objetos, basado en pilas y que se ejecuta en una maquina virtual.

Cuando compilamos una aplicación el codigo fuente se convierte en CIL que es independiente de la plataforma asi que se puede ejecutar en cualquier cpu.

La primera aplicacion que vamos a desarrollar va a ser un ofuscador de codigo fuente, pero que es ofuscación?

Ofuscación de codigo!

La ofuscación de codigo se refiere al proceso de manipular los metadatos de un programa para que si este es desensamblado de alguna manera al obtener el codigo fuente este sea ilegible, ya que se protegera el codigo fuente mediante la proteccion de metadatos.

Metadatos?

Los metadatos son la representación de los datos, ya que por ejemplo tenemos un metodo que se llama proceso, pero proceso no es mas que la representacion del codigo del metodo en si proceso es un metadato ya que representa a un dato.

Antes de que comencemos a programar tendremos un pequeño curso de Reflexion en C# asi que no se deseperen ya que esto va para largo, pero si logran aguantar, van a ver que todos tendremos mucho que ganar!

Para poder entender como funciona esto necesitamos saber como se produce, asi que para esto ocuparemos la reflexión en C#.

La reflexión se entiende como la posibilidad de obtener información acerca de binarios cargados, lo que vamos a hacer con la reflexión es metaprogramación, la metaprogramación se refiere a la programación de programas, en otras palabras estaremos manipulando programas terceros, claro hechos en C#, los programas terceros son los que examinaremos, y asi que de ahora en adelante estos se llamaran binarios, asi que ya que tenemos cargados los binarios podremos examinarlos y obtener de ellos sus tipos de definición, las clases, interfaces, metodos, campos, variables, etc., ya que tenemos que entender como se hace esto, ademas de que quiero documentar un poco de reflexión ya que no eh visto mucho en español.

Bien ya que sabemos un poquito de esto podemos continuar, pero sera en el siguiente post, si aun no lo entienden, dejen su comentario y la parte que no entienen, o si tienen duda de aqui en adelante a alguna cosa que postee.

Salud2!

No hay comentarios:

Publicar un comentario