elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
20 Marzo 2010, 16:59  


Temas destacados: Wallpaper mensual Marzo


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: Eternal Idol)
| | |-+  file2bits "Cortar un archivo en varios de menor tamaño"
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: file2bits "Cortar un archivo en varios de menor tamaño"  (Leído 537 veces)
Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
file2bits "Cortar un archivo en varios de menor tamaño"
« en: 07 Febrero 2010, 09:36 »

He iniciado un proyecto pequeño, asi simple y rápido. Lo he alojado en google http://code.google.com/p/file2bits/ xD

Es el clasico programa par divir un archivo en otros de menor tamaño.

Lo he hecho tras analizar un posible fallo en xterm. Necesitaba cortar un archivo binario (ejecutable, imagen) en otros mas pequeños, se que ya existen proyectos así, sin embargo quería hacerlo por mismo

Esta es el archivo

Y después de ejecutar el programa

Código:
../file2bits -i test.png -o xterm_test -s 128




Al programa le podemos especificar el archivo de entrada, el nombre base de los archivo de salida y la longitud deseada de los mismos archivos de salida.

A la salida como ven en la imagen les agrega al final del nombre el numero, después de voy a agregar para que agregue extensiones, y ademas pueda dejar alineados los números por ejemplo en lugar de ser 1,2,3, ..., 387 va a ser 001,002,003, ... , 387, esto por cuestiones de alineamiento.

Ademas también va a tener la opción de poder crear el archivo original teniendo lo pedazos (bits)

Esta hecho en C, ahorita me funciona bien a mi (FreeBSD), posiblemente funcione en linux sin ningun cambio

Mañana me hago el instalador (Makefile) y le agrego el readme.

Saludos
En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #1 en: 07 Febrero 2010, 20:02 »

Pues a quedado solucionado mi primer issue en esta aplicación xD:

fread() - ¿como saber la cantidad de bytes leidos? (Solucionado)

Gracias a Hacker_Zero y a Littlehorse por sus consejos.

En un momento mas le agrego el Readme y el makefile.

Saludos




En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #2 en: 09 Febrero 2010, 05:27 »

Apenas que estaba por subir una actualización xD

http://code.google.com/p/file2bits/

Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.



Estaba trabajando en la función de restaurar el archivo original, mediante los archivo creados, sin embargo estoy viendo que con el comando cat se puede hacer eso fácilmente.

Agregue la funcionalidad de comprobar que los los archivos esten en correcto estado mediante sha1



En la imagen anterior doy un ejemplo del uso

Código
./file2bits -i file2bits -o test -s 2048 -v
Archivo de entrada el mismo ejecutable, el nombre base de salida "test" y el tamaño de salida 2048 bytes y el flag de verbose activado, la salida nos da:

Código:
test_1 2048 bytes
test_2 2048 bytes
test_3 2048 bytes
test_4 2048 bytes
test_5 2048 bytes
test_6 163 bytes

Como vemos el ultimo archivo solo es de 163 bytes

Como todavía no tengo la función de restore activada lo restauro con cat

Código
cat test_* > salida.xD

Y después de comprobar el sha1 de salida.xD

Código:
SHA1 (salida.xD) = 4e5d7bd90e9c88c0e50070b08920e85b9bd21453

Vemos que coincide con el original:
Código:
"file2bits" 4e5d7bd90e9c88c0e50070b08920e85b9bd21453


Ahora que lo pienso he encontrado otro bugs xD si el size se especifica en 0 es posible qu entre al un bucle infinito creando muchos archivos de 0 bytes xD

En lo que este habilitado agrego el issue a la lista, este sera el issue 2

Se que parece monologo y habra quien diga que por que no edito elpost

Si lo edito y dejo todo en uno solo el post se perderá para siempre
Ahora que eso si, no pregunto como va la sintaxis del printf por que de inmediato parece que todos se apuntan a contestar.

Saludos
En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Hacker_Zero

Conectado Conectado

Mensajes: 678


CASI Nunca digas es imposible....


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #3 en: 09 Febrero 2010, 08:20 »

Si lo edito y dejo todo en uno solo el post se perderá para siempre
Ahora que eso si, no pregunto como va la sintaxis del printf por que de inmediato parece que todos se apuntan a contestar.

Jajaja, nah, es que hasta que esté terminado dá palo hacer comentarios porque se entrecorta el post  :P. De todas formas buen código, siempre anima que alguien decida codearse sus propias herramientas.

Saludos
En línea

Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #4 en: 09 Febrero 2010, 13:24 »

Gracias Hacker_Zero, siempre ayudando y animando xD.

De hecho ya hay una versión funcional:

http://file2bits.googlecode.com/files/file2bits.tar.bz2

Pero esl versión vieja, esta solo realiza la separación de archivo sin checksum sha1 ni nada.

En lo que pueda subir la nueva versión se los comento.

Saludos
En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Hacker_Zero

Conectado Conectado

Mensajes: 678


CASI Nunca digas es imposible....


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #5 en: 09 Febrero 2010, 19:28 »

Bueno, no pude compilarlo en windows por el #include <unistd.h>, no existe esa cabecera en windows, sería interesante que usaras sólo la CRT para poder hacer la tool multiplataforma  :P.

Saludos  ;)
En línea

Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #6 en: 09 Febrero 2010, 21:45 »

Que tal, muchas gracias por el consejo.

Código
#include<unistd.h>

Es por getopt para el uso de optarg, igual conoces alguna función en Windows que te maneje los parámetros del programa mas fácilmente, o lo tengo que hacer a mano?

Saludos


En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Hacker_Zero

Conectado Conectado

Mensajes: 678


CASI Nunca digas es imposible....


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #7 en: 09 Febrero 2010, 22:00 »

Ni idea de si existe una función así, yo en windows siempre lo hice con argc y argv. Si saco un rato puedo tratar de hacer una versión compilable en win y ver si puedes hacerlo multiplataforma.

Saludos
« Última modificación: 09 Febrero 2010, 22:04 por Hacker_Zero » En línea

Littlehorse

Desconectado Desconectado

Mensajes: 1.489


Nie Dam Sie.


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #8 en: 09 Febrero 2010, 22:01 »

Tienes que hacerlo a mano o implementar algunos de los sources que se encuentran por ahí.

http://argtable.sourceforge.net/
http://www.codeproject.com/KB/cpp/xgetopt.aspx
http://note.sonots.com/EngNote/CompLang/cpp/getopt.html

En todo caso si también quieres mantener unistd puedes utilizar la compilación condicional.

Si lo edito y dejo todo en uno solo el post se perderá para siempre
Ahora que eso si, no pregunto como va la sintaxis del printf por que de inmediato parece que todos se apuntan a contestar.

Es que si no preguntas nada la mayoría no tiene nada para decir. Yo por mi parte leo tus avances y veo si haces alguna pregunta o si posteas algún bug que se pueda revisar.

Un saludo!
« Última modificación: 09 Febrero 2010, 22:03 por Littlehorse » En línea

Irrationally held truths may be more harmful than reasoned errors.

Website: Need of Security
Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #9 en: 09 Febrero 2010, 22:47 »

Entonces lo voy a manejar todo a mano sin el getopt, directamente moviendome entre los paramatros (argv), para que si sea portable, ya que es lo que mas me interesa, terminare de trabajar en el restore, y continuare con la implementación del manejo manual de parámetros.

Muchas gracias Littlehorse y Hacker_Zero, ustedes si que me animan con esto.

Saludos
En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Anon
Estudiante y
Colaborador

Desconectado Desconectado

Mensajes: 1.895


Anonymous & Paranoid


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #10 en: 11 Febrero 2010, 22:35 »

Bien he actualizado el código, sin embargo tengo todavía ciertas dudas entre como seguir:

Al momento de cortar el archivo he creado también un archivo de información para la restauración del mismo, un ejemplo es:

Código:
b 2048 "test_1" 4099552938a5e1e87fb299c7446707cc9803fdc5
b 2048 "test_2" 3aef2d2b5bc264627520028c917cfd5009003a30
b 2048 "test_3" ab0594fbfe625371ddc3096baf4017c99e675f51
b 2048 "test_4" fc28633ef2bdda9f8488f259313273ce7c7f8f8c
b 2048 "test_5" d8cd4ac31814bf26c2dfdfadd2eb2ecb4720f598
b 163 "test_6" b57a7371c9a5ad6145ae5880782d7479cbf04892
o 10403 "file2bits" 4e5d7bd90e9c88c0e50070b08920e85b9bd21453

La idea es que el proceso de restauración, lea este archivo y compruebe el sha1 de los archivos previamente creados "bits", esto para detectar posibles errores y después de que lea los archivos de entrada, el de salida también compruebe que e es correcto (Algo redundante pero bueno)

Sin embargo no me quiero enredar mucho con ello, estoy viendo que es posible crear algún archivo, que haga que la aplicación se cuelgue.

Alguien que me recomiende otro método para hacer esto sin tantos rodeos, eso si teniendo en mente la integridad del archivo de salida.

Saludos



En línea

En la escuela "Temporada Baja"

Blog stack and heap
Mi Windows Live Space
Mi Twitter
Mi Canal Youtube

no free software, no free bugs
Littlehorse

Desconectado Desconectado

Mensajes: 1.489


Nie Dam Sie.


Ver Perfil WWW
Re: file2bits "Cortar un archivo en varios de menor tamaño"
« Respuesta #11 en: 12 Febrero 2010, 00:04 »

No entendí la pregunta. Que tiene de malo esa implementación? porque al fin y al cabo con eso chequeas el archivo antes de la unión, después de la unión, y mientras tanto también chequeas la integridad de todas las partes por lo tanto también podrías emitir errores como "La parte 6 esta corrupta".
Y si no hace un checksum antes de dividirlo, lo guardas en algún lugar, y después lo volves a comprobar despues de la union.

Esta es la parte donde tenes que decidir si queres evitar funciones complicadas para simplificar el uso, o si queres agregar características avanzadas a la aplicación.

Un saludo!
En línea

Irrationally held truths may be more harmful than reasoned errors.

Website: Need of Security
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Yashira.org    Videojuegos    indetectables.net    Seguridad Informatica Colombia    Indejuegos    Internet móvil

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec    Seguridad Wireless    Underground México    Biblioteca de Seguridad

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC