Está en la página 1de 11

APRENDIENDO PYTHON DESDE CERO (PARTE CERO) Realmente esta serie de tutoriales, que comienza en esta parte cero

como introduccion, trata de que yo aprenda python y a programar con el, y por supuesto ir compartiendo lo que voy leyendo y aprendiendo con el que quiera leerlo y aprender junto a mi. Realmente no me anime a llamarlo curso, porque para hacer un curso sobre algo hay que saber, y yo no se casi nada de python, lo poco que aprendi fue a los tropezones en mi trabajo y porque tenia que programar exploits, lo cual se realiza en este idioma mayormente, por lo tanto mis conocimientos del tema estan llenos de baches, dudas que como siempre ha pasado en mi vida a medida que voy escribiendo voy aprendiendo a solucionar y a entender, por lo cual, este realmente es una especie de lo que llamamos en al argentina machete, el papelito que haciamos en la escuela para copiarnos en las pruebas, y cuando terminabamos de escribirlo nos dabamos cuenta que por solo escribirlo, habiamos aprendido algo sobre el tema y que escribir hace que se aprenda mejor y se fijen conocimientos. PORQUE PYTHON? Bueno un poco ya lo dije al trabajar en el area de seguridad y de exploit writing, el idioma natural para ello es python, aunque hay quien usa otros idiomas, como ruby, C, o algun otro, de cualquier manera sin ser yo un experto del tema reconozco algunas ventajas del idioma python para dicho uso, lo mismo que para scripting de programas, lo cual tambien veremos mas adelante (OLLYPYTHON, IDA PYTHON) nos permitiran bastante mas adelante cuando ya conozcamos el idioma, programar potentes scripts para nuestros mas usados debuggers y programas, lo cual no invalida que python pueda ser usado para programar aplicaciones de cualquier tipo, sobre todo es muy util para programar facilmente keygens, crackmes, tools y en general cualquier programa en el cual la velocidad no sea lo mas importante, y si la rapidez de programacion, legibilidad y portabilidad. Una de las ventajas de python sobre otros idiomas tambien sobre todo a nivel scripting es que es muy sencillo de entender, el codigo es breve, y cualquiera aunque no haya escrito el programa, le costara mucho menos entender lo que hace que en otros idiomas, el codigo es facilmente reusable, y como se le pueden agregar modulos, puede incrementarse con modulos propios o ajenos. Muchos programas de hoy dia que necesitan actualizacion tienen una GUI principal, hecha en algun idioma, y ejecutan scripts hechos en python, para realizar sus tareas, los cuales proveen a los usuarios una forma de manejar el programa sencilla, facil de entender, portable (ya que el codigo python funciona en linux, windows, mac, hay versiones de python para java, para celulares, para pda, notebooks, asi que realmente es un lenguaje muy poderoso, y con una curva de aprendizaje mucho mas suave que otros idiomas similares. Por lo demas la indentacion o sangria que a muchos usuarios les parece algo molesto en python, no lo es tanto, pues permite leer el codigo mas facilmente, y de cualquier forma si uno se equivoca el interprete de python se encargara de avisarle que ha cometido un error de indentacion, por lo cual, es un pequeo paso de adaptacion que conlleva a que el codigo sea mas prolijo y legible. Como por supuesto yo no se mucho de esto me baso en libros.

Estos libros que son la biblia de python : O'Reilly - Mark Lutz & David Ascher - Learning Python Mark Lutz - Programming Python Oreilly.Python_Pocket_Reference, .Mark_Lutz Estan escritos dichos libros en ingles por gente que sabe de esto, jeje, y bueno seguiremos sus pasos, por el aprendizaje de python, por otro lado, a pesar de que existen versiones de active python 2.5.x.x , nosotros usaremos aun la version 2.4 ya que es compatible con ollypython, con idapython, y realmente la diferencia con la version 2.5 es minima, asi que si uno aprende python lo puede hacer con ambos, pero todo lo que practique en estos tutoriales sera basado en este active python 2.4.x.x. Para conseguirlo vamos a la pagina http://www.activestate.com/Products/activepython/ pulsamos el boton de GET ACTIVE PYTHON

y luego de elegir la version FREE por obvias razones

Elegimos de la version 2.4.3.11 la correspondiente a windows, si realmente vamos a instalarlo en windows, en linux ya viene incluido en el sistema no hay que instalar nada, creo que en mac tambien. Una vez instalado el paquete MSI que acabamos de bajar, verificamos si esta bien instalado por lo cual antes de ejecutarlo abrimos una ventana de comandos CMD y tipeamos python Microsoft Windows XP [Versin 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\Ricardo.NARVAJA-D6A3908>python ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> y si esta todo bien nos debe devolver la version que acabamos de instalar con el prompt de python >>>, esto debe ocurrir en cualquier ventana de comandos con cualquier path, si no ocurre, pues habra que ir a la ventana de environment variables o variables de entorno y agregar el path al ejecutable de python en mi caso C:\Python24\, aunque el instalador lo hace automaticamente.

Bueno tenemos todo listo para ejecutar el active python que acabamos de instalar, pero tambien como vimos es bueno recordar que en cualquier ventana de comandos si escribimos python, se abre un interprete del mismo, y podemos escribir alli cualquier comando o instruccion del mismo, muchas veces para hacer una pequea cuenta no necesitamos abrir el active python, abrimos la CMD.

Como python es calculadora tambien y su lenguaje es tan intuitivo y sencillo, podremos hacer operaciones alli mismo. Pueden en una sola liea escribir intuitivamente una operacin por ejemplo 56+ 45* 6 y al apretar enter lo resolvera >>> 56+45*6 326 alli esta por lo demas podemos facilmente darnos cuenta que podemos por ejemplo asignar un valor a una variable X o el nombre que queramos y en el siguiente paso operar con ella si escibimos X=5 enter y luego X+67 y enter nos dara el resultado >>> x=5 >>> x+67 72 >>> Por supuesto esto demuestra la flexibilidad del idioma que nos permite probar linea a linea cada instruccin y ejecutarla una a una, o todas a la vez si realizaramos un script, pero bueno, es importante saber que la linea de comandos, o el terminal de linux, nos quedaran muy poderosos, pues podemos ejecutar directamente instrucciones de python, que siempre son sencillas, y poderosas.

Tambien si ejecutamos el programa veremos la interface del mismo

Vemos la ventana interactiva donde podemos tambien practicar tipear lo que antes hemos hecho en la ventana de comandos de windows o en el terminal de linux.

Vemos que es muy intuitivo escribir alli, al igual que en la CMD, podemos asignar variables y al darle enter, tomaran su valor, podemos realizar operaciones con las mismas, y mientras no cerremos la ventana interactiva, quedaran en memoria los ultimos valores que se han asignado o ejecutado. Si en el caso anterior agrego Y= x + 5666 a diferencia de escribir solo x + 5666 que me muestra el resultado directo en la consola, en este caso como es una asignacion, el resultado quedara almacenado en Y el cual podemos ver tipeando Y y enter.

Por supuesto esto lo veremos mas detalladamente por ahora solo estamos mostrando la interface grafica con algun ejemplito simple. Ademas de la interface interactiva, al apretar el boton NEW

Podemos abrir un editor de script de python completos.

Pythonwin posee las dos posibilidades, la ventana interactiva y el editor de scripts, realmente la ventana interactiva solo se usa para probar comandos sueltos o pocos comandos, a ver que efecto tienen y mientras uno esta aprendiendo es muy util ver que ocurre al ejecutar algun comando, o un par de comandos, mientras que el editor de scripts, se utiliza para programar.

Cuando uno ya conoce mas las instrucciones, puede armar un script o programa completo en el editor, es lo que se utiliza normalmente, lo que si en este ultimo, no podremos ejecutar instrucciones sueltas sino que deberemos correr el script completo, por eso quizas en las primeras instancias del aprendizaje, mientras nos familiarizamos con los comandos usamos, la ventana interactiva por su efecto inmediato.

Aqu la cosas no se ejecutan ya linea a linea como en la ventana interactiva, si no que en forma bastante similar al editor OLLYSCRIPT, para los que lo conozcan, aqu podemos escribir un script entero de python, guardarlo y correrlo, ya veremos su uso mas detallado, lo importante es que se vea la diferencia de que aqu no se ejecuta instruccin a instruccin como en la ventana interactiva, sino se escriben scripts completos, como ejemplo breve.

Bueno es un miniscript que realmente se podia ejecutar directamente en la ventana interactiva pero nos servira para probar la ventana de scripts.

Guardo mi script con un nombre

Lo cierro y vuelvo a la ventana interactiva, puedo borrar todo lo que habia de antes y si corro el script ...

y puedo ver el resultado impreso en la consola,veo lo que mencione anteriormente la salida de un script, se hace por medio del comando print . Si no le colocara el print delante, el script no mostraria nada en la consola de salida, aunque pongamos el nombre de la variable solo: hello='Hello World!' hello Es de mencionar que el hecho de que la ventana interactiva, nos muestre el valor de una variable solo tipeando el nombre de la misma y ENTER, es una caracteristica especial de la misma, para ayudarnos a saber el valor rapidamente de alguna variable, pero cuando un script lo escribimos completo en el editor de scripts, y queremos que al ejecutarlo muestre el valor de algo, deberemos usar print, lo cual mostrara el valor en la consola o salida, hago esta aclaracion porque muchos lectores al ver que en la ventana interactiva puedo ver el contenido solo tipeando la variable y ENTER, se confunden y piensan que en un script tambien es similar, y no es asi, alli habra que usar el comando print para mostrar algo en la salida. El hello solo como dijimos, no mostrara salida alguna, sin el print delante, siempre debemos recordar que tipear una variable sola, y luego apretar ENTER solo sirve para ayudarnos a saber su valor, en la ventana interactiva y no funciona en el editor de scripts.

Fue realmente facil mi primer script jeje, puedo reabirlo con OPEN y agregarle cosas, modificarlo

si le agrego

y lo guardo y corro

Veo que podia escribir una sola string YO SOY PEPE o sumar strings, jeje, asi de una sumo strings , puse YO mas SOY mas PEPE y asi como venia sumo las tres a una sola string y la asigno a la variable pepe, la cual imprimi en la siguiente linea. Vemos en estos ejemplos que sin tener que declarar tipos de variables, solamente asignandoles valores, podemos trabajar con ellas, ya veremos mas adelante ejemplos y como podemos profundizar en el tema. Tambien vemos que como lenguaje para hacking es python muy poderoso, pues desde una simple linea de comandos podremos tener acceso a muchisimas posibilidades, que mas adelante veremos aunque realmente esto no sera un curso de hacking ni de exploit, se podra entrever, las posibilidades del idioma para estos menesteres. Bueno creo que ingresamos amenamente en el tema y de a poco, iremos paso a paso avanzando espero que a alguien le interese, aunque como dije, yo aprendo y el que me siga pues si quiere que me siga y si no, pues hay miles de tutoriales de otros temas, seguramente mejores y mas interesantes que este. Un abrazo a todos los crackslatinos y hasta la proxima parte 1 donde empezaremos a estudiar el idioma en profundidad. Ricardo Narvaja