Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Segurida en 8 Mayo 2011, 21:52 PM

Título: [Solucionado] Obtener código MD5 Checksum de un proceso abierto
Publicado por: Segurida en 8 Mayo 2011, 21:52 PM
Pues eso, necesito saber el método para obtener el código MD5 Checksum de un proceso abierto, de cualquier proceso, sin necesidad de cerrarlo, aquí dejo el código para los que necesiten obtener el código MD5 Checksum de un archivo:
Código (vbnet) [Seleccionar]

' Para que este código funcione "tal cual está" necesitas:
' Form1 y dentro TextBox1 (multilínea activado)

Imports System.IO
Imports System.Text
Imports System.Security.Cryptography

Public Class Form1
   Protected Function MD5Checksum(ByVal fileName As String) As String
       Dim file As New FileStream(fileName, FileMode.Open)
       Dim md5 As MD5 = New MD5CryptoServiceProvider()
       Dim retVal As Byte() = md5.ComputeHash(file)
       file.Close()

       Dim sb As New StringBuilder()
       For i As Integer = 0 To retVal.Length - 1
           sb.Append(retVal(i).ToString("x2"))
       Next
       Return sb.ToString()
   End Function

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       TextBox1.Text = MD5Checksum("C:\imagen1.jpg").ToString + vbCrLf + MD5Checksum("C:\imagen1 - copia.jpg").ToString
   End Sub
End Class

Este código puede ser muy útil, lo comparto con todo el que lo necesite  ;)
Si alguien sabe hacer lo que pido, por favor que avise, he probado a poner la ruta de un proceso .exe que se esté ejecutando, y da error, si alguien sabe cómo hacerlo sin cerrar dicho proceso, se los agradezco.
saludos.
Título: Re: Obtener código MD5 Checksum de un proceso abierto
Publicado por: seba123neo en 8 Mayo 2011, 22:17 PM
Hola, proba esto, a mi me funciona bien.

Código (vbnet) [Seleccionar]
Imports System.IO

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MsgBox(ObtenerHashProceso("C:\Archivos de programa\Mozilla Firefox\firefox.exe", Security.Cryptography.MD5.Create))
    End Sub

    Public Shared Function ObtenerHashProceso(ByVal pPath As String, ByVal pTipoHash As Security.Cryptography.HashAlgorithm) As String
        Dim vHASH As String

        Dim vStream As FileStream = File.OpenRead(pPath)

        Dim vArrHash As Byte() = pTipoHash.ComputeHash(vStream)

        vHASH = BitConverter.ToString(vArrHash).Replace("-", "")

        vStream.Close()

        Return vHASH
    End Function
End Class


saludos.
Título: Re: Obtener código MD5 Checksum de un proceso abierto [Tema resuelto]
Publicado por: Segurida en 8 Mayo 2011, 22:24 PM
Muchas gracias, funciona perfecto, mil gracias  :)
Tema resuelto.