Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: tarariro en 15 Noviembre 2008, 19:30 pm



Título: Crackear un programa
Publicado por: tarariro en 15 Noviembre 2008, 19:30 pm
Hola a todos:
Estoy intentando crackear un programa que ha creado "un amigo" y resulta que no tengo ni idea de programación, pero soy bastante cabezota y realmente lo necesito.

Básicamente, el programa es una serie de macros de excel. Se instala y aparece en pantalla bloqueado por una ventana emergente en la que hay que meter un serial de 14 números y una letra. Por otra versión anterior, que también creó "mi amigo", sé que, una vez metido el serial y comprobado que es correcto, te remite al creador para obtener una segunda clave, de unos 10 dígitos. Introduces la clave y ya está registrado.

Bien, pues si metes mal la primera o la segunda clave, lógicamente te da un mensaje de error distinto. He utilizado el PEID para determinar el lenguaje y W32DASM para buscar las cadenas de texto de los errores, pero no me aparece ninguna.

Para empezar, los únicos ejecutables son el uninstall.exe (Borland Delphi 2.0 overlay) y una dll (Visual C++ DLL Method 2). Aunque no parece lógico que la clave estuviese en el archivo de desinstalación, también lo he revisado con el W32DASM (String Data References y Find Text) y en ninguno de los dos aparece el texto a buscar.

El resto de los archivos son xls (uno de los cuales es el que abre el programa y da paso a la ventana emergente), xla y dat. Para todos ellos, el W32DASM no me da la opción de String Data References, pero con Find Text tampoco encuentro la cadena de texto.

¿Dónde y cómo tendría que buscar?

Gracias


Título: Re: Crackear un programa
Publicado por: _error_ en 16 Noviembre 2008, 08:34 am
como se llama el programa...!


Título: Re: Crackear un programa
Publicado por: tarariro en 16 Noviembre 2008, 11:30 am
Hola _error_:

Gracias por contestar. Tienes un privado.


Título: Re: Crackear un programa
Publicado por: LSL en 16 Noviembre 2008, 23:39 pm
si estas tratando con tablas de excel protegidas con claves, utiliza el Passware Kit recovers


Título: Re: Crackear un programa
Publicado por: Shaddy en 17 Noviembre 2008, 05:51 am
yo lo mejor que podrías hacer es pedírselo a ese amigo tuyo ¬¬...


Título: Re: Crackear un programa
Publicado por: tarariro en 18 Noviembre 2008, 11:20 am
si estas tratando con tablas de excel protegidas con claves, utiliza el Passware Kit recovers

No es una simple contraseña de excel, si no ya estaría crackeada. Es un programa realizado con las macros y parece que es más complicado de crackear que la mayoría de los programas comerciales.


Título: Re: Crackear un programa
Publicado por: tarariro en 18 Noviembre 2008, 11:21 am
yo lo mejor que podrías hacer es pedírselo a ese amigo tuyo ¬¬...

Mi amigo vive muy lejos... :rolleyes: Y sólo habla inglés  :laugh:


Título: Re: Crackear un programa
Publicado por: Shaddy en 18 Noviembre 2008, 19:01 pm
xDDDDDDDDDDD bueeeeeeeeeeeeno..


Título: Re: Crackear un programa
Publicado por: apuromafo CLS en 4 Abril 2011, 19:30 pm
despues de revisar tus primeros comentarios me asombra el hecho de haber visto que lograste analizar un poco mas con el tiempo y le pediste la clave a tu amigo,
no se que posibilidades existe de fusionar con el mismo titulo del otro, pues es de lo mismo
http://foro.elhacker.net/ingenieria_inversa/crackear_programa-t323562.0.html

pero que fue una odisea lo fue, comentando a modo global, desbloquear la pass de macro, luego revisar
Citar
ThisWorkbook.Sheets("HOJA").Protect Password:="PASSWORD", DrawingObjects:=True, _
                Contents:=True, Scenarios:=True

y evitamos todo lo relacionado a los algoritmos, si alquien quiere analizar los algoritmos aqui hay 3

AHORA BIEN con respecto a la primera parte
Citar
       RegNum = reg1 & "-" & reg2 & "-" & reg3
            reg1 = 10232
            validThru = ThisWorkbook.Sheets("Ctrl SS").Range("ValidThru").Value
             reg2 = reg2 + validThru
            reg3_1 = Val(Left(reg3, 3))
            reg3_2 = Left(Right(reg3, 2), 1)
            mc1 = reg1 / reg2 * 3.14159 ^ 2
            mc2 = Int((mc1 - Int(mc1)) * 1000)
           
            cond1 = reg1 Mod 1279 = 0
            cond2 = reg2 Mod 1277 = 0
            cond3 = Abs(reg3_1 - mc2) = 0
            cond4 = Asc(reg3_2) - 65 = reg3_1 Mod 26

tambien hay codigos como
Citar
reg3_1 = Val(Left(reg3, 3))
        reg3_2 = Left(Right(reg3, 2), 1)
        mc1 = reg1 / reg2 * 3.14159 ^ 2
        mc2 = Int((mc1 - Int(mc1)) * 1000)
   
        cond1 = reg1 Mod 1189 = 0
        cond2 = reg2 Mod 1181 = 0
        cond3 = Abs(reg3_1 - mc2) = 0
        cond4 = Asc(reg3_2) - 65 = reg3_1 Mod 26

tambien cosas ineresantes como

Citar
Function SecurityKey(AccessCode As Long) As String
Dim Calc1 As Double, Calc2 As Integer, Calc3 As Integer, _
    Calc4 As Integer, NumString As String
   
    Calc1 = Sin(AccessCode) ^ 2 + Sin(Sin(AccessCode)) ^ 2
    Calc2 = Int(1000 * (Calc1 - Int(Calc1)))
    NumString = Calc2
    If Len(NumString) = 1 Then
        NumString = "00" & NumString
    ElseIf Len(NumString) = 2 Then
        NumString = "0" & NumString
    End If
    Calc3 = Int(26 * (Calc1 - Int(Calc1))) + 97
    If Calc3 = 108 Then Calc3 = 109
    Calc4 = Int(26 * (100 * Calc1 - Int(100 * Calc1))) + 97
    If Calc4 = 108 Then Calc4 = 109
    SecurityKey = Left(NumString, 1) & Chr$(Calc3) & _
        Right(NumString, 2) & Chr$(Calc4)
End Function