FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Programa con su código fuente
Estaba revisando el disco duro y me he encontrado esta pequeña herramienta que programé hace algunos meses. Así que siguiendo mi política de dejar las aplicaciones cautivas en libertad, me he decidido a publicarla aquí. ¿Por que aquí y no en mi pagina web? Porque no tengo pagina web, soy muy vago para montar una, así que aprovecho la oportunidad que me brinda esta pagina para dejarla aquí colgada.
Lo primero decir que la aplicación no esta echa en Delphi, esta echa en C y compilada con MINGW que permite crear aplicaciones para windows usando herramientas GNU. Aunque debería de poder compilarse en cualquier compilador de C. La aplicación es una herramienta que permite leer/grabar los sectores de un disco (disquetes, discos duros, memorias flash), permite leer/escribir archivos y también permite leer la información de backup de los archivos. Ahora explico todo mas detalladamente. Al poder leer y restaurar los sectores de un disco podemos hacer cosas como esta. Supongamos que tenemos una memoria flash con la letra de unidad I, podemos crear una imagen con el siguiente comando: Código:
Dump /D \\.\I: > c:\imagen.bin Código:
Dump /D /load \\.\I: < c:\imagen.bin Otro uso de la herramienta es el poder leer y escribir información adicional en los archivos, a la que normalmente no se tiene acceso. Me explico, puede leer la información adjunta a un archivo en forma de Alternate Data Streams ( si quieres saber lo que es un ADS lee esto http://www.diamondcs.com.au/index.ph...d=ntfs-streams ). Por ejemplo si queremos agregar el archivo 2.txt como un ADS de 1.txt utilizaremos un comando como este: Código:
Dump /F /load 1.txt:2.txt < 2.txt Código:
Dump /F 1.txt:2.txt Código:
Dump /B 1.txt PD: Espero que este sea el foro adecuado. |
#2
|
|||
|
|||
Hola Seoane, está muy interesante lo que hace tu programa, sabes algo sobre el MBR (Master Boot Record), lo que quiero hacer es una aplicación que repare los MBR, si tuvieras alguna información, te lo agradecería.
Saludos y gracias anticipadas.
__________________
"La información tiene más valor cuando se comparte" |
#3
|
||||
|
||||
Antes de nada, tengo mis dudas sobre si trastear con el MBR desde windows sea buena idea. Pero que demonios, mientras no arda ...
En principio el MBR es el primer sector del disco, es decir los primeros 512 bytes. Simplemente con el programa Dump que pongo mas arriba podriamos copiarlo, escribirlo ya es una operacion mas complicada y peligrosa. A modo de prueba, teclea lo siguiente: Código:
dump /d \\.\Physicaldrive0 > c:\imagen.bin Código:
\\.\Physicaldrive0 --> Primer disco duro \\.\C: --> Primera particion Ahora es cuando explico como funciona. Si conoces C y le has echado un vistazo al código ya tendrás una idea de como trabaja el programa. Es muy simple la API CreateFile permite abrir un disco como si se tratara de un archivo, y utilizar las API WriteFile y ReadFile para escribir y leer. La única limitación es que siempre se debe leer y escribir un numero de bytes múltiplo del tamaño del sector, es decir, si cada sector mide 512 bytes, puedes leer 512, 1024, 2048, etc pero no 1000 bytes. Después de todo este rollo, podemos sacar en claro que utilizando CreateFile y ReadFile puedes leer los primeros 512 Bytes, el MBR, y usando WriteFile podemos escribirlo. El problema es que tienes el MBR roto como vas a iniciar windows y así ejecutar el programa de recuperación aunque una aplicación útil/divertida es copiar el MBR del disco duro y grabarlo en el primer sector de un disquete. Si el sector de arranque se estropea solo tienes que insertar el disquete y arrancar el equipo, el MBR hace su trabajo y arranca el sistema. Por hoy ya solté mucho rollo, si el tema te interesa podemos seguir hablando. |
#4
|
||||
|
||||
Aquí te dejo todo lo necesario para copiar el MBR al primer sector de un disquete, de esta manera podremos arrancar el sistema en caso de emergencia. En este caso el código esta en delphi:
Con esto creo que ya se puede hacer una utilidad de rescate bastante resultona. ¿Que te parece? |
#5
|
||||
|
||||
Hola,
Seoane, hombre, todo lo que has comentado es muy interesante y puede resultar muy útil. ¿Porqué no publicas en el apartado de Trucos el par de funciones anterior? Más aún, ¿porqué no publicas en el apartado de Trucos tu anterior mensaje (por lo menos) al completo? NO es que te critique el que no lo publiques, es una forma de decirte, ¡publícalo, que está muy bien! |
#6
|
||||
|
||||
Dec, lo que pasa es que entiendo que en la sección de trucos se debe publicar código probado y seguro, en este caso probado si esta, el jueguecito de copiar el MBR a un disquete y arrancar desde ahí ya lo he echo varias veces. Pero seguro, ya no es tan seguro, si no se sabe lo que se esta haciendo trastear con el MBR puede dejarnos sin el arranque del sistema.
fer21unmsm por otros mensajes que ha publicado parece que le gusta experimentar, por eso le paso el código, no sin antes advertirle del riesgo que conlleva. De todas formas, deja que lo ponga todo un poco mas bonito, y ya lo publico. EDITO: Ya está publicado: truco 356 Última edición por seoane fecha: 01-08-2006 a las 14:54:25. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Codigo fuente programa P2P | Niko | Varios | 2 | 11-07-2007 09:27:40 |
Código fuente | chinchan | C++ Builder | 3 | 01-08-2006 04:59:25 |
codigo fuente o programa en delphi | Ravent | OOP | 5 | 27-05-2006 16:04:33 |
TPV.- Codigo Fuente | Rabata | Varios | 4 | 15-10-2005 13:48:51 |
Codigo fuente programa de instalación | wallesis | OOP | 2 | 08-10-2004 10:11:07 |
|