Vortex
05-06-2012, 20:35
Hola amigos, estoy intentando registrar un programa hecho en Delphi pero me esta dando problemas, a ver si podéis echarme una mano.
El programa en custión es el MaxiLoto v20.04, es un programa que ya no se vende, su web esta cerrada (maximaloto.com) por lo que resulta imposible comprarlo o adquirir una licencia, de hecho intenté ponerme en contacto con ellos y me dijeron que ya no lo iban a vender, por eso me he animado a crackearlo, bueno al menos a intentarlo.
Ya que su web no esta operativa la última versión no esta disponible (v20.20) la única que se puede descargar de internet es la v20.04,
maxiloto.uptodown.com
Mis logros hasta el momento son estos:
CPU Disasm
Address Hex dump Command Comments
004018CE |. B9 39114100 MOV ECX,00411139 ; Entry point
004018D3 |. 81E9 00104000 SUB ECX,<ModuleEntryPoint>
004018D9 |. 68 8D9F4600 PUSH OFFSET 00469F8D ; /pOldProtect = maxiloto.469F8D -> PAGE_EXECUTE_READ
004018DE |. 53 PUSH EBX ; |NewProtect => [469F8D] = PAGE_EXECUTE_READ
004018DF |. 51 PUSH ECX ; |Size => 65849.
004018E0 |. 68 00104000 PUSH <ModuleEntryPoint> ; |Address = 00401000
004018E5 |. E8 DCA30500 CALL <JMP.&kernel32.VirtualProtect> ; \KERNEL32.VirtualProtect
004018EA |. B8 E2AB4000 MOV EAX,0040ABE2
004018EF |. 8138 4D415849 CMP DWORD PTR DS:[EAX],4958414D ;
004018F5 74 53 JE SHORT 0040194A ; SI SALTA, EL PROGRAMA SE EJECUTA COMO REGISTRADO
004018F7 |. C705 6B9F4600 MOV DWORD PTR DS:[469F6B],1
En esta parte si toma ese salto el programa se ejecuta como si estuviese activado, pero si intentas entrar en 2 de las opciones el programa da error y se cierra.
CPU Disasm
Address Hex dump Command Comments
0041F62B |. 833D 6B9F4600 CMP DWORD PTR DS:[469F6B],0
0041F632 75 0F JNE SHORT 0041F643 <--- CAMBIAR SALTO PARA EVITAR MSG 'GESTION SORTEOS'
0041F634 |. C605 5C324600 MOV BYTE PTR DS:[46325C],1
0041F63B |. FF75 08 PUSH DWORD PTR SS:[ARG.1]
0041F63E |. E8 C019FFFF CALL 00411003
0041F643 |> C705 9B334600 MOV DWORD PTR DS:[46339B],0
Si cambias ese salto esa opción vuelve a funcionar y no tira error.
CPU Disasm
Address Hex dump Command Comments
004023EA 803D 35354600 CMP BYTE PTR DS:[463535],0
004023F1 75 1E JNE SHORT 00402411 ;
004023F3 |. 6A 00 PUSH 0 ; InitParam = 0
004023F5 |. 68 B8CF4000 PUSH 0040CFB8 ; DialogProc = maxiloto.40CFB8
004023FA |. 6A 00 PUSH 0 ; hParent = NULL
004023FC |. 68 75270000 PUSH 2775 ; TemplateName = 2775
00402401 |. FF35 0A9F4600 PUSH DWORD PTR DS:[469F0A] ; hInst = 00400000 ('maxiloto')
00402407 |. E8 A0970500 CALL <JMP.&user32.DialogBoxParamA> ; Jump to user32.DialogBoxParamA <-- AQUI DEVUELVE UN ERROR DE EXCEPCION
0040240C |. E9 DC000000 JMP 004024ED
Pero si intentas entrar en la opción 'Visor de columnas' va a parar a esta parte del código y al entrar en la Call devuelve un error de excepcion no continuable y hasta aquí he llegado, he intentado tracear la call pero me pierdo.
Si alguno de vosotros se le ocurre algo le agradecería que me echase una manita. ;)
Gracias por vuestro tiempo.
Salu2
El programa en custión es el MaxiLoto v20.04, es un programa que ya no se vende, su web esta cerrada (maximaloto.com) por lo que resulta imposible comprarlo o adquirir una licencia, de hecho intenté ponerme en contacto con ellos y me dijeron que ya no lo iban a vender, por eso me he animado a crackearlo, bueno al menos a intentarlo.
Ya que su web no esta operativa la última versión no esta disponible (v20.20) la única que se puede descargar de internet es la v20.04,
maxiloto.uptodown.com
Mis logros hasta el momento son estos:
CPU Disasm
Address Hex dump Command Comments
004018CE |. B9 39114100 MOV ECX,00411139 ; Entry point
004018D3 |. 81E9 00104000 SUB ECX,<ModuleEntryPoint>
004018D9 |. 68 8D9F4600 PUSH OFFSET 00469F8D ; /pOldProtect = maxiloto.469F8D -> PAGE_EXECUTE_READ
004018DE |. 53 PUSH EBX ; |NewProtect => [469F8D] = PAGE_EXECUTE_READ
004018DF |. 51 PUSH ECX ; |Size => 65849.
004018E0 |. 68 00104000 PUSH <ModuleEntryPoint> ; |Address = 00401000
004018E5 |. E8 DCA30500 CALL <JMP.&kernel32.VirtualProtect> ; \KERNEL32.VirtualProtect
004018EA |. B8 E2AB4000 MOV EAX,0040ABE2
004018EF |. 8138 4D415849 CMP DWORD PTR DS:[EAX],4958414D ;
004018F5 74 53 JE SHORT 0040194A ; SI SALTA, EL PROGRAMA SE EJECUTA COMO REGISTRADO
004018F7 |. C705 6B9F4600 MOV DWORD PTR DS:[469F6B],1
En esta parte si toma ese salto el programa se ejecuta como si estuviese activado, pero si intentas entrar en 2 de las opciones el programa da error y se cierra.
CPU Disasm
Address Hex dump Command Comments
0041F62B |. 833D 6B9F4600 CMP DWORD PTR DS:[469F6B],0
0041F632 75 0F JNE SHORT 0041F643 <--- CAMBIAR SALTO PARA EVITAR MSG 'GESTION SORTEOS'
0041F634 |. C605 5C324600 MOV BYTE PTR DS:[46325C],1
0041F63B |. FF75 08 PUSH DWORD PTR SS:[ARG.1]
0041F63E |. E8 C019FFFF CALL 00411003
0041F643 |> C705 9B334600 MOV DWORD PTR DS:[46339B],0
Si cambias ese salto esa opción vuelve a funcionar y no tira error.
CPU Disasm
Address Hex dump Command Comments
004023EA 803D 35354600 CMP BYTE PTR DS:[463535],0
004023F1 75 1E JNE SHORT 00402411 ;
004023F3 |. 6A 00 PUSH 0 ; InitParam = 0
004023F5 |. 68 B8CF4000 PUSH 0040CFB8 ; DialogProc = maxiloto.40CFB8
004023FA |. 6A 00 PUSH 0 ; hParent = NULL
004023FC |. 68 75270000 PUSH 2775 ; TemplateName = 2775
00402401 |. FF35 0A9F4600 PUSH DWORD PTR DS:[469F0A] ; hInst = 00400000 ('maxiloto')
00402407 |. E8 A0970500 CALL <JMP.&user32.DialogBoxParamA> ; Jump to user32.DialogBoxParamA <-- AQUI DEVUELVE UN ERROR DE EXCEPCION
0040240C |. E9 DC000000 JMP 004024ED
Pero si intentas entrar en la opción 'Visor de columnas' va a parar a esta parte del código y al entrar en la Call devuelve un error de excepcion no continuable y hasta aquí he llegado, he intentado tracear la call pero me pierdo.
Si alguno de vosotros se le ocurre algo le agradecería que me echase una manita. ;)
Gracias por vuestro tiempo.
Salu2