Código
Dim x As New FileStream("C:\Ejecutable.exe", FileMode.Open) Dim y As New StreamReader(x, Encoding.Default) Dim z As New StreamWriter(New FileStream("C:\Ejecutable_Out.exe", FileMode.CreateNew), Encoding.Default) While Not y.EndOfStream z.WriteLine(EncryptByKey(y.ReadLine, "Ejemplo")) End While x.Close() y.Close() z.Close() ''''' LUEGO ''''' Dim x As New FileStream("C:\Ejecutable_Out.exe", FileMode.Open) Dim y As New StreamReader(x, Encoding.Default) Dim z As New StreamWriter(New FileStream("C:\Ejecutable_Out2.exe", FileMode.CreateNew), Encoding.Default) While Not y.EndOfStream z.WriteLine(DencryptByKey(y.ReadLine, "Ejemplo")) End While x.Close() y.Close() z.Close()
Bueno entonces basicamente abre un archivo ejecutable y lo va leyendo mientras va guardando en otro archivo solo que pasado por EncriptByKey una funcion que usa llaves para cifrar Strings, en este caso la llave "Ejemplo", y luego abre el archivo que escribimos anteriormente y hace lo mismo solo que al contrario, todo transcurre bien, incluso abro los 2 archivos con Notepad++ y "parecen ser" exactamente iguales (el original y el que se cifro y descifro), pero al verles el peso el que se proceso es ligeramente más grande que el original y obviamente el que escribimos está corrupto, algún problema con los Stream o con el Encoding?, o tengo otra forma de leer los archivos binarios como los ejecutable, pero aún en texto plano?
Pd: Bueno tambien debo resaltar que el problema no viene de las funciones para cifrar ya que sin usar las funciones tambien el archivo sale igual más grande, corrupto pero aparemente igual.
Gracias.