Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: adan-2994 en 3 Agosto 2011, 21:26 PM

Título: Ayuda a leer y modificar Bytes de un Archivo
Publicado por: adan-2994 en 3 Agosto 2011, 21:26 PM
Saludos

He estado practikando algo cn VB NET y logre modificar los bytes de un archivo por los que yo quise
(&HFF a todos los bytes del archivo, despues lo elimino http://www.elguille.info/colabora/2008/lobosoft_Borrado_Seguro.htm)

bueno pues con ese metodo logro borrar un archivo de manera segura, sobreEscribiendo el valor que tiene por otro y despues eliminandolo.

Lo que yo busko es cifrar el archivo
Por ejemplo
Obtener los  Bytes de el archivo ciframe.txt
Luego a esos agregarle o editarle algunos para que de esa manera el archivo quede distinto
Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original

Por donde puedo empezar
Título: Re: Ayuda a leer y modificar Bytes de un Archivo
Publicado por: Keyen Night en 4 Agosto 2011, 05:02 AM
Al principio parece del tema parece que lo que quieres hacer es una utilidad para borrado seguro de datos pero luego me confundes con ese "Por Ejemplo"

"Obtener los  Bytes de el archivo ciframe.txt
Luego a esos agregarle o editarle algunos para que de esa manera el archivo quede distinto
Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"


Si estás borrando los datos de forma segura se supone que es para no recuperarlos jamás entonces por qué dices?:

"Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"
Título: Re: Ayuda a leer y modificar Bytes de un Archivo
Publicado por: adan-2994 en 5 Agosto 2011, 19:17 PM
Cita de: Keyen Night en  4 Agosto 2011, 05:02 AM
Si estás borrando los datos de forma seguro se supone que es para no recuperar los jamás entonces por que dices:

"Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"

si , mira estaba haciendo la aplikacion para un borrado seguro (lo cual ya lo hize),
pero luego pense que si pudiera cambiar los bytes de un archivo (sabiendo el orden de estos)
Podria cifrarlo
http://en.pudn.com/downloads82/sourcecode/windows/dotnet/detail316414_en.html

bueno pero para no confundirlos mas, lo que quiero lograr es leer los bytes del archivo uno por uno  (hasta hora se obtener la cantidad de bytes por FileInfo (http://msdn.microsoft.com/es-es/library/system.io.fileinfo.aspx))


Título: Re: Ayuda a leer y modificar Bytes de un Archivo
Publicado por: Keyen Night en 5 Agosto 2011, 19:56 PM
Entiendo usa Rijndael, AES o cualquiera de estos algorítmos, las clases ya están hechas en System.Security.Cryptography y todos funcionan igual, la forma de leer los archivos byte a byte o en array de byte() es System.IO.Stream Aquí te traigo un ejemplo de una función de la Clase Rijndael que hice cuando la necesite:

Este es un ejemplo muy básico tendrás que editarlo un poco porque yo me salte el vector de inicialización usando el MD5 de la llave y otras configuraciones las deje por defecto, te coloco el código como ejemplo porque lo tengo a la mano pero al menos tomate la molestía de ver como funciona :silbar:

Código (vb.net) [Seleccionar]
#Region " Algoritmo Rijndael "

        Public Function MD5(ByVal InputStr As String) As String
            Dim MD5_Hasher As Cryptography.MD5 = Cryptography.MD5.Create()

            Dim [DATA] As Byte() = MD5_Hasher.ComputeHash(Encoding.Default.GetBytes(InputStr))
            Dim StrBuild As New StringBuilder()

            For x As Integer = 0 To ([DATA].Length - 1)
                StrBuild.Append([DATA](x).ToString("x2"))
            Next

            Return StrBuild.ToString()
        End Function

        Public Enum RijndaelAction
            Crypt
            Decrypt
        End Enum

        Public Function Rijndael(ByVal [Data] As Byte(), ByVal Key As Byte(), ByVal Action As RijndaelAction) As Byte()
            Rijndael = New Byte() {}

                Dim R As [Rijndael] = Cryptography.Rijndael.Create

                With Encoding.Default

                    R.Key = Key
                    R.IV = .GetBytes(MD5(.GetString(R.Key)).Substring(0, 16))

                    Dim ResultStream As New MemoryStream

                    Dim CryptStream As CryptoStream = Nothing

                    Select Case Action
                        Case RijndaelAction.Crypt
                            CryptStream = New CryptoStream(ResultStream, R.CreateEncryptor, CryptoStreamMode.Write)
                        Case RijndaelAction.Decrypt
                            CryptStream = New CryptoStream(ResultStream, R.CreateDecryptor, CryptoStreamMode.Write)
                    End Select

                    CryptStream.Write([Data], 0, [Data].Length)

                    CryptStream.FlushFinalBlock()

                    Return ResultStream.ToArray

                End With

        End Function

#End Region
Título: Re: Ayuda a leer y modificar Bytes de un Archivo
Publicado por: adan-2994 en 7 Agosto 2011, 02:52 AM
Mucissimas gracias por la molestia que te tomaste en ayudarme
el codigo lo estoy estudiando.