Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Dio_Fuby en 23 Octubre 2014, 23:51 pm



Título: Ayuda tengo el codigo y quiero hacer un keygen
Publicado por: Dio_Fuby en 23 Octubre 2014, 23:51 pm
Lo que deseo es con el codigo escrito es hacer un keygen para crear un codigo de activacion. Como el de la imagen. El numero de maquina es el codigo ISATAP de la Tarjeta de Red y como se sabe es unico para cada Pc, entonces ese codigo es el que lo cifra y como resultado debe darme el codigo de activacion.



(http://imageshack.com/a/img537/8380/2F1SsG.jpg)





Código:
[color=green]Public Function EncriptarCadena(ByVal cadena As String) As String[/color]
    Dim str As String
    Dim num4 As Integer
    Try
        Dim str2 As String
        Dim num5 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num3 As Integer = 2
    Label_0009:
        num5 = 2
        Dim num2 As Integer = Strings.Len(cadena)
        Dim num As Integer = 1
        goto Label_003E
    Label_0017:
        num5 = 3
        str2 = (str2 & Me.EncriptarCaracter(Strings.Mid(cadena, num, 1), Strings.Len(cadena), num))
    Label_0036:
        num5 = 4
        num += 1
    Label_003E:
        If (num <= num2) Then
            goto Label_0017
        End If
    Label_0046:
        num5 = 5
        str = str2
        goto Label_010F
    Label_0053:
        num5 = 7
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_0068:
        num5 = 8
        ProjectData.ClearProjectError
        If (num4 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_008E:
        num4 = 0
        Select Case (num4 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0009
            Case 3
                goto Label_0017
            Case 4
                goto Label_0036
            Case 5
                goto Label_0046
            Case 6, 9
                goto Label_010F
            Case 7
                goto Label_0053
            Case 8
                goto Label_0068
            Case Else
                goto Label_0104
        End Select
    Label_00C0:
        num4 = num5
        Select Case If((num3 > -2), num3, 1)
            Case 0
                goto Label_0104
            Case 1
                goto Label_008E
            Case 2
                goto Label_0053
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_00C0
    End Try
Label_0104:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_010F:
    If (num4 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str
End Function

[color=green]Private Function EncriptarCaracter(ByVal caracter As String, ByVal variable As Integer, ByVal a_indice As Integer) As String[/color]
    Dim str2 As String
    Dim num3 As Integer
    Try
        Dim num4 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num2 As Integer = 2
    Label_0008:
        num4 = 2
        If (Strings.InStr(Me.patron_busqueda, caracter, CompareMethod.Binary) = 0) Then
            goto Label_0068
        End If
    Label_0024:
        num4 = 3
        Dim start As Integer = (((Strings.InStr(Me.patron_busqueda, caracter, CompareMethod.Binary) + variable) + a_indice) Mod Strings.Len(Me.patron_busqueda))
    Label_0045:
        num4 = 4
        If (start = 0) Then
            goto Label_0068
        End If
    Label_0055:
        num4 = 5
        Dim str As String = Strings.Mid(Me.Patron_encripta, start, 1)
    Label_0068:
        num4 = 8
        str2 = str
        goto Label_013C
    Label_0075:
        num4 = 10
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_008B:
        num4 = 11
        ProjectData.ClearProjectError
        If (num3 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_00B2:
        num3 = 0
        Select Case (num3 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0008
            Case 3
                goto Label_0024
            Case 4
                goto Label_0045
            Case 5
                goto Label_0055
            Case 6, 7, 8
                goto Label_0068
            Case 9, 12
                goto Label_013C
            Case 10
                goto Label_0075
            Case 11
                goto Label_008B
            Case Else
                goto Label_0131
        End Select
    Label_00F0:
        num3 = num4
        Select Case If((num2 > -2), num2, 1)
            Case 0
                goto Label_0131
            Case 1
                goto Label_00B2
            Case 2
                goto Label_0075
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_00F0
    End Try
Label_0131:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_013C:
    If (num3 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str2
End Function 

[color=green]Private Function GeneradorClave(ByVal strSerie As String, ByVal strNumeroMaquina As String) As String[/color]
    Dim str As String
    Dim num2 As Integer
    Try
        Dim num3 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num As Integer = 2
    Label_0008:
        num3 = 2
        Me.patron_busqueda = "FWDXV8ZIJRKY6ÑUT95A1Q23C4SM0BNRELGOPH7"
    Label_0015:
        num3 = 3
        Me.Patron_encripta = "LKVCÑRXI1E3TY58GR6PAQ4JUZ2HNDO79MSBWF0"
    Label_0022:
        num3 = 4
        str = Me.EncriptarCadena((strSerie & strNumeroMaquina))
        goto Label_00E3
    Label_003A:
        num3 = 6
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_004E:
        num3 = 7
        ProjectData.ClearProjectError
        If (num2 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_006D:
        num2 = 0
        Select Case (num2 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0008
            Case 3
                goto Label_0015
            Case 4
                goto Label_0022
            Case 5, 8
                goto Label_00E3
            Case 6
                goto Label_003A
            Case 7
                goto Label_004E
            Case Else
                goto Label_00D8
        End Select
    Label_009A:
        num2 = num3
        Select Case If((num > -2), num, 1)
            Case 0
                goto Label_00D8
            Case 1
                goto Label_006D
            Case 2
                goto Label_003A
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_009A
    End Try
Label_00D8:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_00E3:
    If (num2 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str
End Function

[color=green]Public Function DesEncriptarCadena(ByVal cadena As String) As String[/color]
    Dim str2 As String
    Dim num2 As Integer = Strings.Len(cadena)
    Dim i As Integer = 1
    Do While (i <= num2)
        str2 = (str2 & Me.DesEncriptarCaracter(Strings.Mid(cadena, i, 1), Strings.Len(cadena), i))
        i += 1
    Loop
    Return str2
End Function

[color=green]Private Function DesEncriptarCaracter(ByVal caracter As String, ByVal variable As Integer, ByVal a_indice As Integer) As String[/color]
    Dim num As Integer
    If (Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) = 0) Then
        Return caracter
    End If
    If (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) > 0) Then
        num = (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) Mod Strings.Len(Me.Patron_encripta))
    Else
        num = (Strings.Len(Me.patron_busqueda) + (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) Mod Strings.Len(Me.Patron_encripta)))
    End If
    num = (num Mod Strings.Len(Me.Patron_encripta))
    Return Strings.Mid(Me.patron_busqueda, num, 1)
End Function


Título: Re: Ayuda tengo el codigo y quiero hacer un keygen
Publicado por: engel lex en 24 Octubre 2014, 02:44 am
hola, si quieres ayuda, te recomiendo lo siguiente
primero, por favor usa las etiquetas GeSHi para publicar codigo, modifica el tema y usa la etiqueta

segundo, se claro con tu  tema, solo veo que dejas un codigo y listo, pero no  se entiende tu solicitud


Título: Re: Ayuda tengo el codigo y quiero hacer un keygen
Publicado por: Dio_Fuby en 24 Octubre 2014, 03:01 am
Lo que deseo es con el codigo escrito es hacer un keygen para crear un codigo de activacion. Como el de la imagen. El numero de maquina es el codigo ISATAP de la Tarjeta de Red y como se sabe es unico para cada Pc, entonces ese codigo es el que lo cifra y como resultado debe darme el codigo de activacion.



(http://imageshack.com/a/img537/8380/2F1SsG.jpg)





Código:
[color=green]Public Function EncriptarCadena(ByVal cadena As String) As String[/color]
    Dim str As String
    Dim num4 As Integer
    Try
        Dim str2 As String
        Dim num5 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num3 As Integer = 2
    Label_0009:
        num5 = 2
        Dim num2 As Integer = Strings.Len(cadena)
        Dim num As Integer = 1
        goto Label_003E
    Label_0017:
        num5 = 3
        str2 = (str2 & Me.EncriptarCaracter(Strings.Mid(cadena, num, 1), Strings.Len(cadena), num))
    Label_0036:
        num5 = 4
        num += 1
    Label_003E:
        If (num <= num2) Then
            goto Label_0017
        End If
    Label_0046:
        num5 = 5
        str = str2
        goto Label_010F
    Label_0053:
        num5 = 7
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_0068:
        num5 = 8
        ProjectData.ClearProjectError
        If (num4 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_008E:
        num4 = 0
        Select Case (num4 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0009
            Case 3
                goto Label_0017
            Case 4
                goto Label_0036
            Case 5
                goto Label_0046
            Case 6, 9
                goto Label_010F
            Case 7
                goto Label_0053
            Case 8
                goto Label_0068
            Case Else
                goto Label_0104
        End Select
    Label_00C0:
        num4 = num5
        Select Case If((num3 > -2), num3, 1)
            Case 0
                goto Label_0104
            Case 1
                goto Label_008E
            Case 2
                goto Label_0053
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_00C0
    End Try
Label_0104:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_010F:
    If (num4 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str
End Function

[color=green]Private Function EncriptarCaracter(ByVal caracter As String, ByVal variable As Integer, ByVal a_indice As Integer) As String[/color]
    Dim str2 As String
    Dim num3 As Integer
    Try
        Dim num4 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num2 As Integer = 2
    Label_0008:
        num4 = 2
        If (Strings.InStr(Me.patron_busqueda, caracter, CompareMethod.Binary) = 0) Then
            goto Label_0068
        End If
    Label_0024:
        num4 = 3
        Dim start As Integer = (((Strings.InStr(Me.patron_busqueda, caracter, CompareMethod.Binary) + variable) + a_indice) Mod Strings.Len(Me.patron_busqueda))
    Label_0045:
        num4 = 4
        If (start = 0) Then
            goto Label_0068
        End If
    Label_0055:
        num4 = 5
        Dim str As String = Strings.Mid(Me.Patron_encripta, start, 1)
    Label_0068:
        num4 = 8
        str2 = str
        goto Label_013C
    Label_0075:
        num4 = 10
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_008B:
        num4 = 11
        ProjectData.ClearProjectError
        If (num3 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_00B2:
        num3 = 0
        Select Case (num3 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0008
            Case 3
                goto Label_0024
            Case 4
                goto Label_0045
            Case 5
                goto Label_0055
            Case 6, 7, 8
                goto Label_0068
            Case 9, 12
                goto Label_013C
            Case 10
                goto Label_0075
            Case 11
                goto Label_008B
            Case Else
                goto Label_0131
        End Select
    Label_00F0:
        num3 = num4
        Select Case If((num2 > -2), num2, 1)
            Case 0
                goto Label_0131
            Case 1
                goto Label_00B2
            Case 2
                goto Label_0075
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_00F0
    End Try
Label_0131:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_013C:
    If (num3 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str2
End Function 

[color=green]Private Function GeneradorClave(ByVal strSerie As String, ByVal strNumeroMaquina As String) As String[/color]
    Dim str As String
    Dim num2 As Integer
    Try
        Dim num3 As Integer
    Label_0001:
        ProjectData.ClearProjectError
        Dim num As Integer = 2
    Label_0008:
        num3 = 2
        Me.patron_busqueda = "FWDXV8ZIJRKY6ÑUT95A1Q23C4SM0BNRELGOPH7"
    Label_0015:
        num3 = 3
        Me.Patron_encripta = "LKVCÑRXI1E3TY58GR6PAQ4JUZ2HNDO79MSBWF0"
    Label_0022:
        num3 = 4
        str = Me.EncriptarCadena((strSerie & strNumeroMaquina))
        goto Label_00E3
    Label_003A:
        num3 = 6
        Interaction.MsgBox(Information.Err.Description, MsgBoxStyle.ApplicationModal, Nothing)
    Label_004E:
        num3 = 7
        ProjectData.ClearProjectError
        If (num2 = 0) Then
            Throw ProjectData.CreateProjectError(-2146828268)
        End If
    Label_006D:
        num2 = 0
        Select Case (num2 + 1)
            Case 1
                goto Label_0001
            Case 2
                goto Label_0008
            Case 3
                goto Label_0015
            Case 4
                goto Label_0022
            Case 5, 8
                goto Label_00E3
            Case 6
                goto Label_003A
            Case 7
                goto Label_004E
            Case Else
                goto Label_00D8
        End Select
    Label_009A:
        num2 = num3
        Select Case If((num > -2), num, 1)
            Case 0
                goto Label_00D8
            Case 1
                goto Label_006D
            Case 2
                goto Label_003A
        End Select
    Catch obj1 As Object When (?)
        ProjectData.SetProjectError(DirectCast(obj1, Exception))
        goto Label_009A
    End Try
Label_00D8:
    Throw ProjectData.CreateProjectError(-2146828237)
Label_00E3:
    If (num2 <> 0) Then
        ProjectData.ClearProjectError
    End If
    Return str
End Function

[color=green]Public Function DesEncriptarCadena(ByVal cadena As String) As String[/color]
    Dim str2 As String
    Dim num2 As Integer = Strings.Len(cadena)
    Dim i As Integer = 1
    Do While (i <= num2)
        str2 = (str2 & Me.DesEncriptarCaracter(Strings.Mid(cadena, i, 1), Strings.Len(cadena), i))
        i += 1
    Loop
    Return str2
End Function

[color=green]Private Function DesEncriptarCaracter(ByVal caracter As String, ByVal variable As Integer, ByVal a_indice As Integer) As String[/color]
    Dim num As Integer
    If (Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) = 0) Then
        Return caracter
    End If
    If (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) > 0) Then
        num = (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) Mod Strings.Len(Me.Patron_encripta))
    Else
        num = (Strings.Len(Me.patron_busqueda) + (((Strings.InStr(Me.Patron_encripta, caracter, CompareMethod.Binary) - variable) - a_indice) Mod Strings.Len(Me.Patron_encripta)))
    End If
    num = (num Mod Strings.Len(Me.Patron_encripta))
    Return Strings.Mid(Me.patron_busqueda, num, 1)
End Function


Título: Re: Ayuda tengo el codigo y quiero hacer un keygen
Publicado por: MCKSys Argentina en 24 Octubre 2014, 03:23 am
Lo que deseo es con el codigo escrito es hacer un keygen para crear un codigo de activacion. Como el de la imagen. El numero de maquina es el codigo ISATAP de la Tarjeta de Red y como se sabe es unico para cada Pc, entonces ese codigo es el que lo cifra y como resultado debe darme el codigo de activacion.

Para hacer un keygen, primero debes entender lo que hace el codigo.
Luego, dependiendo de cómo compruebe el codigo el serial ingresado, deberás hacer "lo opuesto" a lo que hace el codigo; o bien, hacer lo mismo a fin de generar un serial correcto.

Una vez que tiene el algoritmo, usas el lenguaje que quieras para codear un keygen.

Teniendo el código fuente que comprueba el serial, laa tarea se hace mucho más fácil.

Saludos!