Crackear un programa

Iniciado por tarariro, 15 Noviembre 2008, 19:30 PM

0 Miembros y 1 Visitante están viendo este tema.

tarariro

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

_error_

como se llama el programa...!

tarariro

Hola _error_:

Gracias por contestar. Tienes un privado.

LSL

si estas tratando con tablas de excel protegidas con claves, utiliza el Passware Kit recovers
Saludos.

LSL.

Shaddy

yo lo mejor que podrías hacer es pedírselo a ese amigo tuyo ¬¬...
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

tarariro

Cita de: LSL en 16 Noviembre 2008, 23:39 PM
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.

tarariro

Cita de: ShadowDark en 17 Noviembre 2008, 05:51 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:

Shaddy

xDDDDDDDDDDD bueeeeeeeeeeeeno..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

apuromafo CLS

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
CitarThisWorkbook.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
CitarRegNum = 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
Citarreg3_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

CitarFunction 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