Este apartado:
1.
009B40E1 |> 84C0 TEST AL,AL
009B40E3 |. 0F95C0 SETNE AL
009B40E6 |. 83E0 01 AND EAX,1
.modificado
009B40E1 |> \84C0 TEST AL,AL
009B40E3 |. 0F94C0 SETE AL
009B40E6 |. 83E0 01 AND EAX,1
junto con este otro:
00405A95 |. E8 92F75A00 CALL @TSiglopro@GetLicense$qv
00405A9A |. 50 PUSH EAX ; |Arg1
00405A9B |. E8 E8E55A00 CALL @TSiglopro@IsModule$q7TModule ; \@TSiglopro@IsModule$q7TModule
00405AA0 |. 83C4 08 ADD ESP,8
00405AA3 |. 84C0 TEST AL,AL
00405AA5 |. 74 30 JE SHORT 00405AD7
.modificado
00405A95 |. E8 92F75A00 CALL @TSiglopro@GetLicense$qv
00405A9A |. 50 PUSH EAX ; |Arg1
00405A9B |. E8 E8E55A00 CALL @TSiglopro@IsModule$q7TModule ; \@TSiglopro@IsModule$q7TModule
00405AA0 |. 83C4 08 ADD ESP,8
00405AA3 |. 84C0 TEST AL,AL
00405AA5 |. EB 30 JMP SHORT 00405AD7
Se encargan de mostrar nuevamente los botones de la ventana: Informes --- Centro Informes (Diseño, Nuevo, Nuevo Planning). Añadido a la recapitulación.
En cambio, esta parte "Not found":
00406BBB 8945 B4 MOV DWORD PTR [EBP-4C],EAX ; eax=dias que restan hasta el 15/02/2011
00406BBE C745 98 1E000000 MOV DWORD PTR [EBP-68],1E ; compara dias que restan hasta 15/02/2011 con 30
00406BC5 837D B4 1E CMP DWORD PTR [EBP-4C],1E
00406BC9 0F8D 8B010000 JGE 00406D5A ; salta si los dias que faltan es igual o superior a 30
00406BCF |. E8 58E65A00 CALL @TSiglopro@GetLicense$qv
00406BD4 |. 83B8 AC000000 00 CMP DWORD PTR [EAX+AC],0
00406BDB |. 0F85 BF000000 JNZ 00406CA0
00406BE1 |. 66:C745 C8 0800 MOV WORD PTR [EBP-38],8
00406BE7 |. 8D45 F0 LEA EAX,DWORD PTR [EBP-10]
00406BEA |. E8 C9E0FFFF CALL 00404CB8
00406BEF |. 50 PUSH EAX
00406BF0 |. FF45 D4 INC DWORD PTR [EBP-2C]
00406BF3 |. 68 0F97DE00 PUSH 00DE970F ; ASCII "The Free version license must be renewed each year. You have %d days left. Please go to www.***********.com and download the new revision"
.modificado
00406BB6 |. E8 ADFFFFFF CALL 00406B68
00406BBB 8945 B4 MOV DWORD PTR [EBP-4C],EAX ; eax=dias que restan hasta el 15/02/2011
00406BBE C745 98 1E000>MOV DWORD PTR [EBP-68],1E
00406BC5 > 837D B4 1E CMP DWORD PTR [EBP-4C],1E ; compara dias que restan hasta 15/02/2011 con 30
00406BC9 > E9 8C010000 JMP 00406D5A ; saltar siempre sin importar si los dias que faltan ó pasan es igual o superior a 30
00406BCE 90 NOP
00406BCF |. E8 58E65A00 CALL @TSiglopro@GetLicense$qv
00406BD4 |. 83B8 AC000000>CMP DWORD PTR [EAX+AC],0
00406BDB |. 0F85 BF000000 JNZ 00406CA0
00406BE1 |. 66:C745 C8 08>MOV WORD PTR [EBP-38],8
00406BE7 |. 8D45 F0 LEA EAX,DWORD PTR [EBP-10]
00406BEA |. E8 C9E0FFFF CALL 00404CB8
00406BEF |. 50 PUSH EAX
00406BF0 |. FF45 D4 INC DWORD PTR [EBP-2C]
00406BF3 |. 68 0F97DE00 PUSH 00DE970F ; ASCII "The Free version license must be renewed each year. You have %d days left. Please go to www.***********.com and download the new revision"
Con esto evitamos caducidad al 15/02/2011 y creo que tambien evita la desaparición de algunos menú, que se perdian despues del periodo de prueba.
009B3D32 |. 84C0 TEST AL,AL
009B3D34 0F85 C2000000 JNZ 009B3DFC ; saltar
009B3D3A |. 8D4D A0 LEA ECX,DWORD PTR [EBP-60]
.modificado
009B3D32 |. 84C0 TEST AL,AL
009B3D34 E9 C3000000 JMP 009B3DFC ; saltar
009B3D39 90 NOP
009B3D3A |. 8D4D A0 LEA ECX,DWORD PTR [EBP-60]
Con esto evitamos que al comportarse como versión registrada se crea que tiene licencia despues del periodo de prueba, para que no la compruebe.
De todas maneras no le des mas vueltas a la parte fin de fecha, esta solucionada en el apartado 2.1.2. de la recapitulación.
Evita entrar en Modo Cierre 009B3949 |. 0F84 2601000 JE 009B3A75 modificar
009B3949 |. E9 27010000 JMP 009B3A75
009B394E |. 90 NOP 009B3D34 |. 0F85 C2000000 JNZ 009B3DFC modificar
009B3D34 |. E9 C3000000 JMP 009B3DFC
009B3D39 |. 90 NOPExplicación:
La detección de la fecha 16/2/2011 empieza en este primer CALL 009B5188 que es donde dicha fecha se carga en el Stack:
009B392A . E8 59180000 CALL 009B5188 \@TSiglopro@GetDtAtur$qv
009B392F . 59 POP ECX
009B3930 . DD9D F4FEFFFF FSTP QWORD PTR SS:[EBP-10C] ; Extrae fecha en un dato real de la FPU
009B3936 . 8D95 F4FEFFFF LEA EDX,DWORD PTR SS:[EBP-10C] ; Guarda en EDX la dirección de la (fecha máxima)
009B393C . 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100] ; Guarda en EAX la creo que la (fechaSistema)
009B3942 . E8 5924A6FF CALL 00415DA0 ; En este CALL se produce la comparación.
00415DA0 /$ 55 PUSH EBP
00415DA1 |. 8BEC MOV EBP,ESP
00415DA3 |. 83C4 F8 ADD ESP,-8
00415DA6 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
00415DA9 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00415DAC |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00415DAF |. DD00 FLD QWORD PTR DS:[EAX] ; Guarda en FPU(ST0) el valor pila[EAX]=fechaSistema
00415DB1 |. 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
00415DB4 |. DC1A FCOMP QWORD PTR DS:[EDX] ; Compara ST0 con el valor pila[EDX]=16/2/2011
00415DB6 |. DFE0 FSTSW AX ; Almacena el resultado de la comparación en AX
00415DB8 |. 9E SAHF ; Enciende las banderas o bits de (FPU) C"acarreo", A"paridad", Z"cero" ...
00415DB9 |. 0F97C0 SETA AL ; Escribe el bit resultado TRUE/FALSE de la comparación en AL
00415DBC |. 83E0 01 AND EAX,1
00415DBF |. 59 POP ECX
00415DC0 |. 59 POP ECX
00415DC1 |. 5D POP EBP
00415DC2 \. C3 RETN ;regresar del CALL
009B3947 . 84C0 TEST AL,AL
009B3949 |. 0F84 2601000 JE 009B3A75 ; Modificar para evitar la comparación de fechas
...009B3D34 |. 0F85 C2000000 JNZ 009B3DFC ; Modificado por Observación del comportamiento en Modo Gratuito; Es decir, anteriormente al salto alguna comparación realiza.
@LSL: Voy a betatestear tu último post.