Resultados 1 al 7 de 7

Ayuda con un programa obsoleto.

  1. #1 Ayuda con un programa obsoleto. 
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    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:
    Código:
    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.

    Código:
    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.

    Código:
    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
    Citar  
     

  2. #2  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    ¿Qué es lo que hay en la dirección 0040ABE2 después de ejecutar la instrucción MOV EAX,0040ABE2? (de tu primer trozo de código que has puesto). Tal vez no te interese cambiar la instrucción de salto JE por JNE... sino mantener el salto y forzar para que en esa zona de memoria esté lo que tiene que estar, para que el CMP haga que se ejecute el salto.

    Con estos datos poco se puede hacer. Necesitaría tracear personalmente

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    Hola hystd, desde la dirección 40ABE2 hasta la 41113 (creo) el programa almacena una serie de datos que va extrayendo del numero de licencia, pero no estoy seguro de esto, cuando ejecutas el programa y clicas el botón activar te aparece un número de licencia que genera a partir de un numero de serie del PC y crea el archivo maxiloto.dat con el número de activación que tu le hayas metido, osea que en principio se traga cualquier número de 24 dígitos y lo guarda en ese archivo, pero claro, al ejecutarlo de nuevo lo comprueba y si no es el correcto se ejecuta con opciones desactivadas.

    Te agradecería que le echases un vistazo porque no ya no se por donde seguir, es obvio que algo se me escapa.

    Salu2
    Citar  
     

  4. #4  
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    Bueno ahí va mas info....

    En esta zona es donde compara el serial introducido:
    Código:
    CPU Disasm
    Address   Hex dump          Command                                  Comments
    00401778  |> \BB 44384600   MOV EBX,OFFSET 00463844
    0040177D  |.  BA 3D574600   MOV EDX,OFFSET 0046573D                  ; ASCII "99999999"
    00401782  |.  81C3 31010000 ADD EBX,131
    00401788  |.  33C0          XOR EAX,EAX
    0040178A  |>  8A0C03        /MOV CL,BYTE PTR DS:[EAX+EBX]
    0040178D  |.  880C02        |MOV BYTE PTR DS:[EAX+EDX],CL
    00401790  |.  40            |INC EAX
    00401791  |.  83F8 08       |CMP EAX,8
    00401794  |.^ 75 F4         \JNE SHORT 0040178A
    00401796  |.  40            INC EAX
    00401797  |.  C60402 00     MOV BYTE PTR DS:[EAX+EDX],0
    0040179B  |.  68 3D574600   PUSH OFFSET 0046573D                     ; /Arg1 = ASCII "99999999"
    004017A0  |.  E8 B3A50500   CALL 0045BD58                            ; \maxiloto.0045BD58
    004017A5  |.  A3 C19F4600   MOV DWORD PTR DS:[469FC1],EAX
    004017AA  |.  BB 44384600   MOV EBX,OFFSET 00463844
    004017AF  |.  BA 3D574600   MOV EDX,OFFSET 0046573D                  ; ASCII "99999999"
    004017B4  |.  81C3 31010000 ADD EBX,131
    004017BA  |.  83C3 08       ADD EBX,8
    004017BD  |.  33C0          XOR EAX,EAX
    004017BF  |>  8A0C03        /MOV CL,BYTE PTR DS:[EAX+EBX]
    004017C2  |.  880C02        |MOV BYTE PTR DS:[EAX+EDX],CL
    004017C5  |.  40            |INC EAX
    004017C6  |.  83F8 08       |CMP EAX,8
    004017C9  |.^ 75 F4         \JNE SHORT 004017BF
    004017CB  |.  40            INC EAX
    004017CC  |.  C60402 00     MOV BYTE PTR DS:[EAX+EDX],0
    004017D0  |.  68 3D574600   PUSH OFFSET 0046573D                     ; /Arg1 = ASCII "99999999"
    004017D5  |.  E8 7EA50500   CALL 0045BD58                            ; \maxiloto.0045BD58
    004017DA  |.  A3 C59F4600   MOV DWORD PTR DS:[469FC5],EAX
    004017DF  |.  BB 44384600   MOV EBX,OFFSET 00463844
    004017E4  |.  BA 3D574600   MOV EDX,OFFSET 0046573D                  ; ASCII "99999999"
    004017E9  |.  81C3 31010000 ADD EBX,131
    004017EF  |.  83C3 10       ADD EBX,10
    004017F2  |.  33C0          XOR EAX,EAX
    004017F4  |>  8A0C03        /MOV CL,BYTE PTR DS:[EAX+EBX]
    004017F7  |.  880C02        |MOV BYTE PTR DS:[EAX+EDX],CL
    004017FA  |.  40            |INC EAX
    004017FB  |.  83F8 08       |CMP EAX,8
    004017FE  |.^ 75 F4         \JNE SHORT 004017F4
    00401800  |.  40            INC EAX
    00401801  |.  C60402 00     MOV BYTE PTR DS:[EAX+EDX],0
    00401805  |.  68 3D574600   PUSH OFFSET 0046573D                     ; /Arg1 = ASCII "99999999"
    0040180A  |.  E8 49A50500   CALL 0045BD58                            ; \maxiloto.0045BD58
    0040180F  |.  A3 C99F4600   MOV DWORD PTR DS:[469FC9],EAX
    00401814  |.  60            PUSHAD
    00401815  |.  68 48204600   PUSH OFFSET 00462048                     ; /Arg1 = ASCII "2004A000"
    0040181A  |.  E8 39A50500   CALL 0045BD58                            ; \maxiloto.0045BD58
    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    Y por aquí donde va generando los datos en 40ABE2
    Código:
    CPU Disasm
    Address   Hex dump          Command                                  Comments
    0045B24A  /$  55            PUSH EBP                                 ; maxiloto.0045B24A(guessed Arg1,Arg2)
    0045B24B  |.  8BEC          MOV EBP,ESP
    0045B24D  |.  8B7D 08       MOV EDI,DWORD PTR SS:[ARG.1]
    0045B250  |>  57            /PUSH EDI
    0045B251  |.  8B1F          |MOV EBX,DWORD PTR DS:[EDI]
    0045B253  |.  8B4F 04       |MOV ECX,DWORD PTR DS:[EDI+4]
    0045B256  |.  BA B979379E   |MOV EDX,9E3779B9
    0045B25B  |.  8BC2          |MOV EAX,EDX
    0045B25D  |.  C1E0 05       |SHL EAX,5
    0045B260  |.  BF 20000000   |MOV EDI,20
    0045B265  |>  57            |/PUSH EDI
    0045B266  |.  8BFB          ||MOV EDI,EBX
    0045B268  |.  C1E7 04       ||SHL EDI,4
    0045B26B  |.  2BCF          ||SUB ECX,EDI
    0045B26D  |.  8B3D C99F4600 ||MOV EDI,DWORD PTR DS:[469FC9]          ; ASCII "+C/I"
    0045B273  |.  33FB          ||XOR EDI,EBX
    0045B275  |.  2BCF          ||SUB ECX,EDI
    0045B277  |.  8BFB          ||MOV EDI,EBX
    0045B279  |.  C1EF 05       ||SHR EDI,5
    0045B27C  |.  33F8          ||XOR EDI,EAX
    0045B27E  |.  2BCF          ||SUB ECX,EDI
    0045B280  |.  2B0D CD9F4600 ||SUB ECX,DWORD PTR DS:[469FCD]
    0045B286  |.  8BF9          ||MOV EDI,ECX
    0045B288  |.  C1E7 04       ||SHL EDI,4
    0045B28B  |.  2BDF          ||SUB EBX,EDI
    0045B28D  |.  8B3D C19F4600 ||MOV EDI,DWORD PTR DS:[469FC1]
    0045B293  |.  33F9          ||XOR EDI,ECX
    0045B295  |.  2BDF          ||SUB EBX,EDI
    0045B297  |.  8BF9          ||MOV EDI,ECX
    0045B299  |.  C1EF 05       ||SHR EDI,5
    0045B29C  |.  33F8          ||XOR EDI,EAX
    0045B29E  |.  2BDF          ||SUB EBX,EDI
    0045B2A0  |.  2B1D C59F4600 ||SUB EBX,DWORD PTR DS:[469FC5]
    0045B2A6  |.  2BC2          ||SUB EAX,EDX
    0045B2A8  |.  5F            ||POP EDI
    0045B2A9  |.  4F            ||DEC EDI
    0045B2AA  |.^ 75 B9         |\JNE SHORT 0045B265
    0045B2AC  |.  5F            |POP EDI
    0045B2AD  |.  891F          |MOV DWORD PTR DS:[EDI],EBX
    0045B2AF  |.  894F 04       |MOV DWORD PTR DS:[EDI+4],ECX
    0045B2B2  |.  8B45 0C       |MOV EAX,DWORD PTR SS:[ARG.2]
    0045B2B5  |.  83E8 10       |SUB EAX,10
    0045B2B8  |.  3BC7          |CMP EAX,EDI
    0045B2BA  |.  76 05         |JBE SHORT 0045B2C1
    0045B2BC  |.  83C7 08       |ADD EDI,8
    0045B2BF  |.^ EB 8F         \JMP SHORT 0045B250
    0045B2C1  |>  C9            LEAVE
    0045B2C2  \.  C2 0800       RETN 8
    Citar  
     

  6. #6  
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    1
    Descargas
    0
    Uploads
    0
    tengo dos noticias para ti, una buena y una mala. La buena es que la web ya esta activa, la mala es que el programa, si no tienes aunque sea un codigo de activacion valido, es incrackeable hoy por hoy, usa TEA o similar para desencriptar codigo ejecutable y si estas registrado y quieres ejecutar ciertas opciones crashea ya que depende de los 128 bits del serial y al no encriptar en el ejecutable sino que ya viene encriptado, pues sin el codigo de activacion correcto es imposible saber el contenido de los bloques encriptados. Ya puedes comprar tu licencia y si lo haces me gustaria seguir en contacto contigo y que me pases el instalador que uses, el serial, y el codigo de activacion para asi poder crear un parcheado que corra en todas las maquinas, si no lo compras, pues te tocara esperar a que alguien lo compre y colabore. Hice un tutorial de todo lo que averigue por si quieres verlo y asi te queda mas claro todo.
    Citar  
     

  7. #7  
    Iniciado
    Fecha de ingreso
    Jun 2012
    Mensajes
    8
    Descargas
    0
    Uploads
    0
    Gracias amigo me gustaría ver ese tutorial que dices.
    Citar  
     

Temas similares

  1. Ayuda con programa
    Por christian_79 en el foro GENERAL
    Respuestas: 1
    Último mensaje: 28-12-2013, 20:51
  2. Programa en C++ (AYUDA)
    Por flatron en el foro PROGRAMACION DESKTOP
    Respuestas: 9
    Último mensaje: 09-01-2008, 16:24
  3. ayuda programa en C!!!
    Por a_itt en el foro PROGRAMACION DESKTOP
    Respuestas: 3
    Último mensaje: 05-10-2007, 00:14
  4. Ayuda con programa en VB
    Por martinss en el foro PROGRAMACION DESKTOP
    Respuestas: 2
    Último mensaje: 29-03-2006, 17:22
  5. Como instalar una red con 3Com "OBSOLETO"
    Por VOLTAN en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 3
    Último mensaje: 27-11-2001, 10:37

Marcadores

Marcadores