Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Once

#121
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
gracias a ambos por responder , ya empecé a aprender con una guia del foro, pero tengo un problema y es que cuando intento ejecutar el código de hello world en el QPython, no sale el texto, si no que sale un momento "cargando" y luego se cierra y me sale una notificacón que dice "Program ends" como lo soluciono? estoy haciendo algo mal?

Coloca al principio del archivo:

Código: python
#qpy:console
#qpy:2


Saludos!
#122
Bugs y Exploits / Re:Frameshock Liberado!
Febrero 03, 2015, 02:07:52 PM
Me encanta que esté en Python, aunque no estoy muy metido en esto del pentest sin duda le hecharé un vistazo. Buen trabajo brother.

Saludos!
#123
Python / Re:Cifrado Compresor [Archivos]
Enero 30, 2015, 04:00:56 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Vale, la verdad es que había escuchado harto lo de indentar con cuatro espacios, pero en los IDE que uso (son dos distintos) siempre se me ha visto bien así. Python 3 no permite que el código esté indentado de las dos formas, o TAB's o espacios, con ambos lanza error. Cuando partí programando y supe de las dos opciones me quedé con los TAB's pues se me hacía más cómodo pero tienes tu punto. De ahora en más haré el esfuerzo de cambiarme  :).

Tampoco es que tengas que poner los cuatro espacios a mano, si es lo que estás pensando, NO. Simplemente busca bien que por lo general todos los IDE permiten configurar el editor para que cuando pulses la tecla TAB se escriban los cuatro espacios y no el tabulador \t. Por eso digo que tabular con cuatro espacios no cuesta mucho, sólo es configurar bien el IDE.

Saludos!
#124
Python / Re:Cifrado Compresor [Archivos]
Enero 29, 2015, 10:28:12 PM
Hola brother,

El interprete de Python es muy permisivo en ciertos aspectos, por eso está la PEP8 (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login) no digo que hay que seguirla al pie de la letra, pero está hecha para intentar estandarizar todos los códigos y así no hayan problemas en especial cuando se programa en equipo (lo digo por experiencia propia). El tema con las identaciones es que todos los IDES las pueden tomar distinto, lo que ves en tu IDE configurado para usar tabuladores no es lo mismo que ve alguien con el IDE configurado para usar espacios. Así veo yo parte de un método de tu código de un post anterior.


Pero el verdadero problema empieza cuando quieres editar el código porque a veces las identaciones no coinciden y tienes que eliminarlas por completo y arreglarlas a mano (imagínate el trabajo para un script de 500 líneas).

Identar con cuatro espacios no cuesta mucho y creéme que los que leémos los códigos y a veces los editamos agradecemos infinitamente que lo hagan.

Si todos identaran con cuatro espacios el mundo sería un lugar mejor.

Saludos!
#125
Dudas y pedidos generales / Re:duda sobre java
Enero 29, 2015, 06:46:22 PM
Nunca he tocado Java, pero estoy casi seguro que es type casting

Edito: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
#126
Python / Re:Cifrado Compresor [Archivos]
Enero 29, 2015, 05:00:39 PM
Excelente brother, gracias por traerlo. Esto es Python 3 verdad?

PD: No quiero sonar muy pesado, pero intenta usar cuatro espacios para identar; sino a veces se vuelve un poco tedioso seguir el código.

Saludos!
#127
Python / Re:Moviendonos entre archivos con python
Enero 22, 2015, 09:43:11 PM
@Azav

Tienes toda la razón brother, como fui yo quien agregó la información al final del archivo no contemplé la posibilidad de que hubieran bytes no imprimibles. Ahí hago la aclaración. Muchas gracias por la observación!

En cuando al código que publicaste, no estoy muy familiarizado con Python 3.* pero la idea de la entrada era justo mostrar que se puede leer partes del archivo sin la necesidad de tener que leer todo el archivo. Piensa que tienes un archivo algo grande y lo único que necesitas es sacarle los metadatos, leer todo el archivo sería un gasto innecesario de memoria y tiempo. Mira que tienes que leer todo el archivo para usar sólo los últimos 27 bytes.

Por cierto, me parece que te complicaste mucho para sacar los caracteres imprimibles. Así lo haría yo, usando una lista blanca:

Código: python
# -*- coding: utf-8 -*-

import string

permitidos = string.ascii_letters + string.digits  # Lista blanca

with open("moviendonos.png", "rb") as archivo:
    archivo.seek(1, 2)
    buffer = ""
    for _ in xrange(27):
        archivo.seek(-2, 1)
        byte = archivo.read(1)
        if byte in permitidos:  # Verificamos si el byte leído está en la lista
            buffer += byte

print buffer


Así todos los caracteres deberían ser imprimibles. (Aunque no estoy muy seguro si es a lo que ter refieres)

Saludos y gracias de nuevo!
#128
Python / Re:Moviendonos entre archivos con python
Enero 22, 2015, 01:10:39 PM
Gracias brother, espero que te sirva.

Saludos!
#129
Python / Moviendonos entre archivos con python
Enero 22, 2015, 04:14:47 AM
Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


A veces, cuando tratamos con archivos necesitamos algo más que sólo leer todo el archivo. Necesitamos poder movernos entre el archivo y leer partes que bien podrían resultar aleatorias. En esta entrada veremos esos métodos que nos brinda Python para conseguir ¡movernos entre los archivos!

Abriendo el archivo

Python nos da dos opciones para abrir un archivo:

Código: python
archivo = open(ruta_archivo, modo_apertura)  # Abrimos el archivo
archivo.read()
archivo.close()  # Cerramos el archivo



Código: python
with open(ruta_archivo, modo_apertura) as archivo:  # Abrimos el archivo
    print archivo.read()



En la primer forma nos tenemos que preocupar por cerrar el archivo, en la segunda forma, cuando salimos del bloque with Python se encarga de cerrar el archivo por nosotros. Ambas formas retornan un objeto tipo file.

Modos de apertura


Modo apertura    Significado
r    Abre el archivo en modo sólo lectura.
w    Abre el archivo en modo sólo escritura. Si ya existe el archivo éste se sobrescribe; de lo contrario, se crea el archivo.
a    Abre el archivo en modo escritura. Si el archivo ya existe se escribe la información al final.
r+    Abre el archivo en los modos lectura y escritura.
rb    Abre el archivo en modo sólo lectura binaria.
rw    Abre el archivo en modo sólo escritura binaria.
r+b    Abre el archivo en los dos modos lectura y escritura binaria.

En Windows se distingue entre archivos de texto y archivos binarios. Así que debemos tener cuidado con el modo en el que abrimos los archivos.

   
Código: python
with open("data.txt", "w") as archivo:  # Abrimos el archivo en modo escritura
    print archivo.write("Hola mundo")  # Escribimos en el archivo


En el script anterior abrimos el archivo data.txt y escribimos en el "Hola mundo"

Métodos del objeto file

Leyendo el archivo

Código: python

archivo.read([tamaño])


El argumento tamaño es opcional y determina la cantidad de bytes que van a ser leídos. Si no se especifica, se leerá todo el archivo.
   
Código: python
archivo.readline()


El método readline() nos permite leer sólo una línea del archivo.

   
Código: python
arhivo.readlines()


El método readlines() lee todo el archivo y regresa una lista donde cada elemento es una línea del archivo.

Cada que leemos en el archivo también nos movemos en él, así, la próxima vez que leamos lo haremos un byte a la derecha desde la última posición.
Cuando llegamos al final del archivo, la lectura nos devolverá una cadena vacía.

Leyendo la versión de un PDF

La cabecera de los archivos PDF tienen el formato: %PDF-1.N(EOL)
Donde N es un número que puede ir desde uno hasta siete y representa la especificación y (EOL) representa un final del línea que puede ser un retorno de carro, una línea nueva o ambas.


Así pues,  tenemos dos opciones para leer la versión de un archivo PDF.
   
Código: python
with open("pdf.pdf", "r") as archivo:  # Abrimos el archivo
    print archivo.readline()  # Leemos la primer línea


Leemos la primer línea completa del archivo.
Citar%PDF-1.4\n

   
Código: python
with open("pdf.pdf", "r") as archivo:  # Abrimos el archivo
    print archivo.read(8)  # Leemos los primeros ocho bytes del archivo


Sólo leemos los primeros ocho bytes del archivo.
Citar%PDF-1.4

Otros métodos del objeto file

Conocer la posición en el archivo

Como ya se explicó antes, cada que leemos el archivo, también nos movemos en el, con el método tell() Python nos permite conocer la posición (el byte) donde estamos en el archivo.
   
Código: python
with open("pdf.pdf", "r") as archivo:  # Abrimos el archivo
    print "Posición inicial:", archivo.tell()
    print "Cabecera:", archivo.read(8)
    print "Posición final:", archivo.tell()


CitarPosición inicial: 0
Cabecera: %PDF-1.4
Posición final: 8

Moviéndonos entre el archivo
   
Código: python
archivo.seek(bytes, [desde_donde])


El argumento bytes indica la cantidad de bytes que nos vamos a mover dentro del archivo.

El argumento desde_donde es opcional, puede tomar tres valores 0, 1 y 2 e indica desde donde nos vamos a mover. 0 (valor por defecto) indica que nos vamos a mover desde el principio del archivo. 1 indica que nos vamos a mover desde donde se encuentra actualmente el puntero. 2 indica que nos vamos a mover desde el final del archivo.

Si el argumento desde_donde es especificado y es distinto que 0, entonces el argumento bytes puede tomar valores negativos y positivos. Un valor positivo indica que nos vamos a mover hacía la derecha y un valor negativo indica que nos vamos a mover hacía la izquierda.

Leyendo un archivo desde atrás
A veces necesitamos leer los archivos desde atrás ya sea porque las especificaciones así lo requieren (como en el formato PDF) o porque lo que nos interesa está ahí ej. los típicos casos de esteganografía por EOF (End Of File) donde la información que queremos ocultar la guardamos al final de una imagen. Si no pudiéramos movernos entre el archivo, tendríamos que leer todo el archivo y luego sí leer la parte que necesitamos.

Para este ejemplo vamos a usar la imagen principal de la entrada que guardaremos como "moviendonos.png". He guardado un pequeño mensaje ahí que ocupa los últimos 26 bytes.

   
Código: python
with open("moviendonos.png", "r") as archivo:  # Abrimos el archivo
    archivo.seek(1, 2)  # Nos movemos al final del archivo
    buffer = ""
    for _ in xrange(26):  # Recorremos los 26 bytes
        archivo.seek(-2, 1)  #  Nos movemos dos bytes a la izquierda
        buffer += archivo.read(1)  # Leemos un byte

print buffer


En el ejemplo anterior estamos abriendo un archivo binario en modo texto (lo ideal es hacerlo en modo binario) "rb" Gracias a Azav por la observación

Recordemos que cuando leemos el archivo sin importar el método que usemos, Python comenzará a leer desde el byte a la derecha de donde se encuentra el puntero. Por eso en la quinta línea nos movemos dos bytes a la izquierda y cuando leemos en la sexta línea nos movemos un byte a la derecha.

El resultado es:


CitarYou are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Por lo general se usa un "separador" para delimitar donde acaba el archivo original y comienza nuestro mensaje; así que si no conocemos la cantidad de bytes que tiene el mensaje escondido, podemos seguir leyendo hasta que encontremos el separador. Teniendo en cuenta que como estamos leyendo desde atrás, el mensaje también lo estaremos leyendo desde atrás.

Si abrimos la imagen con un editor hexadecimal podemos ver que el mensaje está escrito al revés. Por eso cuando lo leemos es legible.


Con esto terminamos la entrada de hoy, cualquier comentario es bienvenido.

Fuente: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
Once
#130
Python / Re:[tkinter/Gmail] Email-Sender
Enero 19, 2015, 03:53:42 PM
Muy bueno bro, gracias por compartir el código. Solo una recomendación, intenta usar para las identaciones solo cuatro espacios.

Saludos!
#131
Es imposible que te den una buena respuesta si no especificas pata qué necesitas la distro. (hay cientos You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login)

Ahora, personalmente, si apenas estás comenzando, puedes probar con Debian. Si ya tienes algo de conocimiento sobre como funcionan los sistemas Linux, prueba ArchLinux.

Saludos!
#132
Off Topic / Re:Feliz Hackingdad a todos!
Diciembre 25, 2014, 12:13:04 AM
Felices fiestas chicos.

Saludos!
#133
Off Topic / Re:[DUDA]Borrar tema sin razón.
Diciembre 25, 2014, 12:10:34 AM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Fue movido a la zona de analisis.
Solemos revisar los posts de los usuarios nuevos. No es mas que eso. En cuanto este confirmado que no esta infectado, lo volveremos a mover al foro publico.

Saludos!
ANTRAX
No tengo intención de infectar a ninguno de aquí... vale de acuerdo.

Lo sabemos, pero es el protocolo; es nuestra forma de mantener a todos los usuarios seguros de las personas que si intentan infectar. No es nada personal.

Saludos y felices fiestas!
#134
Off Topic / Re:ThePirateBay Nueva WEB
Diciembre 23, 2014, 05:01:49 PM
Parece que vuelven acá: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos!
#135
Gracias bro, sabes si hay alguno que resalte los archivos de configuración? que es para lo que uso nano.

Saludos!
#136
Perl / Re:Ejercicio: piramide
Diciembre 05, 2014, 10:18:15 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Es lo que en perl se conoce comoYou are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

Es decir, remplaza los caracteres que encuentra en el primer parámetro, con los que encuentra en el segundo parámetro, en su mismo orden.

Voy a cenar y hago el ejercicio que has propuesto tú  :)

Gracias.

Pon otro.

Saludos!
#137
Perl / Re:Ejercicio: piramide
Diciembre 05, 2014, 04:47:26 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Esta es la mía  ;D

Código: perl
#!/usr/bin/perl

my $DNA = "ACGGGAGGACGGGAAAATTACTACGGCATTAGC";

$DNA =~ tr/ATCG/TAGC/;

print reverse($DNA) . "\n";



Mi código es muy "pytónico"  :P
No entiendo (apenas estoy prendiendo Perl) ¿Son expresiones regulares?

PD: Para continuar, un script que le pida al usurio un número y le diga si el número es perfecto o no.

Saludos!
#138
Perl / Re:Ejercicio: piramide
Diciembre 05, 2014, 01:16:26 PM
Código: perl
my $cadena = "ACGGGAGGACGGGAAAATTACTACGGCATTAGC";
my %tabla = ("A"=>"T", "T"=>"A", "C"=>"G", "G"=>"C");
my $complementario;


foreach (reverse(split("", $cadena))) {
    $complementario .=  $tabla{$_};
}

print $cadena . "\r\n";
print $complementario;



Saludos!
#139
Perl / Re:Ejercicio: piramide
Diciembre 04, 2014, 06:25:14 PM
Sip, pon otro.

Saludos!
#140
Perl / Re:Ejercicio: piramide
Diciembre 04, 2014, 05:25:16 PM
Ok, entonces completar la piramide anterior

Citar
Tamano: 5
    *
   ***
  *****
*******
*********

Saludos!