Problemilla con un trial.

Iniciado por nemus, 27 Agosto 2010, 13:58 PM

0 Miembros y 4 Visitantes están viendo este tema.

MCKSys Argentina

Si está en BCC puedes usar Dede para ver código y así descubrir dónde está el tema.

De última, puedes hacer un .map y cargarlo en Olly. Mejora mucho la Vision del proggie  :)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


LSL

#11
aqui os pongo enlace de descarga de la ultima versión free, para que no os de problemas de fechas de instalación, etc.; además esta versión no tiene packer y esta compilada en Borland C++ 1999 (y pesa 23,67 MB para la descarga) http://www.mediafire.com/?do3ts90rhdd0yod, el periodo de prueba dice es de 60 dias, desde su instalación, con el limite de que solo se puede utiizar hasta 15/02/11.

miren este código:

en el valor que se hay en [ECX+AC] tenemos el indicativo o puntero de la versión, siendo 0 la de evaluación, 1 Lite, 2 Profesional, 4 Studio, 8 Enterprise, 10 Consultant

009B444D  |.  83B9 AC000000>CMP DWORD PTR [ECX+AC],0                 ;  el valor en dicha direccion identifica la versión a mostrar
009B4454  |.  0F85 F7000000 JNZ 009B4551                             ;  salta para versiones superiores a la de evaluacion
009B445A  |.  66:C745 B4 38>MOV WORD PTR [EBP-4C],38
009B4460  |.  BA 9367E300   MOV EDX,00E36793                         ;  ASCII " 2009 Free"
009B4465  |.  8D45 F0       LEA EAX,DWORD PTR [EBP-10]
009B4468  |.  E8 3B633E00   CALL 00D9A7A8
009B446D  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4470  |.  8D55 F0       LEA EDX,DWORD PTR [EBP-10]
009B4473  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B4476  |.  E8 0D653E00   CALL 00D9A988
009B447B  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B447E  |.  8D45 F0       LEA EAX,DWORD PTR [EBP-10]
009B4481  |.  BA 02000000   MOV EDX,2
009B4486  |.  E8 B9643E00   CALL 00D9A944
009B448B  |.  FF75 0C       PUSH DWORD PTR [EBP+C]                   ; /Arg1
009B448E  |.  E8 DDFAFFFF   CALL @TSiglopro@GetPermetreAvaluacio$qv  ; \@TSiglopro@GetPermetreAvaluacio$qv
009B4493  |.  59            POP ECX
009B4494  |.  84C0          TEST AL,AL
009B4496  |.  74 75         JE SHORT 009B450D
009B4498  |.  66:C745 B4 44>MOV WORD PTR [EBP-4C],44
009B449E  |.  68 A267E300   PUSH 00E367A2                            ;  ASCII "(Evaluation Mode)"
009B44A3  |.  8D45 EC       LEA EAX,DWORD PTR [EBP-14]
009B44A6  |.  E8 0D08A5FF   CALL 00404CB8
009B44AB  |.  50            PUSH EAX                                 ; |Arg1
009B44AC  |.  FF45 C0       INC DWORD PTR [EBP-40]                   ; |
009B44AF  |.  BA A067E300   MOV EDX,00E367A0                         ; |
009B44B4  |.  8B0D F02FEF00 MOV ECX,DWORD PTR [EF2FF0]               ; |ramat.@TIdioma@AppIdioma
009B44BA  |.  8B01          MOV EAX,DWORD PTR [ECX]                  ; |
009B44BC  |.  B9 F80B0000   MOV ECX,0BF8                             ; |
009B44C1  |.  E8 36A42100   CALL @TIdioma@GetText$qqrpxcit1          ; \@TIdioma@GetText$qqrpxcit1
009B44C6  |.  8D55 EC       LEA EDX,DWORD PTR [EBP-14]
009B44C9  |.  52            PUSH EDX
009B44CA  |.  8D45 E8       LEA EAX,DWORD PTR [EBP-18]
009B44CD  |.  E8 E607A5FF   CALL 00404CB8
009B44D2  |.  8BC8          MOV ECX,EAX
009B44D4  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B44D7  |.  B8 9E67E300   MOV EAX,00E3679E
009B44DC  |.  5A            POP EDX
009B44DD  |.  E8 366C3E00   CALL 00D9B118
009B44E2  |.  8D55 E8       LEA EDX,DWORD PTR [EBP-18]
009B44E5  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B44E8  |.  E8 9B643E00   CALL 00D9A988
009B44ED  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B44F0  |.  8D45 E8       LEA EAX,DWORD PTR [EBP-18]
009B44F3  |.  BA 02000000   MOV EDX,2
009B44F8  |.  E8 47643E00   CALL 00D9A944
009B44FD  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B4500  |.  8D45 EC       LEA EAX,DWORD PTR [EBP-14]
009B4503  |.  BA 02000000   MOV EDX,2
009B4508  |.  E8 37643E00   CALL 00D9A944
009B450D  |>  66:C745 B4 50>MOV WORD PTR [EBP-4C],50
009B4513  |.  8D55 FC       LEA EDX,DWORD PTR [EBP-4]
009B4516  |.  8B45 08       MOV EAX,DWORD PTR [EBP+8]
009B4519  |.  E8 56643E00   CALL 00D9A974
009B451E  |.  8B45 08       MOV EAX,DWORD PTR [EBP+8]
009B4521  |.  66:C745 B4 5C>MOV WORD PTR [EBP-4C],5C
009B4527  |.  50            PUSH EAX
009B4528  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B452B  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B452E  |.  BA 02000000   MOV EDX,2
009B4533  |.  E8 0C643E00   CALL 00D9A944
009B4538  |.  58            POP EAX
009B4539  |.  66:C745 B4 50>MOV WORD PTR [EBP-4C],50
009B453F  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4542  |.  8B55 A4       MOV EDX,DWORD PTR [EBP-5C]
009B4545  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
009B454C  |.  E9 76020000   JMP 009B47C7
009B4551  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B4554  |.  83B9 AC000000>CMP DWORD PTR [ECX+AC],0
009B455B  |.  75 44         JNZ SHORT 009B45A1
009B455D  |.  66:C745 B4 68>MOV WORD PTR [EBP-4C],68
009B4563  |.  8D55 FC       LEA EDX,DWORD PTR [EBP-4]
009B4566  |.  8B45 08       MOV EAX,DWORD PTR [EBP+8]
009B4569  |.  E8 06643E00   CALL 00D9A974
009B456E  |.  8B45 08       MOV EAX,DWORD PTR [EBP+8]
009B4571  |.  66:C745 B4 74>MOV WORD PTR [EBP-4C],74
009B4577  |.  50            PUSH EAX
009B4578  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B457B  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B457E  |.  BA 02000000   MOV EDX,2
009B4583  |.  E8 BC633E00   CALL 00D9A944
009B4588  |.  58            POP EAX
009B4589  |.  66:C745 B4 68>MOV WORD PTR [EBP-4C],68
009B458F  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4592  |.  8B55 A4       MOV EDX,DWORD PTR [EBP-5C]
009B4595  |.  64:8915 00000>MOV DWORD PTR FS:[0],EDX
009B459C  |.  E9 26020000   JMP 009B47C7
009B45A1  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B45A4  |.  F681 AC000000>TEST BYTE PTR [ECX+AC],10
009B45AB  |.  74 36         JE SHORT 009B45E3
009B45AD  |.  66:C745 B4 80>MOV WORD PTR [EBP-4C],80
009B45B3  |.  BA B467E300   MOV EDX,00E367B4                         ;  ASCII " Consultant"
009B45B8  |.  8D45 E4       LEA EAX,DWORD PTR [EBP-1C]
009B45BB  |.  E8 E8613E00   CALL 00D9A7A8
009B45C0  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B45C3  |.  8D55 E4       LEA EDX,DWORD PTR [EBP-1C]
009B45C6  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B45C9  |.  E8 BA633E00   CALL 00D9A988
009B45CE  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B45D1  |.  8D45 E4       LEA EAX,DWORD PTR [EBP-1C]
009B45D4  |.  BA 02000000   MOV EDX,2
009B45D9  |.  E8 66633E00   CALL 00D9A944
009B45DE  |.  E9 74010000   JMP 009B4757
009B45E3  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B45E6  |.  F681 AC000000>TEST BYTE PTR [ECX+AC],8
009B45ED  |.  74 36         JE SHORT 009B4625
009B45EF  |.  66:C745 B4 8C>MOV WORD PTR [EBP-4C],8C
009B45F5  |.  BA C067E300   MOV EDX,00E367C0                         ;  ASCII " Enterprise"
009B45FA  |.  8D45 E0       LEA EAX,DWORD PTR [EBP-20]
009B45FD  |.  E8 A6613E00   CALL 00D9A7A8
009B4602  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4605  |.  8D55 E0       LEA EDX,DWORD PTR [EBP-20]
009B4608  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B460B  |.  E8 78633E00   CALL 00D9A988
009B4610  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B4613  |.  8D45 E0       LEA EAX,DWORD PTR [EBP-20]
009B4616  |.  BA 02000000   MOV EDX,2
009B461B  |.  E8 24633E00   CALL 00D9A944
009B4620  |.  E9 32010000   JMP 009B4757
009B4625  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B4628  |.  F681 AC000000>TEST BYTE PTR [ECX+AC],4
009B462F  |.  74 36         JE SHORT 009B4667
009B4631  |.  66:C745 B4 98>MOV WORD PTR [EBP-4C],98
009B4637  |.  BA CC67E300   MOV EDX,00E367CC                         ;  ASCII " Studio"
009B463C  |.  8D45 DC       LEA EAX,DWORD PTR [EBP-24]
009B463F  |.  E8 64613E00   CALL 00D9A7A8
009B4644  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4647  |.  8D55 DC       LEA EDX,DWORD PTR [EBP-24]
009B464A  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B464D  |.  E8 36633E00   CALL 00D9A988
009B4652  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B4655  |.  8D45 DC       LEA EAX,DWORD PTR [EBP-24]
009B4658  |.  BA 02000000   MOV EDX,2
009B465D  |.  E8 E2623E00   CALL 00D9A944
009B4662  |.  E9 F0000000   JMP 009B4757
009B4667  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B466A  |.  F681 AC000000>TEST BYTE PTR [ECX+AC],2
009B4671  |.  74 36         JE SHORT 009B46A9
009B4673  |.  66:C745 B4 A4>MOV WORD PTR [EBP-4C],0A4
009B4679  |.  BA D467E300   MOV EDX,00E367D4                         ;  ASCII " Professional"
009B467E  |.  8D45 D8       LEA EAX,DWORD PTR [EBP-28]
009B4681  |.  E8 22613E00   CALL 00D9A7A8
009B4686  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B4689  |.  8D55 D8       LEA EDX,DWORD PTR [EBP-28]
009B468C  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B468F  |.  E8 F4623E00   CALL 00D9A988
009B4694  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B4697  |.  8D45 D8       LEA EAX,DWORD PTR [EBP-28]
009B469A  |.  BA 02000000   MOV EDX,2
009B469F  |.  E8 A0623E00   CALL 00D9A944
009B46A4  |.  E9 AE000000   JMP 009B4757
009B46A9  |>  8B4D 0C       MOV ECX,DWORD PTR [EBP+C]
009B46AC  |.  F681 AC000000>TEST BYTE PTR [ECX+AC],1
009B46B3  |.  74 33         JE SHORT 009B46E8
009B46B5  |.  66:C745 B4 B0>MOV WORD PTR [EBP-4C],0B0
009B46BB  |.  BA E267E300   MOV EDX,00E367E2                         ;  ASCII " Lite"
009B46C0  |.  8D45 D4       LEA EAX,DWORD PTR [EBP-2C]
009B46C3  |.  E8 E0603E00   CALL 00D9A7A8
009B46C8  |.  FF45 C0       INC DWORD PTR [EBP-40]
009B46CB  |.  8D55 D4       LEA EDX,DWORD PTR [EBP-2C]
009B46CE  |.  8D45 FC       LEA EAX,DWORD PTR [EBP-4]
009B46D1  |.  E8 B2623E00   CALL 00D9A988
009B46D6  |.  FF4D C0       DEC DWORD PTR [EBP-40]
009B46D9  |.  8D45 D4       LEA EAX,DWORD PTR [EBP-2C]
009B46DC  |.  BA 02000000   MOV EDX,2
009B46E1  |.  E8 5E623E00   CALL 00D9A944
009B46E6  |.  EB 6F         JMP SHORT 009B4757

La cuestión es encontrar en el primer sitio que a la direccion e [ECX+AC] de referencia se le pasa el valor 0 para pasarle el valor de la versión que nos interese tener, y con esto se acaba el asunto de los 60 del periodo de evaluación, pero nos queda el escoyo de saltarnos la fecha del 15/02/11 para seguir utilizando el programa a partir de dicha fecha.
Saludos.

LSL.

Mintaka

Cita de: nemus en  3 Septiembre 2010, 18:41 PM

En cambio se deja instalar con fecha aproximada a junio/2009. Entonces permite 90 días full. Mi objetivo era conseguir que el programa estuviera siempre en período de prueba.

Estoy sin ideas. :-[

Domingo noche empiezo a trabajar, y adéu a las vacaciones.  :-(

Una ayudita no estaría mal, venga no me hagáis suplicar mas. :-)

Thanks.

Te mandé un MP nemus.

Mintaka
Si lloras por no ver el Sol tus lágrimas no te dejarán ver las estrellas.(Tagore)

nemus

Cita de: MCKSys Argentina en  4 Septiembre 2010, 16:14 PM
Si está en BCC puedes usar Dede para ver código y así descubrir dónde está el tema.

De última, puedes hacer un .map y cargarlo en Olly. Mejora mucho la Vision del proggie  :)

Saludos!


Probé en su día reemplazar las etiquetas con el .map, pero no mejoro demasiado.

Gracias ¿Otra idea?



Cita de: Mintaka en  4 Septiembre 2010, 17:19 PM

Te mandé un MP nemus.

Mintaka

Perdona no me había enterado del MP.


¿Estas seguro que el archivo que me has enviado es el modificado? No se salta la NAG inicial, no carga bases de datos fuera de fecha (activándose el bit de la clave de registro MSNetOLE5), y cuando lo arranco fuera de periodo solo funcionan las funciones free. Es decir, hace lo que tiene que hacer el programa cuando pasa de fecha, seguir funcionando con las funciones free.

De todas las maneras muy agradecido por el intento, y mirate si me enviaste el archivo correcto que debe ser eso.

Salut!


Cita de: LSL en  4 Septiembre 2010, 17:00 PM
aqui os pongo enlace de descarga de la ultima versión free, para que no os de problemas de fechas de instalación, etc.; además esta versión no tiene packer y esta compilada en Borland C++ 1999 (y pesa 23,67 MB para la descarga) http://www.mediafire.com/?do3ts90rhdd0yod, el periodo de prueba dice es de 60 dias, desde su instalación, con el limite de que solo se puede utiizar hasta 15/02/11.

miren este código:

en el valor que se hay en [ECX+AC] tenemos el indicativo o puntero de la versión, siendo 0 la de evaluación, 1 Lite, 2 Profesional, 4 Studio, 8 Enterprise, 10 Consultant

009B444D  |.  83B9 AC000000>CMP DWORD PTR [ECX+AC],0                  ;  el valor en dicha direccion identifica la versión a mostrar
009B4454  |.  0F85 F7000000 JNZ 009B4551                             ;  salta para versiones superiores a la de evaluacion


La cuestión es encontrar en el primer sitio que a la direccion e [ECX+AC] de referencia se le pasa el valor 0 para pasarle el valor de la versión que nos interese tener, y con esto se acaba el asunto de los 60 del periodo de evaluación, pero nos queda el escoyo de saltarnos la fecha del 15/02/11 para seguir utilizando el programa a partir de dicha fecha.


En  la versión 2007 esta la misma sección:


00A28234  |. 83BA 98000000 >CMP DWORD PTR DS:[EDX+98],0
00A2823B  |. 75 75          JNZ SHORT ramat.00A282B2
00A2823D  |. 66:C745 B0 200>MOV WORD PTR SS:[EBP-50],20
00A28243  |. BA 26E6DE00    MOV EDX,ramat.00DEE626                   ;  ASCII " 2007 Free"
00A28248  |. 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
00A2824B  |. E8 70612A00    CALL ramat.00CCE3C0
00A28250  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A28253  |. 8D55 F8        LEA EDX,DWORD PTR SS:[EBP-8]
00A28256  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A28259  |. E8 AE632A00    CALL ramat.00CCE60C
00A2825E  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28261  |. 8D45 F8        LEA EAX,DWORD PTR SS:[EBP-8]
00A28264  |. BA 02000000    MOV EDX,2
00A28269  |. E8 5A632A00    CALL ramat.00CCE5C8
00A2826E  |. 66:C745 B0 2C0>MOV WORD PTR SS:[EBP-50],2C
00A28274  |. 8D55 FC        LEA EDX,DWORD PTR SS:[EBP-4]
00A28277  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A2827A  |. E8 79632A00    CALL ramat.00CCE5F8
00A2827F  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A28282  |. 66:C745 B0 380>MOV WORD PTR SS:[EBP-50],38
00A28288  |. 50             PUSH EAX
00A28289  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A2828C  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A2828F  |. BA 02000000    MOV EDX,2
00A28294  |. E8 2F632A00    CALL ramat.00CCE5C8
00A28299  |. 58             POP EAX
00A2829A  |. 66:C745 B0 2C0>MOV WORD PTR SS:[EBP-50],2C
00A282A0  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A282A3  |. 8B55 A0        MOV EDX,DWORD PTR SS:[EBP-60]
00A282A6  |. 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00A282AD  |. E9 34030000    JMP ramat.00A285E6
00A282B2  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A282B5  |. 83B9 98000000 >CMP DWORD PTR DS:[ECX+98],5
00A282BC  |. 0F85 8C000000  JNZ ramat.00A2834E
00A282C2  |. 66:C745 B0 440>MOV WORD PTR SS:[EBP-50],44
00A282C8  |. 8D45 F0        LEA EAX,DWORD PTR SS:[EBP-10]
00A282CB  |. E8 D4BC9DFF    CALL ramat.00403FA4
00A282D0  |. 50             PUSH EAX
00A282D1  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A282D4  |. BA 31E6DE00    MOV EDX,ramat.00DEE631                   ;  ASCII " Betatester"
00A282D9  |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00A282DC  |. E8 DF602A00    CALL ramat.00CCE3C0
00A282E1  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A282E4  |. 8D55 F4        LEA EDX,DWORD PTR SS:[EBP-C]
00A282E7  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A282EA  |. 59             POP ECX
00A282EB  |. E8 30632A00    CALL ramat.00CCE620
00A282F0  |. 8D55 F0        LEA EDX,DWORD PTR SS:[EBP-10]
00A282F3  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A282F6  |. E8 FD622A00    CALL ramat.00CCE5F8
00A282FB  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A282FE  |. 66:C745 B0 500>MOV WORD PTR SS:[EBP-50],50
00A28304  |. 50             PUSH EAX
00A28305  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28308  |. 8D45 F0        LEA EAX,DWORD PTR SS:[EBP-10]
00A2830B  |. BA 02000000    MOV EDX,2
00A28310  |. E8 B3622A00    CALL ramat.00CCE5C8
00A28315  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28318  |. 8D45 F4        LEA EAX,DWORD PTR SS:[EBP-C]
00A2831B  |. BA 02000000    MOV EDX,2
00A28320  |. E8 A3622A00    CALL ramat.00CCE5C8
00A28325  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28328  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A2832B  |. BA 02000000    MOV EDX,2
00A28330  |. E8 93622A00    CALL ramat.00CCE5C8
00A28335  |. 58             POP EAX
00A28336  |. 66:C745 B0 440>MOV WORD PTR SS:[EBP-50],44
00A2833C  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A2833F  |. 8B55 A0        MOV EDX,DWORD PTR SS:[EBP-60]
00A28342  |. 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00A28349  |. E9 98020000    JMP ramat.00A285E6
00A2834E  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A28351  |. 83B9 A8000000 >CMP DWORD PTR DS:[ECX+A8],0
00A28358  |. 75 44          JNZ SHORT ramat.00A2839E
00A2835A  |. 66:C745 B0 5C0>MOV WORD PTR SS:[EBP-50],5C
00A28360  |. 8D55 FC        LEA EDX,DWORD PTR SS:[EBP-4]
00A28363  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A28366  |. E8 8D622A00    CALL ramat.00CCE5F8
00A2836B  |. 8B45 08        MOV EAX,DWORD PTR SS:[EBP+8]
00A2836E  |. 66:C745 B0 680>MOV WORD PTR SS:[EBP-50],68
00A28374  |. 50             PUSH EAX
00A28375  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28378  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A2837B  |. BA 02000000    MOV EDX,2
00A28380  |. E8 43622A00    CALL ramat.00CCE5C8
00A28385  |. 58             POP EAX
00A28386  |. 66:C745 B0 5C0>MOV WORD PTR SS:[EBP-50],5C
00A2838C  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A2838F  |. 8B55 A0        MOV EDX,DWORD PTR SS:[EBP-60]
00A28392  |. 64:8915 000000>MOV DWORD PTR FS:[0],EDX
00A28399  |. E9 48020000    JMP ramat.00A285E6
00A2839E  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A283A1  |. F681 A8000000 >TEST BYTE PTR DS:[ECX+A8],8
00A283A8  |. 74 36          JE SHORT ramat.00A283E0
00A283AA  |. 66:C745 B0 740>MOV WORD PTR SS:[EBP-50],74
00A283B0  |. BA 3DE6DE00    MOV EDX,ramat.00DEE63D                   ;  ASCII " Enterprise"
00A283B5  |. 8D45 EC        LEA EAX,DWORD PTR SS:[EBP-14]
00A283B8  |. E8 03602A00    CALL ramat.00CCE3C0
00A283BD  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A283C0  |. 8D55 EC        LEA EDX,DWORD PTR SS:[EBP-14]
00A283C3  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A283C6  |. E8 41622A00    CALL ramat.00CCE60C
00A283CB  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A283CE  |. 8D45 EC        LEA EAX,DWORD PTR SS:[EBP-14]
00A283D1  |. BA 02000000    MOV EDX,2
00A283D6  |. E8 ED612A00    CALL ramat.00CCE5C8
00A283DB  |. E9 96010000    JMP ramat.00A28576
00A283E0  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A283E3  |. F681 A8000000 >TEST BYTE PTR DS:[ECX+A8],4
00A283EA  |. 74 36          JE SHORT ramat.00A28422
00A283EC  |. 66:C745 B0 800>MOV WORD PTR SS:[EBP-50],80
00A283F2  |. BA 49E6DE00    MOV EDX,ramat.00DEE649                   ;  ASCII " Studio"
00A283F7  |. 8D45 E8        LEA EAX,DWORD PTR SS:[EBP-18]
00A283FA  |. E8 C15F2A00    CALL ramat.00CCE3C0
00A283FF  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A28402  |. 8D55 E8        LEA EDX,DWORD PTR SS:[EBP-18]
00A28405  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A28408  |. E8 FF612A00    CALL ramat.00CCE60C
00A2840D  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28410  |. 8D45 E8        LEA EAX,DWORD PTR SS:[EBP-18]
00A28413  |. BA 02000000    MOV EDX,2
00A28418  |. E8 AB612A00    CALL ramat.00CCE5C8
00A2841D  |. E9 54010000    JMP ramat.00A28576
00A28422  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A28425  |. F681 A8000000 >TEST BYTE PTR DS:[ECX+A8],2
00A2842C  |. 74 36          JE SHORT ramat.00A28464
00A2842E  |. 66:C745 B0 8C0>MOV WORD PTR SS:[EBP-50],8C
00A28434  |. BA 51E6DE00    MOV EDX,ramat.00DEE651                   ;  ASCII " Professional"
00A28439  |. 8D45 E4        LEA EAX,DWORD PTR SS:[EBP-1C]
00A2843C  |. E8 7F5F2A00    CALL ramat.00CCE3C0
00A28441  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A28444  |. 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]
00A28447  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A2844A  |. E8 BD612A00    CALL ramat.00CCE60C
00A2844F  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28452  |. 8D45 E4        LEA EAX,DWORD PTR SS:[EBP-1C]
00A28455  |. BA 02000000    MOV EDX,2
00A2845A  |. E8 69612A00    CALL ramat.00CCE5C8
00A2845F  |. E9 12010000    JMP ramat.00A28576
00A28464  |> 8B4D 0C        MOV ECX,DWORD PTR SS:[EBP+C]
00A28467  |. F681 A8000000 >TEST BYTE PTR DS:[ECX+A8],1
00A2846E  |. 74 36          JE SHORT ramat.00A284A6
00A28470  |. 66:C745 B0 980>MOV WORD PTR SS:[EBP-50],98
00A28476  |. BA 5FE6DE00    MOV EDX,ramat.00DEE65F                   ;  ASCII " Lite"
00A2847B  |. 8D45 E0        LEA EAX,DWORD PTR SS:[EBP-20]
00A2847E  |. E8 3D5F2A00    CALL ramat.00CCE3C0
00A28483  |. FF45 BC        INC DWORD PTR SS:[EBP-44]
00A28486  |. 8D55 E0        LEA EDX,DWORD PTR SS:[EBP-20]
00A28489  |. 8D45 FC        LEA EAX,DWORD PTR SS:[EBP-4]
00A2848C  |. E8 7B612A00    CALL ramat.00CCE60C
00A28491  |. FF4D BC        DEC DWORD PTR SS:[EBP-44]
00A28494  |. 8D45 E0        LEA EAX,DWORD PTR SS:[EBP-20]
00A28497  |. BA 02000000    MOV EDX,2
00A2849C  |. E8 27612A00    CALL ramat.00CCE5C8
00A284A1  |. E9 D0000000    JMP ramat.00A28576
00A284A6  |> 8D4D A0        LEA ECX,DWORD PTR SS:[EBP-60]
00A284A9  |. 51             PUSH ECX
00A284AA  |. 6A 00          PUSH 0
00A284AC  |. 6A 00          PUSH 0
00A284AE  |. 6A 00          PUSH 0
00A284B0  |. 6A 01          PUSH 1
00A284B2  |. 68 988F4000    PUSH ramat.00408F98                      ;  Entry address


Me pongo a mirarlo por ahí.

Así da gusto aprender. Thanks por colaborar en mi causa.

nemus

Vuelta al estudio, a partir de hoy me toca trabajar  las tardes-noche,  durmiendo algo por las noches  :xD. Vamos ver si aprovecho estos días.


Anduve rastreando la posición de memoria [ECX+AC], en la versión nueva que ha posteado LSL.

Tambien decir que si alguien anduvo trasteando con la versión que colgué, la situación es diferente debido a que son dos valores a seguir, los de los apuntadores  [EDX+98] y [ECX+A8] .  Para no liarnos voy a seguir con la nueva versión ya que el objetivo de trabajar con la vieja versión fue la comprensión del desempacado Yodas Protector.

Con los datos facilitados por LSL:


Citaraqui os pongo enlace de descarga de la ultima versión free, para que no os de problemas de fechas de instalación, etc.; además esta versión no tiene packer y esta compilada en Borland C++ 1999 (y pesa 23,67 MB para la descarga) http://www.mediafire.com/?do3ts90rhdd0yod, el periodo de prueba dice es de 60 dias, desde su instalación, con el limite de que solo se puede utiizar hasta 15/02/11.

miren este código:

en el valor que se hay en [ECX+AC] tenemos el indicativo o puntero de la versión, siendo 0 la de evaluación, 1 Lite, 2 Profesional, 4 Studio, 8 Enterprise, 10 Consultant

009B444D  |.  83B9 AC000000>CMP DWORD PTR [ECX+AC],0                  ;  el valor en dicha direccion identifica la versión a mostrar
009B4454  |.  0F85 F7000000 JNZ 009B4551                             ;  salta para versiones superiores a la de evaluacion


La cuestión es encontrar en el primer sitio que a la direccion e [ECX+AC] de referencia se le pasa el valor 0 para pasarle el valor de la versión que nos interese tener, y con esto se acaba el asunto de los 60 del periodo de evaluación, pero nos queda el escoyo de saltarnos la fecha del 15/02/11 para seguir utilizando el programa a partir de dicha fecha.


He intentado seguir los apuntadores a ese valor de memoria, pero varia la dirección de memoria apuntada, es decir que no me sirve poner un breakpoint(BP) on Memory en el byte correspondiente, tampoco me sirve poner un hardware BP. ¿Algún consejo ?

Gracias.

LSL

#15
Hola nemus, en la dirección de memoria donde te apunta [ECX+AC], en mi ordenador es [02326DD0] le pones un BP Hardware, on write Dword.
reinicias Ctrl+F2, y ejecutas con F9, ahora te debe parar en
00D76491  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD PTR [ESI]
aqui no le hagas caso, sigues con F9

despues en
009B2E38  |.  8D45 CC       LEA EAX,DWORD PTR [EBP-34]

ahí en la instrucción anterior te ha puesto la direccion de referencia a cero, con
009B2E30  |.  33D2                XOR EDX,EDX
009B2E32  |.  8990 AC000000 MOV DWORD PTR [EAX+AC],EDX

aquí por ahora tampoco le hagas caso, pues despues va a poner a cero de nuevo en el siguiente acceso, que es en

009B4269  |.  8990 AC000000 MOV DWORD PTR [EAX+AC],EDX

ahora aquí
009B4267  |.  33D2                       XOR EDX,EDX
009B4269  |.  8990 AC000000        MOV DWORD PTR [EAX+AC],EDX

es donde tienes que ingeniartelas para mover a la dirección que apunta [EAX+AC] el valor de la versión que te interese (pudiendo ser como verás mas abajo los valores 10,8,4,2,1).

P.d. tienes todo este trozo de código para reprogramar con objeto de obtener el objetivo,
009B4267  |.  33D2                       XOR EDX,EDX
009B4269  |.  8990 AC000000        MOV DWORD PTR [EAX+AC],EDX
009B426F  |>  8B4D 08                 MOV ECX,DWORD PTR [EBP+8]
009B4272  |.  F681 AC000000 04   TEST BYTE PTR [ECX+AC],4
009B4279  |.  74 51                      JE SHORT 009B42CC                                 ;  salta

la cuestión es MOV DWORD PTR [EAX+AC],4 (me parece que el valor 4 de Studio es mas completa que la 2 de Professional), y saltar siempre a 009b42CC, con JMP SHORT 009B42CC

el resto de codigo existente no importa NOPearlo pues solo se utiliza para comparar y que se produzca el salto condicional, y en tu caso te conviene ahí saltar siempre.

....

Con esto solucionas el periodo trial de 60 dias, pero esta version free tiene otro limite de uso hasta el 15/02/11  :silbar:, tendrás que localizar la comparación de fechas y ...




Saludos.

LSL.

nemus

#16
LSL:
Ante nada agradecerte el esfuerzo en guiarme entre la penumbra

Sigamos:

Cita de: LSL en 18 Septiembre 2010, 07:05 AM
Hola nemus, en la dirección de memoria donde te apunta [ECX+AC], en mi ordenador es [02326DD0] le pones un BP Hardware, on write Dword.

Mi problema es que no para en el BP Hardware, on write Dword, ya que si inicialmente la dirección de memoria apuntada en [ECX+AC], en mi ordenador es [021A1304].
Citar
009B444D  |.  83B9 AC000000>CMP DWORD PTR DS:[ECX+AC],0
----------------------------------------------------------------------------
DS:[021A1304]=00000000
ramat.@TSiglopro@GetTitolExtes$qv+0CD


Pero al reiniciar el programa (Ctrl+F2), no para en Bp Hardware, debido a que en [ECX+AC], su dirección de memoria apuntada es diferente [021A1304]
Citar
009B444D  |.  83B9 AC000000>CMP DWORD PTR DS:[ECX+AC],0
-----------------------------------------------------------------------------
DS:[021A1304]=00000000
ramat.@TSiglopro@GetTitolExtes$qv+0CD

Supongo que debido a los innumerables ensayos, habré activado alguna protección. He restaurado el registro de windows, incluso he restaurado el estado. Pero sigue cambiandome la dirección apuntada.

Seguiré mirando, a ver si doy con ello.

Saludos.

LSL

#17
quiero entender que cada vez que reinicias y paras en el BP de la dirección 009B444D, en la ventana de información te dice que [ECX+AC] apunta a la
DS:[021A1304]=00000000
y que le pones el BPH en dicha dirección, pero no para al correr el programa de nuevo.
Me imagino que sabes poner los hardware breakpoint on write, pero por si acaso lo explico.

para poner en esa dirección el BPH on write, sobre esa linea de información
-------------------------------------------------
DS:[021A1304]=00000000
ramat.@TSiglopro@GetTitolExtes$qv+0CD
-------------------------------------------------
pinchas con el click derecho, y seleccionas "Follow address in Dump", ahora en la ventana del Dump (abajo a la izquierda), se ha posicionado sobre la dirección del Dump en memoria 021A1304, y en esa ventana del Dump seleccionas los 4 pares de bytes 00 00 00 00 existentes en dicha dirección, una vez seleccionados, clic derecho y Breakpoint > Hardware, on write > Dword,

comprueba de que realmente se ha puesto el BPH, mira en el Menu Debug -> Hardware breakpoint, para ver si está, vaya ser que tengas mas de 4 y tendrás que borrarlos y dejar solo este.

Saludos.

LSL.

nemus

Cita de: LSL en 20 Septiembre 2010, 00:32 AM
quiero entender que cada vez que reinicias y paras en el BP de la dirección 009B444D, en la ventana de información te dice que [ECX+AC] apunta a la
DS:[021A1304]=00000000

Cada vez que reinicio y paro en la dirección 009B444D del desensamblador  [ECX+AC] apunta a una dirección diferente.

Ejemplo:

(arranco, cargo el programa en olly y para en BP 009B444D)
[ECX+AC]: apunta a DS:[02ADFF34]=00000000 ramat.@TSiglopro@GetTitolExtes$qv+0CD

En la dirección apuntada de memoria[02ADFF34], marco los 4 primeros bytes(dword):"00000000", botón derecho del ratón y en el menú selecciono  Breakpoint---Hardware, on write ---Dword

Verificación del posicionamiento del breakpoint Hardware, on write: Debug --- Hardware Breakpoints, allí aparece Base:"02ADFF34", Size:"4", Stop on:"Write". Es decir, la posición deseada, sus 4 bytes y en modo de paro solo cuando la memoria sea escrita.

Reinicio la carga en olly con Ctrl+F2, para en Entry Point, sigo con Run(F9) y para otra vez en en el BP 009B444D
[ECX+AC]: apunta a DS:03016DD0=00000000
ramat.@TSiglopro@GetTitolExtes$qv+0CD

Así sucesivamente, cambia la memoria apuntada cada vez que reinicio la carga del programa.

Por consiguiente, si cambia la dirección de memoria asignada, el BP Hardware no hace su función ya que apunta a una dirección no usada.

Deduzco que se me ha activado alguna protección especial al cargar una base de datos de la versión anterior. La copia pesa 1,5 mb, la podeis descargar de: http://www.megaupload.com/?d=AKL3RRT3

Para cargar una copia de seguridad de la base de datos "extensión.fbk ": Archivo --- Restaurar copiar de seguridad

La recuperación de la copia de seguridad crea una base de datos "extensión.fdb" en el directorio:

XP: C:\Documents and Settings\All Users\Datos de programa\Ag****\P*******\2009\Databases

VISTA:C:\Users\All Users\Ag****\P*******\2009\Databases


Tomad vuestras precauciones con el programa, copias de registro, punto de restauración, control de archivos nuevos o modificados, ...  Pienso que debe crear o modificar algún archivo con el cual debe comparar algo. Una vez cargada la nueva base de datos es funcional pero en modo gratuito. Hay que reiniciar el programa para ver como cambia a modo Free. El tiempo de prueba se ha agotado y se ha activado la versión free. Desapareciendo entre ellas muchas funciones como por ejemplo:

Archivo --- Crear copiar de seguridad
Archivo --- Restaurar copiar de seguridad
Desaparecen varios accessos de la interface del programa como: "Economia", "Handled", ...


No he encontrado la vuelta atrás todavía, pero llegará.

Saludos.


LSL

#19
pues restaurada la base de datos de referencia, los BPH me siguen saliendo bien en las mismas direcciones en las que apunta siempre, si detecta en la base de datos restaurada que el periodo de evalua ha caducado y sale con la versión free, aunque solo lleve unos dias con el programa instalado.

buscado porqué deshabilita ciertas opciones, traceando he llegado hasta la siguiente función, donde se encuentra la madre del cordero, aunque este sea un programa para cerdilandia.  ;D

009BB8F4 >/$  55            PUSH EBP
009BB8F5  |.  8BEC          MOV EBP,ESP
009BB8F7  |.  8B45 08       MOV EAX,DWORD PTR [EBP+8]
009BB8FA  |.  8378 08 01    CMP DWORD PTR [EAX+8],1
009BB8FE  |.  75 04         JNZ SHORT 009BB904
009BB900  |.  B0 01         MOV AL,1
009BB902  |.  5D            POP EBP
009BB903  |.  C3            RETN
009BB904  |>  8B55 08       MOV EDX,DWORD PTR [EBP+8]
009BB907  |.  837A 08 FF    CMP DWORD PTR [EDX+8],-1
009BB90B  |.  75 1E         JNZ SHORT 009BB92B
009BB90D  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; /Arg1
009BB910  |.  E8 BB010000   CALL @TComptaDB@Read$qv                  ; \@TComptaDB@Read$qv
009BB915  |.  59            POP ECX
009BB916  |.  3D FA000000   CMP EAX,0FA
009BB91B  |.  7C 0E         JL SHORT 009BB92B
009BB91D  |.  8B4D 08       MOV ECX,DWORD PTR [EBP+8]
009BB920  |.  C741 08 01000>MOV DWORD PTR [ECX+8],1
009BB927  |.  B0 01         MOV AL,1
009BB929  |.  5D            POP EBP
009BB92A  |.  C3            RETN
009BB92B  |>  FF75 08       PUSH DWORD PTR [EBP+8]                   ; /Arg1
009BB92E  |.  E8 A9000000   CALL @TComptaDB@ReadMarcaFi$qv           ; \@TComptaDB@ReadMarcaFi$qv
009BB933  |.  59            POP ECX
009BB934      84C0          TEST AL,AL
009BB936  |.  74 0E         JE SHORT 009BB946
009BB938  |.  8B55 08       MOV EDX,DWORD PTR [EBP+8]
009BB93B  |.  C742 08 01000>MOV DWORD PTR [EDX+8],1
009BB942  |.  B0 01         MOV AL,1
009BB944  |.  5D            POP EBP
009BB945  |.  C3            RETN
009BB946  |>  33C0          XOR EAX,EAX
009BB948  |.  5D            POP EBP
009BB949  \.  C3            RETN

si AL sale con 1 oculta ciertas opciones. (es un lujo para la vista tenerlo todo habilitado).

y si lo acompañas de lo comentado anteriormente

009B4267  |.  33D2                                 XOR EDX,EDX
009B4269      C780 AC000000 04000000   MOV DWORD PTR [EAX+AC],4
009B4273      90                                      NOP
009B4274      90                                      NOP
009B4275      90                                      NOP
009B4276      90                                      NOP
009B4277      90                                      NOP
009B4278      90                                      NOP
009B4279      EB 51                                 JMP SHORT 009B42CC

verás el resultado.




Saludos.

LSL.