Doddy Posted August 17, 2015 Share Posted August 17, 2015 [Guia] : Iniciando en Ruby [Autor] : Doddy Hackman -- == Indice == -- 0x00 : Presentacion 0x01 : Que es Ruby 0x02 : Como cargar un script 0x03 : Tipos de Variables 0x04 : El poder de print 0x05 : Variables argumentales 0x06 : Manejo de array 0x07 : Concatenacion 0x08 : Comentarios 0x09 : Entradas de teclado 0x10 : Tipos de condiciones y rescates de codigo 0x11 : Uso de split 0x12 : Uso de funciones 0x13 : Listar directorios y manejo de archivos 0x14 : Uso de sockets 0x15 : Interactuar con la web y expresiones regulares 0x16 : Descarga de archivos 0x17 : Creando un keylogger 0x18 : Compilar un script a exe 0x19 : Bibliografia -- == Fin de Indice == -- 0x00 : Presentacion Hola , acabo de hacer un manual corto para ruby , puede que este un poco imcompleto pero solo puede explicar lo que conozco a nivel basico , espero que le sirve alguien Cualquier error o sugerencia sobre el manual pueden decirmelo para mejorar 0x01 : Que es Ruby Segun wiki This is the hidden content, please Sign In or Sign Up En mi opinion personal ruby es un lenguaje de programacion que tiene tanto poder como perl o python. En la siguiente url tenemos el link para descargar ruby para windows This is the hidden content, please Sign In or Sign Up 0x02 : Como cargar un script Si tenemos un script en ruby que hemos encontrado o algo asi , para ejecutarlo tenes que abrir nuestra consola ms dos ir al directorio donde se encuentra dicho script con el comando cd y cargar con el codigo con el comando ruby , el cual solo estara disponible si tenemos instalado ruby Un ejemplo seria algo asi This is the hidden content, please Sign In or Sign Up 0x03 : Tipos de variables En ruby tenemos variables de tipo == Locales == Son las variables normales se definen de la siguiente forma This is the hidden content, please Sign In or Sign Up Entre comillas dobles se ponen el valor de la variable local , el nombre de la variable siempre debe empezar en minusculas == Globales == Son las variables que se pueden usar en cualquier parte del codigo un ejemplo de como declararlas seria esta This is the hidden content, please Sign In or Sign Up == De instancia == Son las variables que solo se pueden acceder desde la misma clase , un ejemplo de como declararla seria esta This is the hidden content, please Sign In or Sign Up == Contantes == Estas variables no pueden variar sus valores , el nombre de la variable deben empezar con una letra mayuscula , un ejemplo de como usarlas seria este This is the hidden content, please Sign In or Sign Up 0x04 : El poder de print Para mostrar texto en pantalla tenemos que usar print , un ejemplo seria asi This is the hidden content, please Sign In or Sign Up Tambien lo podemos hacer con comillas simples This is the hidden content, please Sign In or Sign Up Si queremos mostrar una variable con el texto seria asi This is the hidden content, please Sign In or Sign Up Como ven usamos #{} para mostrar la variable , si no queremos mostrar esta variable de esa forma podemos usar una coma de la siguiente forma This is the hidden content, please Sign In or Sign Up Aclaracion : \n representa una salto de linea para que el texto no se muestre pegado 0x05 : Variables argumentales Bien , ahora vamos a mi tema favorito , las variables argumentales. Poniendo un ejemplo seria algo asi This is the hidden content, please Sign In or Sign Up Si cargamos el codigo de la siguiente forma This is the hidden content, please Sign In or Sign Up Nos devolveria en pantalla hola como ven ese es solo primer argumento porque si queremos usar dos seria sumandole un uno al cero de la siguiente forma This is the hidden content, please Sign In or Sign Up Si cargamos esto This is the hidden content, please Sign In or Sign Up Nos devolveria dos hola , si queremos aumentar los argumentos solo tenemos que seguir el numero sucesivo del anterior (0,1,2,3) ..... 0x06 : Manejo de array Ok , llego la hora de hablar de los array , una forma de usar array seria asi This is the hidden content, please Sign In or Sign Up Como vimos en el ejemplo anterior podemos seguir sumandoles valores con solo poner entre comillas los valores Para poder leer un array seria asi This is the hidden content, please Sign In or Sign Up Como ven abrimos el array y lo vamos mostrando con print mediante la variable test , despues de ese usamos end para finalizar la funcion que hicimos para mostrar el array completo. 0x07 : Concatenacion La concatenacion es util cuando queremos unir variables entre ellas un ejemplo de como hacerlo seria asi This is the hidden content, please Sign In or Sign Up Como ven usamos + para poder unir variables o agregar texto a una variable 0x08 : Comentarios Bien , hora de hablar de los comentarios , entonces si queremos dejar notas en el codigo , tanto sea como dejar cosas innecesarias o explicacion de una linea de codigo. Un ejemplo seria asi This is the hidden content, please Sign In or Sign Up Como ven cuando pongamos # todo lo que este adelante de ese linea sera ignorado por el codigo Si comentemos el error de poder en medio del codigo puede surgir un error inperdonable. 0x09 : Entradas de teclado Ok , las entradas de teclado son muy necesarias cuando queremos hacer formularios o menus , un ejemplo de como realizar una entrada de teclado seria haciendo el tipico formulario que te consulta el nombre y la edad. Un ejemplo seria This is the hidden content, please Sign In or Sign Up Como ven con get.chomp capturamos la entrada del teclado y guardamos su contenido en la varibles indicadas Despues mostramos el resultado por pantalla. 0x10 : Tipos de condiciones y rescates de codigo Bien ahora llego la hora de hablar de las condiciones , las condiciones mas usadas o las unicas que recuerdo con las siguientes -- == if-else == -- El tipico if-else , sirve para verificar que si es una cosa es tal cual , si no es asi se ejecuta else. Un ejemplo seria asi. This is the hidden content, please Sign In or Sign Up Como ven si la condicion es verdadera se muestra en pantalla si de lo contrario no Finalmente se pone end para finalizar la funcion. Aclaracion : al final de cada funcion siempre debemos poner end de lo contrario habra un error Aclaracion : == Sirve para verificar que una cosa sea exactamente igual que la otra -- == while == -- El tipico while , este se encarga de verificar que mientras algo sea tal cual la funcion siempre se ejecutara hasta que la condicion sea falsa , un ejemplo seria asi This is the hidden content, please Sign In or Sign Up Entonces si ejecutamos este codigo la funcion nunca terminara porque la condicion siempre sera verdadera -- == for == -- Bien , ahora llegamos a for , entonces for nos sirve para cuando queremos listar varios numeros , tambien tiene otra funciones , pero esta es la que mejor puedo explicar. Un ejemplo de la confusa idea que estoy tirando seria asi This is the hidden content, please Sign In or Sign Up Bueno analizando el codigo podria decir que declaramos num para que podamos ir mostrando el rango 1..10 (pueden cambiarlo por los numeros que les sean necesarios ) mediante print Finalmente cerramos el bucle con end. Cuando tengamos error en el codigo en alguna funcion tenemos que rescatar el codigo de la siguiente manera This is the hidden content, please Sign In or Sign Up Como ven despues del begin escribi cualquier cosa , claramente el codigo dara error , entonces con rescue rescatamos el codigo y mostramos mal , como siempre cerramos begin con end 0x11 : Uso de split Bien ahora llegamos a la conocida funcion split , esta funcion nos puede ayudar a seperar cosas en una variable por ejemplo si tenemos un texto como este This is the hidden content, please Sign In or Sign Up Si queremos cortar los valores "estoy bien" para que quede solo hola podemos hacer asi This is the hidden content, please Sign In or Sign Up Si ejecutamos el codigo veremos que logramos hacer lo que queriamos. 0x12 : Uso de funciones El uso de funciones nos sirve cuando muchas cosas repetidas y queremos reducir un poco el codigo Un ejemplo seria una funcion que muestre en pantalla lo que nosotros le pidamos. Para declarar una funcion seria usar def de la siguiente manera This is the hidden content, please Sign In or Sign Up Como siempre eh dicho usamos end para finalizar cualquier funcion Entonces si queremos invocar dicha funcion seria asi This is the hidden content, please Sign In or Sign Up Como ven antes de llamar a una funcion creada por nosotros dicha funcion debio ser declarada antes de la llamada porque sino habra un error Entonces para poder varios valores a la funcion para que muestra dicho resultado seria asi This is the hidden content, please Sign In or Sign Up Como ven en nuevafuncion() mandamos tres argumentos cada uno separado por como y entre comillas dobles En la funcion creada le agregamos tres valores a,b,c que sirve para cuando la funcion sea invocada esta automaticamente reconozca los tres argumentos y los muestre por pantalla con el valores asignados en la nuevafuncion() 0x13 : Listar directorios y manejo de archivos Bien , ahora hemos llegado al manejo de archivos y directorios Para empezar si queremos listar un directorio para enumerar sus archivos con un array podemos hacer de la siguiente forma This is the hidden content, please Sign In or Sign Up Como ven podemos cambiar el directorio "xampp" por cualquier otro , despues vemos como enumeramos los archivos encontrados mediante la variable file Como siempre cerramos la funcion con end. Con eso , ya esta , si lo queremos es abrir un archivo , leerlo y mostrarlo por pantalla seria algo asi This is the hidden content, please Sign In or Sign Up Como ven abrimos el archivo var.txt con la variable retornada por la buena ejecucion del archiv podemos leer el archivo con readlines despues abrimos el array retornado y las mostramos con la variable line Como siempre cerramos la funcion usada con end 0x14 : Uso de sockets BIen ahora llegamos a la parte interesante , para poder usar sockets primero deberemos importar el modulo sockets de la siguiente manera This is the hidden content, please Sign In or Sign Up Entonces para conectarons a un servidor al puerto 80 podemos hacer asi This is the hidden content, please Sign In or Sign Up Como ven primero ponemos el host y despues el puerto a entrar Si todo salio bien no deberia aparecer ningun error Entonces como estamos en host con http podemos mandar un simple get como para saludarlo de la siguiente manera This is the hidden content, please Sign In or Sign Up Bien como vemos enviamos una peticion GET con la funcion print del objeto creado con socket , despues capturamos en la variable re todo la informacion enviada como respuesta por parte del servidor , para finalmente mostrar la variable re por pantalla 0x15 : Interactuar con la web y expresiones regulares Bien , ahora llegamos a la parte interesante de ruby ,el manejo de paginas webs. Entonces empezamos por una simple pagina con el metodo GET Para poder cargarla tendriamos que invocar al modulo This is the hidden content, please Sign In or Sign Up Entonces para cargar la pagina y guardar el resultado en una variable seria asi This is the hidden content, please Sign In or Sign Up Como ven capturamos la respuesta , el problema que tiene ruby es que tenemos que parsear la pagina por eso uso parse con la web que queremos cargar. Si lo que queremos es cargar una pagina con metodo POST lo que tenemos que hacer es esto This is the hidden content, please Sign In or Sign Up Como ven primero ponemos la pagina y despues el contenido del formulario encerrado entre los {} Ahora que pasa si queremos sacar cierta porcion del texto de la variable code , no nos queda otra que usar expresiones regulares Imaginemos que en la variable code tenemos el siguiente texto This is the hidden content, please Sign In or Sign Up Y lo queremos sacar es solo "132" Para poder sacar solo esa porcion de texto lo que tenemos que hacer es lo siguiente This is the hidden content, please Sign In or Sign Up Entonces , con (.*) podemos sacar lo que sea que halla justo donde le indicamos , como vemos con $1 capturo lo que hay en el (.*) si algunas vez nos chocamos con el caso de que hay dos , para recoger los resultados seria asi $1,$2 y asi sucesivamente con todos los (.*) que tengamos. En este caso solo hay uno entonces tenemos el resultado en $1 Despues declaramos la variable local passw con el valor de $1 y la mostramos Para finalizar la funcion solo tenemos que poner un end. 0x16 : Descarga de archivos Bien , que paso si queremos descargar archivos , lo que tendriamos que hacer seria esto This is the hidden content, please Sign In or Sign Up Como podemos ver , el modulo encargado de la descarga es open-uri Tambien en la variable file ponemos el nombre que tendra el archivo que descargamos y en url ponemos el link del archivo a descargar. Despues de uso creamos el archivo con el nombre indicado con el modo "wb" , despues escribimos en el , el contenido del archivo descargado , despues de que se descargo el archivo , se cierro el archivo creado 0x17 : Creando un keylogger Para poder crear un keylogger en ruby es necesario invocar el modulo Win32API , un ejemplo de un keylogger hecho seria este This is the hidden content, please Sign In or Sign Up Como podemos ver usamos el modulo win32api para poder capturar todas las teclas despues creamos un while eterno para poder capturar todo el tiempo lo que esta pasando , despues vemos que si lo que nave (variable para conectarnos con la api llamada) reconoce que los rangos (0x30..0x39) o (0x41..0x5A) son identicos a lo que nave esta capturando con la funcion call() para poder mostrar la tecla capturada , eso si usamos chr() para decodificar la tecla obtenida 0x18 : Compilar un script a exe Para compilar un script en ruby a exe tenemos que descargar el siguiente archivo This is the hidden content, please Sign In or Sign Up Una vez instalado , cargamos la consola ms dos , entramos al directorio donde se descargo dicho archivo con cd , despues de eso hacemos lo siguiente para mostrar la ayuda del script descargado This is the hidden content, please Sign In or Sign Up Y nos devuelve This is the hidden content, please Sign In or Sign Up Si el script queremos compilar esta en el mismo directorio podemos compilarlo de la siguiente forma This is the hidden content, please Sign In or Sign Up Como ven problema resuelto xDD 0x19 : Bibliografia Manuales de protos (mod de code-makers) -- == The End == -- Link to comment Share on other sites More sharing options...
Recommended Posts