Reto a crear keygen a este algoritmo hecho en vb.net

Iniciado por napstero, 1 Abril 2013, 22:39 PM

0 Miembros y 2 Visitantes están viendo este tema.

napstero

Muy buenas recurro a ustedes para que me orienten en esta comprobacion del serial echa en vb.net , ise algunos mas faciles pero este es un reto mayor asi que necesito el primer paso, asi que veamos que tiene ese jodido codigo:


Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Public NotInheritable Class FormRegistration
   Inherits Form
   ' Methods
   Public Sub New()
       Me.InitializeComponent
       If GClass1.bool_3 Then
           Me.textBox4.Text = "REGISTERED"
           Me.textBox4.ForeColor = Color.Green
           Me.tbSerial.ReadOnly = True
           Me.tbSerial.Text = GClass17.smethod_2
           Me.buttonActivate.Enabled = False
       End If
   End Sub

   Private Sub buttonActivate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles buttonActivate.Click
       GClass23.smethod_6.Replace("5", "-")
       Dim str As String = GClass23.smethod_12(GClass1.string_3, Me.tbSerial.Text)
       If GClass16.smethod_13(String.Empty, str).StartsWith(str) Then
           GClass17.smethod_3(Me.tbSerial.Text)
           MyBase.DialogResult = DialogResult.OK
       Else
           MessageBox.Show("Invalid License Key!", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Hand)
           MyBase.DialogResult = DialogResult.None
       End If
   End Sub

   Private Sub buttonExit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button Exit .Click
   End Sub

   Protected Overrides Sub Dispose(ByVal disposing As Boolean)
       If (disposing AndAlso (Not Me.icontainer_0 Is Nothing)) Then
           Me.icontainer_0.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub

   Private Sub FormRegistration_Shown(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Shown
       Dim str As String = GClass1.string_3
       Dim buffer As Byte() = GClass23.smethod_2(str)
       Dim i As Integer
       For i = 0 To buffer.Length - 1
           buffer(i) = CByte((buffer(i) Xor &H31))
           str = (str & GClass23.smethod_0(buffer(i)))
           Select Case i
               Case 5, 9, 14
                   str = (str & "-")
                   Exit Select
           End Select
       Next i
       Me.tbKey.Text = str.Substring((buffer.Length * 2))
   End Sub

   Private Sub InitializeComponent()
       Me.panel1 = New System.Windows.Forms.Panel
       Me.buttonExit = New System.Windows.Forms.Button
       Me.textBox4 = New System.Windows.Forms.TextBox
       Me.panel2 = New System.Windows.Forms.Panel
       Me.textBox3 = New System.Windows.Forms.TextBox
       Me.buttonActivate = New System.Windows.Forms.Button
       Me.label2 = New System.Windows.Forms.Label
       Me.label1 = New System.Windows.Forms.Label
       Me.tbSerial = New System.Windows.Forms.TextBox
       Me.tbKey = New System.Windows.Forms.TextBox
       Me.panel1.SuspendLayout()
       Me.SuspendLayout()
       '
       'panel1
       '
       Me.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
       Me.panel1.Controls.Add(Me.buttonExit)
       Me.panel1.Controls.Add(Me.textBox4)
       Me.panel1.Controls.Add(Me.panel2)
       Me.panel1.Controls.Add(Me.textBox3)
       Me.panel1.Controls.Add(Me.buttonActivate)
       Me.panel1.Controls.Add(Me.label2)
       Me.panel1.Controls.Add(Me.label1)
       Me.panel1.Controls.Add(Me.tbSerial)
       Me.panel1.Controls.Add(Me.tbKey)
       Me.panel1.Location = New System.Drawing.Point(12, 12)
       Me.panel1.Name = "panel1"
       Me.panel1.Size = New System.Drawing.Size(424, 322)
       Me.panel1.TabIndex = 0
       '
       'buttonExit
       '
       Me.buttonExit.DialogResult = System.Windows.Forms.DialogResult.Cancel
       Me.buttonExit.Location = New System.Drawing.Point(322, 283)
       Me.buttonExit.Name = "buttonExit"
       Me.buttonExit.Size = New System.Drawing.Size(87, 27)
       Me.buttonExit.TabIndex = 24
       Me.buttonExit.Text = "Exit"
       Me.buttonExit.UseVisualStyleBackColor = True
       '
       'textBox4
       '
       Me.textBox4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                   Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
       Me.textBox4.BackColor = System.Drawing.Color.White
       Me.textBox4.BorderStyle = System.Windows.Forms.BorderStyle.None
       Me.textBox4.Enabled = False
       Me.textBox4.Font = New System.Drawing.Font("Arial", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
       Me.textBox4.ForeColor = System.Drawing.Color.Red
       Me.textBox4.Location = New System.Drawing.Point(3, 89)
       Me.textBox4.Multiline = True
       Me.textBox4.Name = "textBox4"
       Me.textBox4.ReadOnly = True
       Me.textBox4.Size = New System.Drawing.Size(416, 30)
       Me.textBox4.TabIndex = 23
       Me.textBox4.Text = "UNREGISTERED"
       Me.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
       '
       'panel2
       '
       Me.panel2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
                   Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
       Me.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
       Me.panel2.Location = New System.Drawing.Point(3, 3)
       Me.panel2.Name = "panel2"
       Me.panel2.Size = New System.Drawing.Size(416, 78)
       Me.panel2.TabIndex = 21
       '
       'textBox3
       '
       Me.textBox3.BackColor = System.Drawing.Color.White
       Me.textBox3.BorderStyle = System.Windows.Forms.BorderStyle.None
       Me.textBox3.Enabled = False
       Me.textBox3.Location = New System.Drawing.Point(16, 168)
       Me.textBox3.Multiline = True
       Me.textBox3.Name = "textBox3"
       Me.textBox3.ReadOnly = True
       Me.textBox3.Size = New System.Drawing.Size(393, 81)
       Me.textBox3.TabIndex = 6
       Me.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
       '
       'buttonActivate
       '
       Me.buttonActivate.Location = New System.Drawing.Point(168, 283)
       Me.buttonActivate.Name = "buttonActivate"
       Me.buttonActivate.Size = New System.Drawing.Size(87, 27)
       Me.buttonActivate.TabIndex = 4
       Me.buttonActivate.Text = "Activate"
       Me.buttonActivate.UseVisualStyleBackColor = True
       '
       'label2
       '
       Me.label2.AutoSize = True
       Me.label2.Location = New System.Drawing.Point(13, 258)
       Me.label2.Name = "label2"
       Me.label2.Size = New System.Drawing.Size(65, 13)
       Me.label2.TabIndex = 3
       Me.label2.Text = "License Key"
       '
       'label1
       '
       Me.label1.AutoSize = True
       Me.label1.Location = New System.Drawing.Point(13, 132)
       Me.label1.Name = "label1"
       Me.label1.Size = New System.Drawing.Size(74, 13)
       Me.label1.TabIndex = 2
       Me.label1.Text = "Hardware Key"
       '
       'tbSerial
       '
       Me.tbSerial.Location = New System.Drawing.Point(116, 255)
       Me.tbSerial.Name = "tbSerial"
       Me.tbSerial.Size = New System.Drawing.Size(293, 20)
       Me.tbSerial.TabIndex = 1
       '
       'tbKey
       '
       Me.tbKey.Location = New System.Drawing.Point(116, 129)
       Me.tbKey.Name = "tbKey"
       Me.tbKey.ReadOnly = True
       Me.tbKey.Size = New System.Drawing.Size(293, 20)
       Me.tbKey.TabIndex = 0
       '
       'FormRegistration
       '
       Me.AcceptButton = Me.buttonActivate
       Me.BackColor = System.Drawing.Color.White
       Me.CancelButton = Me.buttonExit
       Me.ClientSize = New System.Drawing.Size(448, 346)
       Me.Controls.Add(Me.panel1)
       Me.MaximizeBox = False
       Me.MinimizeBox = False
       Me.Name = "FormRegistration"
       Me.ShowIcon = False
       Me.ShowInTaskbar = False
       Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
       Me.Text = "Registration"
       Me.panel1.ResumeLayout(False)
       Me.panel1.PerformLayout()
       Me.ResumeLayout(False)

   End Sub


   ' Fields
   Private buttonActivate As Button
   Private buttonExit As Button
   Private icontainer_0 As IContainer
   Private label1 As Label
   Private label2 As Label
   Private panel1 As Panel
   Private panel2 As Panel
   Private tbKey As TextBox
   Private tbSerial As TextBox
   Private textBox3 As TextBox
   Private textBox4 As TextBox

   Private Sub tbSerial_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbSerial.TextChanged

MCKSys Argentina

Por lo que haz puesto deduzco que falta código.

Como primera medida, podrías analizar qué está pasando con la variable GClass1.bool_3.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


napstero

se me habia olvidado
Imports System
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.IO
Imports System.Text

Public Class GClass1
    ' Methods
    Public Shared Function smethod_0() As GClass0
        If (GClass1.list_0.Count < (GClass1.int_4 + 1)) Then
            Return Nothing
        End If
        Return GClass1.list_0.Item(GClass1.int_4)
    End Function

    Public Shared Function smethod_1() As Integer
        Return CInt(GClass1.stopwatch_0.ElapsedMilliseconds)
    End Function

    Public Shared Sub smethod_2(ByVal string_4 As String, ByVal int_5 As Integer)
        If (((int_5 = 2) OrElse (int_5 = 3)) OrElse ((int_5 = 4) OrElse (int_5 = 5))) Then
            GClass1.stringBuilder_0.Append((string_4 & Environment.NewLine))
            GClass1.stringBuilder_1.Append((string_4 & Environment.NewLine))
        End If
    End Sub

    Public Shared Sub smethod_3()
        GClass1.stringBuilder_1 = New StringBuilder
    End Sub

    Public Shared Function smethod_4() As String
        Return GClass1.stringBuilder_0.ToString
    End Function

    Public Shared Sub smethod_5()
        If ((GClass1.stringBuilder_1.Length >= 5) AndAlso GClass1.bool_3) Then
            Dim now As DateTime = DateTime.Now
            Try
                Dim writer As New StreamWriter((GClass17.smethod_14 & "\FESLog_" & now.ToString("yyyyMMddHHmmss") & ".txt"))
                writer.Write(GClass1.stringBuilder_1.ToString)
                writer.Close
            Catch exception1 As Exception
            End Try
        End If
    End Sub

    Public Shared Sub smethod_6()
    End Sub


    ' Fields
    Public Shared bool_0 As Boolean = False
    Public Shared bool_1 As Boolean = False
    Public Shared bool_2 As Boolean = False
    Public Shared bool_3 As Boolean = False
    Public Shared bool_4 As Boolean = False
    Public Shared formNotify_0 As FormNotify = Nothing
    Public Shared int_0 As Integer() = New Integer() { &HBB8, &H7D0, &H3E8, 750, 600, 500, 300, 200, 100 }
    Public Shared int_1 As Integer = 0
    Public Shared int_2 As Integer = 500
    Public Shared int_3 As Integer = 0
    Public Shared int_4 As Integer = 0
    Public Shared list_0 As List(Of GClass0) = New List(Of GClass0)
    Public Shared stopwatch_0 As Stopwatch
    Public Shared string_0 As String() = New String() { "20/min", "30/min", "60/min", "80/min", "100/min", "120/min", "200/min", "300/min", "600/min" }
    Public Shared string_1 As String = String.Empty
    Public Shared string_2 As String = String.Empty
    Public Shared string_3 As String = "74126-E079B-627D07"
    Private Shared stringBuilder_0 As StringBuilder = New StringBuilder
    Private Shared stringBuilder_1 As StringBuilder = New StringBuilder
End Class




y la gclass2
Imports FiatECUScan2
Imports System
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Management
Imports System.Text

Public Class GClass23
    ' Methods
    Public Shared Function smethod_0(ByVal byte_0 As Byte) As String
        Return GClass23.smethod_1(New Byte() { byte_0 })
    End Function

    Public Shared Function smethod_1(ByVal byte_0 As Byte()) As String
        Return BitConverter.ToString(byte_0).Replace("-", " ")
    End Function

    Public Shared Function smethod_10() As String
        Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
        Dim str As String = String.Empty
        Using enumerator As ManagementObjectEnumerator = searcher.Get.GetEnumerator
            Dim current As ManagementObject
            Do While enumerator.MoveNext
                current = DirectCast(enumerator.Current, ManagementObject)
                If (str = String.Empty) Then
                    goto Label_0048
                End If
            Loop
            Return str
        Label_0048:
            str = current.Properties.Item("SerialNumber").Value.ToString
        End Using
        Return str
    End Function

    Public Shared Function smethod_11(ByVal string_1 As String) As String
        Dim obj2 As New ManagementObject(("win32_logicaldisk.deviceid=""" & string_1 & ":"""))
        obj2.Get
        Return obj2.Item("VolumeSerialNumber").ToString
    End Function

    Public Shared Function smethod_12(ByVal string_1 As String, ByVal string_2 As String) As String
        If (string_1.Length < &H10) Then
            string_1 = (string_1 & "30383936363339323634393236344141")
        End If
        string_1 = string_1.Substring(0, &H10)
        Dim buffer As Byte() = GClass23.smethod_2(string_1)
        Dim bytes As Byte() = New Byte(buffer.Length  - 1) {}
        Dim i As Integer
        For i = 0 To bytes.Length - 1
            bytes(i) = buffer(((buffer.Length - i) - 1))
        Next i
        Dim buffer3 As Byte() = GClass23.smethod_2("6A606A197B056117")
        If (((string_2.Length = &H12) AndAlso (string_2.Chars(5) = "-"c)) AndAlso (string_2.Chars(11) = "-"c)) Then
            Try
                string_2 = string_2.Replace("-", String.Empty)
                buffer3 = GClass23.smethod_2(string_2)
            Catch exception1 As Exception
            End Try
        End If
        Dim j As Integer
        For j = 0 To bytes.Length - 1
            If (j >= buffer3.Length) Then
                Exit For
            End If
            bytes(j) = CByte((bytes(j) Xor buffer3(j)))
        Next j
        Dim length As Integer = Encoding.ASCII.GetString(bytes).Length
        Return GClass23.smethod_1(bytes).Replace(" ", String.Empty)
    End Function

    Public Shared Function smethod_13(ByVal list_0 As List(Of GClass15)) As List(Of TableDataRowP)
        Dim list As New List(Of TableDataRowP)
        Dim i As Integer
        For i = 0 To list_0.Count - 1
            list.Add(New TableDataRowP(list_0.Item(i)))
        Next i
        Return list
    End Function

    Public Shared Function smethod_14(ByVal list_0 As List(Of GClass18)) As List(Of TableDataRowE)
        Dim list As New List(Of TableDataRowE)
        Dim i As Integer
        For i = 0 To list_0.Count - 1
            list.Add(New TableDataRowE(list_0.Item(i)))
        Next i
        Return list
    End Function

    Public Shared Function smethod_2(ByVal string_1 As String) As Byte()
        Dim list As New List(Of Byte)
        Dim str As String = string_1.Replace(" ", String.Empty)
        Dim i As Integer = 0
        Do While (i < (str.Length - 1))
            list.Add(Byte.Parse(str.Substring(i, 2), NumberStyles.HexNumber))
            i = (i + 2)
        Loop
        Return list.ToArray
    End Function

    Public Shared Function smethod_3(ByVal object_0 As Object) As String
        If (object_0 Is Nothing) Then
            Return String.Empty
        End If
        Return object_0.ToString
    End Function

    Public Shared Function smethod_4(ByVal object_0 As Object) As Integer
        If (object_0 Is Nothing) Then
            Return 0
        End If
        Dim num As Integer = 0
        Try
            num = Convert.ToInt32(object_0)
        Catch exception1 As Exception
        End Try
        Return num
    End Function

    Public Shared Function smethod_5() As String
        Return GClass23.string_0((14 - 1))
    End Function

    Public Shared Function smethod_6() As String
        Dim s As String = String.Empty
        Try
            s = GClass23.smethod_11("C")
        Catch exception1 As Exception
        End Try
        If (s.Length < 3) Then
            Try
                s = GClass23.smethod_11("D")
            Catch exception2 As Exception
            End Try
        End If
        If (s.Length < 3) Then
            Try
                s = GClass23.smethod_10.Trim
            Catch exception3 As Exception
            End Try
        End If
        If (s.Length < 3) Then
            Try
                s = GClass17.smethod_0.Substring(10)
            Catch exception4 As Exception
            End Try
        End If
        If (s.Length > 12) Then
            s = s.Substring(0, 12)
        End If
        Return GClass23.smethod_1(Encoding.ASCII.GetBytes(s))
    End Function

    Public Shared Function smethod_7() As String()
        Return GClass23.string_0
    End Function

    Public Shared Function smethod_8(ByVal string_1 As String) As Byte()()
        Dim list As New List(Of Byte())
        Dim str As String = string_1.Replace(" ", String.Empty)
        Dim startIndex As Integer = 0
        Dim list2 As New List(Of Byte)
        Do While (startIndex < (str.Length - 1))
            If (str.Chars(startIndex) = ","c) Then
                list.Add(list2.ToArray)
                list2 = New List(Of Byte)
                startIndex += 1
            End If
            list2.Add(Byte.Parse(str.Substring(startIndex, 2), NumberStyles.HexNumber))
            startIndex = (startIndex + 2)
        Loop
        list.Add(list2.ToArray)
        Return list.ToArray
    End Function

    Public Shared Function smethod_9(ByVal string_1 As String) As String()
        Dim list As New List(Of String)
        Dim builder As New StringBuilder
        Dim i As Integer
        For i = 0 To string_1.Length - 1
            If (string_1.Chars(i) = "|"c) Then
                list.Add((builder.ToString.Substring(0, 4) & GClass16.smethod_2(builder.ToString.Substring(4))))
                builder = New StringBuilder
            Else
                builder.Append(string_1.Chars(i))
            End If
        Next i
        If (builder.Length > 4) Then
            list.Add((builder.ToString.Substring(0, 4) & GClass16.smethod_2(builder.ToString.Substring(4))))
        End If
        Return list.ToArray
    End Function


    ' Fields
    Private Shared string_0 As String() = New String() { "data03", "lang01", "data01", "data02", "data04", "data05", "data06", "data08", "data09", "data11", "data12", "lang02", "data07", "data10", "lang03", "data13" }
End Class
espero que me puedas iluminar .

MCKSys Argentina

Cita de: napstero en  2 Abril 2013, 08:13 AM
espero que me puedas iluminar .

Ya lo he hecho. Lee el post anterior y pon manos a la obra.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


tincopasan

mi pregunta es ¿entendés de programación? porqué si tenés todo el código hace una aplicación nueva y que el resultado de la comparación la ponga en un textbox y listo.

napstero

Ahi esta no entiendo mucho como hace la comparacion este programa, no entiendo mucho vb.net pero si c+ , la cosa era hacer el generador de llave en c+.Porlo que estuve revisando

Dim str As String = GClass1.string_3
        Dim buffer As Byte() = GClass23.smethod_2(str)
        Dim i As Integer
        For i = 0 To buffer.Length - 1
            buffer(i) = CByte((buffer(i) Xor &H31))
            str = (str & GClass23.smethod_0(buffer(i)))
            Select Case i
                Case 5, 9, 14
                    str = (str & "-")
                    Exit Select

la GClass1.smethod_3   dentro de la clase gclass1:

Public Shared string_3 As String = "74126-E079B-627D07"(este tiene aspecto a key)
lo que no entiendo es la parte
Dim buffer As Byte() = GClass23.smethod_2(str) dentro de ahi


  Dim list As New List(Of Byte)
        Dim str As String = string_1.Replace(" ", String.Empty)
        Dim i As Integer = 0
        Do While (i < (str.Length - 1))
            list.Add(Byte.Parse(str.Substring(i, 2), NumberStyles.HexNumber))
            i = (i + 2)
voy mas o menos encaminado
PD: para generar el algoritmo usa el seriel numer de hd

tincopasan

te diré varias cosas:
1) no me gusta dar el código de keygens y menos si pueden ser para un programa comercial.
2) con ese código no es necesario saber vb.net para eso existe google
3) sabés c+ ¿y no entendés la parte más fácil? yo no sé ni basic y las sentencias son entendibles
4)


str.substring=     Devuelve una subcadena del objeto string que comienza en la posición dada por el menor de los argumentos y finaliza en la posición dada por el otro argumento.

byte.parse = Convierte la representación en forma de cadena de un número en su Byte equivalente.

NumberStyles.HexNumber = da formato a un número en su representación hexadecimal

do while = repite sentencias anidadas hasta que la expresión while sea verdadera

5) nunca dijiste q soft es, y por experiencia me ha pasado que resolvemos los códigos y después otros hacen los keygen como propios sin siquiera mencionar al autor real.

6) si fuese un crackme de un concurso de la lista con gusto te ayudo.