Resumen: necesitaba encontrar un serial para un programa d sms, utilicé el olly y otras herramientas pero el problema es que en todas las herramientas, a escepcion de una, me lanzaba un problema con el windows y el programa dejaba de funcionar... bueno la cosa esque por ahi me encontre una herramienta que se llama dis# que te trae el codigo c# o .net del programa, buscando entre las funciones y las clases del programa creo que le di a la parte del codigo que hace lo del serial, el problema esque cm no soy muy experto en .net queria ver si me podrian dar una ayuda con este codigo:
Public Function b(ByVal A_0 As String) As Boolean
Dim flag2 As Boolean
If (A_0) Is Nothing Then
Return False
End If
Try
Dim asciiencoding1 As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding
Dim i1 As Integer = A_0.LastIndexOf(","c) ' Ultimo registro de la ultima coma, osea i1 va a valer 32
If i1 < 1 Then
Return False
End If
Dim s1 As String = A_0.Substring(i1 + 1)
Dim s2 As String = A_0.Substring(0, i1).ToUpper(System.Globalization.CultureInfo.InvariantCulture)
Dim sha1CryptoServiceProvider1 As System.Security.Cryptography.SHA1CryptoServiceProvider = New System.Security.Cryptography.SHA1CryptoServiceProvider
sha1CryptoServiceProvider1.ComputeHash(i(s1.Substring(0, s1.Length - 8)))
Dim md5CryptoServiceProvider1 As System.Security.Cryptography.MD5CryptoServiceProvider = New System.Security.Cryptography.MD5CryptoServiceProvider
md5CryptoServiceProvider1.ComputeHash(asciiencoding1.GetBytes(asciiencoding1.GetString(System.Convert.FromBase64String("cGFQUjFrYSA=")) + s2))
Dim bArr1 As Byte() = i(s1.Substring((s1.Length) - &HC))
Dim bArr3 As Byte() = New Byte() {md5CryptoServiceProvider1.Hash(md5CryptoServiceProvider1.Hash.Length - 2), md5CryptoServiceProvider1.Hash(md5CryptoServiceProvider1.Hash.Length - 1), sha1CryptoServiceProvider1.Hash(sha1CryptoServiceProvider1.Hash.Length - 4), sha1CryptoServiceProvider1.Hash(sha1CryptoServiceProvider1.Hash.Length - 3), sha1CryptoServiceProvider1.Hash(sha1CryptoServiceProvider1.Hash.Length - 2), sha1CryptoServiceProvider1.Hash(sha1CryptoServiceProvider1.Hash.Length - 1)}
Dim bArr2 As Byte() = bArr3
Dim flag1 As Boolean = False
If bArr1.Length = bArr2.Length Then
Dim i2 As Integer = 0
While (i2 < bArr2.Length) AndAlso (bArr1(i2) = bArr2(i2))
i2 = i2 + 1
End While
If i2 = bArr2.Length Then
flag1 = True
End If
End If
flag2 = flag1
Catch
flag2 = False
End Try
Return flag2
End Function
Y aqui esta la otra parte
Public Function i(ByVal A_0 As String) As Byte()
If (A_0.Length Mod 2) = 1 Then
A_0 = "0" + A_0
End If
Dim bArr1 As Byte() = New Byte((A_0.Length / 2)) {}
Dim i1 As Integer = 0
While i1 < bArr1.Length
Dim ch1 As Char = A_0(2 * i1)
Dim ch2 As Char = A_0((2 * i1) + 1)
Dim parse1 As String = System.Byte.Parse(ch1.ToString() + ch2.ToString(), System.Globalization.NumberStyles.HexNumber)
bArr1(i1) = System.Byte.Parse(ch1.ToString() + ch2.ToString(), System.Globalization.NumberStyles.HexNumber) '
i1 = i1 + 1
End While
Return bArr1
End Function
dis te puede ayudar a encontrar el lugar , pero otras tools pueden fishear o encontrar como funciona esa parte, .net es un tema complejo, intenta revisar los escritos de Indulgeo en cracklatinos y otros de .net , seguro encontraras el programa indicado para lo que buscas.
pd:hay reflector, reflexil, hay mxas otras somo SAE(simple assembler explorer) que te pueden ayudar ahora con lo que sigue, hasta calimero existe...