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
como se llama el programa...!
Hola _error_:
Gracias por contestar. Tienes un privado.
si estas tratando con tablas de excel protegidas con claves, utiliza el Passware Kit recovers
yo lo mejor que podrías hacer es pedírselo a ese amigo tuyo ¬¬...
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.
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:
xDDDDDDDDDDD bueeeeeeeeeeeeno..
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