elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 [3]
21  Programación / Ingeniería Inversa / Re: Ayuda vmprotect 1.63 en: 26 Septiembre 2011, 11:02 am
Hola de nuevo, ¿Sabeis cual es el analizador mas fiable para detectar la compresión?
Es que estoy hecho un lio con esta dll, resulta que le paso el pe detective y me dice Polyene 0.01+, si paso el rdg pcker detector me dice vmprotect 1.63 y si le paso el file inspector xl me dice exe protector 1.37a y ya no se por donde se le puede meter mano para poder comenzar, a ver si sacais de duda.
Un salu2
22  Programación / Ingeniería Inversa / Re: Ayuda vmprotect 1.63 en: 22 Septiembre 2011, 18:36 pm
Gracias por responder, el programa me lo ha pasado un amigo hace tiempo,
en todo caso podria subirlo yo a algun sitio.
Salu2
23  Programación / Ingeniería Inversa / Ayuda vmprotect 1.63 en: 22 Septiembre 2011, 15:43 pm
Hola a todos, estoy intentando desempacar una dll que me dice el RDG Packer Detector que es vmprotect 1.63 y la verdad que aunque intento informarme del tema, no hay forma de encontrar el oep correcto, a ver si alguien que este puesto en este protect me ayuda a realizarlo o me da el link de algun tuto que sea bueno para novatos.
Un salu2 y gracias de antemano
24  Programación / Ingeniería Inversa / Re: ¿Alguien me aclara? en: 21 Abril 2009, 17:30 pm
Gracias Kjd por la molestia que te estás tomando, sí efectivamente usa una mochila de protección (tengo que decir que el programa lo tengo comprado, pero es por no ir con la mochila del trabajo a casa y viceversa) lo que no veo es donde demonios genera el serial valido.
Te dejaré descansar un poco y hasta que no encuentre algo nuevo, no lo postearé.
SALU2
25  Programación / Ingeniería Inversa / Re: ¿Alguien me aclara? en: 21 Abril 2009, 16:23 pm
Hola muchas gracias otra vez por la gran ayuda que me estas prestando, verás te cuento:
El programa en cuestión tiene una pantalla con un numero de seriede de 10 digitos y debajo el nombre del programa que yo he sustituido por xxxxx y al lado 8 casillas diferentes para introducir unos numeros en cada una,
debajo un modulo que yo he puesto x1x1x1x con otras 8 casillas y debajo otro modulo x2x2x2x con otras 8 y un pequeño cuadradito que hay que marcar si no se tiene pastilla . Mas abajo un boton que comprueba los numeros que hemos introducido que se supone que van en funcion del numero de serie que aparece, pues bien esto es lo que hace cuando damos a dicho botón:

private void ProbarProteccion_Click(object sender, EventArgs e)
{
    short num;
    short num2;
    short num3;
    short num4;
    short num5;
    short num6;
    short num7;
    short num8;
    string title = "Comprobando la protecci\x00f3n contra copia de xxxxxx.";
    Hardlock hardlock = new Hardlock();
    bool flag = false;
    string prompt = "";
    try
    {
        this.CodigoInterno.Text = Conversions.ToString(hardlock.CodigoInternal());
        num = Conversions.ToShort(this.Clave_1.Text);
        num2 = Conversions.ToShort(this.Clave_2.Text);
        num3 = Conversions.ToShort(this.Clave_3.Text);
        num4 = Conversions.ToShort(this.Clave_4.Text);
        num5 = Conversions.ToShort(this.Clave_5.Text);
        num6 = Conversions.ToShort(this.Clave_6.Text);
        num7 = Conversions.ToShort(this.Clave_7.Text);
        num8 = Conversions.ToShort(this.Clave_8.Text);
    }
    catch (Exception exception1)
    {
        ProjectData.SetProjectError(exception1);
        Exception exception = exception1;
        if (exception.Message.Contains("La conversi\x00f3n"))
        {
            Interaction.MsgBox("Debe introducir n\x00famero entero en cada casilla. Por favor, revise los c\x00f3digos introducidos en las casillas de xxxxxx.", MsgBoxStyle.Critical, title);
        }
        ProjectData.ClearProjectError();
        return;
    }
    if (this.Sin_Pastilla.Checked)
    {
        try
        {
            if (!hardlock.isCodigoInternal(num, num2, num3, num4, num5, num6, num7, num8))
            {
                Interaction.MsgBox(hardlock.GetError(), MsgBoxStyle.OkOnly, null);
                Interaction.MsgBox("Los c\x00f3digos introducidos no coinciden con el n\x00famero de serie del programa.", MsgBoxStyle.Critical, title);
            }
            else
            {
                flag = true;
            }
            goto Label_0256;
        }
        catch (Exception exception6)
        {
            ProjectData.SetProjectError(exception6);
            Exception exception2 = exception6;
            Interaction.MsgBox("Se ha producido un error al intentar detectar la protecci\x00f3n s\x00edn pastilla del programa xxxxxx.\rEl error ha sido: " + exception2.Message, MsgBoxStyle.Critical, title);
            ProjectData.ClearProjectError();
            return;
        }
    }
    if (!hardlock.isDriverInstalled())
    {
        Interaction.MsgBox("Los drivers que gestionan la protecci\x00f3n contra copia no estan correctamente instalados.\rPor favor, instale estos drivers ejecutando un archivo llamado [Proteccion.BAT] que encontrar\x00e1 en el CD-ROM o DVD-ROM del programa xxxxxx.", MsgBoxStyle.Exclamation, title);
    }
    else
    {
        try
        {
            if (hardlock.isUSBHardlock())
            {
                if (!hardlock.CheckTodasVersiones(num, num2, num3, num4, num5, num6, num7, num8))
                {
                    Interaction.MsgBox("!!! Los c\x00f3digos de protecci\x00f3n no coinciden con la pastilla que esta colocada en su ordenador. !!!", MsgBoxStyle.Critical, title);
                }
                else
                {
                    flag = true;
                    if (this.TipoVersion._ARK_Valor != hardlock.ElTipoversion)
                    {
                        Interaction.MsgBox("La pastilla de protecci\x00f3n que usted tiene colocada esta codificada para una versi\x00f3n: " + hardlock.ElTipoversion + " de xxxxx.", MsgBoxStyle.Exclamation, title);
                    }
                    this.TipoVersion._ARK_Valor = hardlock.ElTipoversion;
                }
            }
            else
            {
                Interaction.MsgBox(hardlock.GetError(), MsgBoxStyle.OkOnly, null);
            }
        }
        catch (Exception exception7)
        {
            ProjectData.SetProjectError(exception7);
            Exception exception3 = exception7;
            Interaction.MsgBox("Se ha producido un error al intentar detectar la protecci\x00f3n con pastilla del programa xxxxx.\rEl error ha sido: " + exception3.Message, MsgBoxStyle.Critical, title);
            ProjectData.ClearProjectError();
            return;
        }
    }
Label_0256:
    if (flag)
    {
        if (!this.Sin_Pastilla.Checked)
        {
            string str4 = "HardLock Aladdin";
            if (hardlock.TipoPastilla == Hardlock.TipoHard.HardKeySTD)
            {
                str4 = "HARDKey STD";
            }
            prompt = "## Tiene conectada un dispositivo USB del tipo: " + str4 + " ##\r\r";
        }
        prompt = prompt + "xxxxx: El programa esta correctamente registrado.\r";
    }
    try
    {
        int num9 = Conversions.ToShort(this.ClaveS_1.Text);
        int num10 = Conversions.ToShort(this.ClaveS_2.Text);
        int num11 = Conversions.ToShort(this.ClaveS_3.Text);
        int num12 = Conversions.ToShort(this.ClaveS_4.Text);
        int num13 = Conversions.ToShort(this.ClaveS_5.Text);
        int num14 = Conversions.ToShort(this.ClaveS_6.Text);
        int num15 = Conversions.ToShort(this.ClaveS_7.Text);
        int num16 = Conversions.ToShort(this.ClaveS_8.Text);
        if (hardlock.CheckSeguridadSalud(num, num2, num3, num4, num5, num6, num7, num8, num9, num10, num11, num12, num13, num14, num15, num16))
        {
            prompt = prompt + "\rx1x1x1x: El programa esta correctamente registrado.";
        }
        else
        {
            prompt = prompt + "\rx1x1x1x: Los c\x00f3digos del programa no coinciden con la pastilla de protecci\x00f3n colocada.";
        }
    }
    catch (Exception exception8)
    {
        ProjectData.SetProjectError(exception8);
        Exception exception4 = exception8;
        if (exception4.Message.Contains("La conversi\x00f3n"))
        {
            Interaction.MsgBox("Debe introducir n\x00famero entero en cada casilla. Por favor, revise los c\x00f3digos introducidos en x1x1x1x.", MsgBoxStyle.Critical, title);
        }
        ProjectData.ClearProjectError();
        return;
    }
    if (prompt != "")
    {
        prompt = prompt + "\r";
    }
    try
    {
        int num17 = Conversions.ToShort(this.ClaveR_1.Text);
        int num18 = Conversions.ToShort(this.ClaveR_2.Text);
        int num19 = Conversions.ToShort(this.ClaveR_3.Text);
        int num20 = Conversions.ToShort(this.ClaveR_4.Text);
        int num21 = Conversions.ToShort(this.ClaveR_5.Text);
        int num22 = Conversions.ToShort(this.ClaveR_6.Text);
        int num23 = Conversions.ToShort(this.ClaveR_7.Text);
        int num24 = Conversions.ToShort(this.ClaveR_8.Text);
        if (hardlock.CheckRealidadVirtual(num, num2, num3, num4, num5, num6, num7, num8, num17, num18, num19, num20, num21, num22, num23, num24))
        {

Aqui es donde yo he cambiado los saltos para que me acepte cualquier numero de serie.
            prompt = prompt + "\rx2x2x2x: El programa esta correctamente registrado.\r";
        }
        else
        {
            prompt = prompt + "\rx2x2x2x: Los c\x00f3digos del programa no coinciden con la pastilla de protecci\x00f3n colocada.\r";
        }
    }
    catch (Exception exception9)
    {
        ProjectData.SetProjectError(exception9);
        Exception exception5 = exception9;
        if (exception5.Message.Contains("La conversi\x00f3n"))
        {
            Interaction.MsgBox("Debe introducir n\x00famero entero en cada casilla. Por favor, revise los c\x00f3digos introducidos en x2x2x2x.", MsgBoxStyle.Critical, title);
        }
        ProjectData.ClearProjectError();
        return;
    }
    if (prompt != "")
    {
        Interaction.MsgBox(prompt, MsgBoxStyle.Information, "Sistema de protecci\x00f3n Anti-Copia");
26  Programación / Ingeniería Inversa / Re: ¿Alguien me aclara? en: 21 Abril 2009, 13:25 pm
Muchas gracias otra vez, no si el programa ya lo he crackeado, lo que quiero es aprender a generar un keygen.
SALU2
27  Programación / Ingeniería Inversa / Re: ¿Alguien me aclara? en: 21 Abril 2009, 13:04 pm
Gracias KJD por la respuesta.
28  Programación / Ingeniería Inversa / ¿Alguien me aclara? en: 21 Abril 2009, 12:34 pm
Hola a todos, pues nada que estoy empezando un poco con esto de la ingenieria inversa y empapandome de tutos que encuentro por la red.
La cuestion es que tengo un programa que me gustaria poder sacarle un keygen y despues de analizarlo con el reflector y teniendo unas ideas muy básicas creo que aqui se genera el serial, a ver si alguien me pudiera explicar un poquito, que es lo que hace aunque intente yo terminarlo.
Un salu2 y gracias de antemano

Private Function ComprueboClavesHARDKeySTD(ByVal valores As Byte(), ByVal claves As Byte(), ByVal Lote As Integer, ByVal Serie As Integer) As Boolean
    Dim num3 As Integer = valores(3)
    Dim num4 As Integer = valores(7)
    Dim num5 As Integer = (((num3 + num4) * num3) + num4)
    Dim num As Integer = CInt(Math.Round(Conversion.Val(Strings.Mid(Serie.ToString, 1, 3))))
    Dim num2 As Integer = CInt(Math.Round(Conversion.Val(Strings.Right(Serie.ToString, 2))))
    Serie = CInt(Math.Round(Conversion.Fix(Math.Abs(CDbl((CDbl((Serie * num2)) / CDbl(num)))))))
    Dim num6 As Integer = CInt(Math.Round(Math.Abs(CDbl((CDbl((((num5 + Lote) + Serie) * Serie)) / 30)))))
    Do While (num6 > &H2710)
        num6 = CInt(Math.Round(Conversion.Fix(CDbl((CDbl(num6) / 2)))))
    Loop
    Dim buffer As Byte() = New Byte(8  - 1) {}
    Try
        buffer(0) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(0))) + 1))))))
        buffer(1) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(1))) + 2))))))
        buffer(2) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(2))) + 4))))))
        buffer(3) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(num3)) + 8))))))
        buffer(4) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(4))) + 16))))))
        buffer(5) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(5))) + 32))))))
        buffer(6) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(valores(6))) + 64))))))
        buffer(7) = Me.ObtengoByte(CInt(Math.Round(Conversion.Fix(CDbl(((CDbl(num6) / CDbl(num4)) + 128))))))
    Catch exception1 As Exception
        ProjectData.SetProjectError(exception1)
        Dim exception As Exception = exception1
        Me.CodigoError = &H2710
        ProjectData.ClearProjectError
        Return False
    End Try
    Dim index As Integer = 0
    Do
        If (buffer(index) <> claves(index)) Then
            Me.CodigoError = &H378
            Return False
        End If
        index += 1
    Loop While (index <= 7)
    Return True
End Function
Páginas: 1 2 [3]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines