Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: nemus en 27 Agosto 2010, 13:58 pm



Título: Problemilla con un trial.
Publicado por: nemus en 27 Agosto 2010, 13:58 pm
En primer lugar un saludo a tod@s.

Comentaros  que llevo tiempo siguiendo las interesantes aportaciones de este foro. Aunque me considero en estos temas un opositor a aprendiz, sin demasiado tiempo para dedicarle al estudio. El periodo de vacaciones del verano pasado continué mis estudios practicando con el desempaquetado  de un programa.  Estas vacaciones me había propuesto vencer sus limitaciones, pero  llevo 4 días encallado. Hecha mi presentación voy a describir mi problema.

Una vez  desempacado el trial decido estudiar sus limitaciones.

El programa permite uso full durante el período de 90 días. Pasada la fecha solo posibilita el uso de un reducido número de funciones.

Inicialmente cuando se carga aparece una NAG informativa que nos indica la fecha máxima del uso en modo full. Es decir, la comparación de fechas ya se ha realizado. Al aceptar la NAG informativa aparece otra ventana preguntando que base de datos queremos cargar. Aparecen un par de bases de ejemplo una vacía y otra con datos, son archivos con extensión  .fdb  (base de datos firebird, …)
Mi teoría es que compara la fecha del archivo .fdb o alguna  clave de registro, con la fecha del  sistema.

He intentado con:

GetSystemTime
SystemTimeToFileTime
GetSystemTimeAsFileTime
FileTimeToLocalFileTime

FileTimeToDosDateTime:   Con esta API para al escoger el .fdb, pero a partir de ahí me marea y me pasa por alto la comparación.

Ahí tenéis el programa y su dump:  http://www.megaupload.com/?d=Y25QMRFI

Espero podáis echarme una mano antes que se acaben mis vacaciones, gracias por anticipado.


Título: Re: Problemilla con un trial.
Publicado por: Mintaka en 27 Agosto 2010, 18:05 pm
Hola:
A mí personalmente, me gusta hallar la call que provoca la nagscreen y lo consigo mediante el método llamado "a lo retro".Este método consiste en colocar un breakpoint en el Olly (BP DestroyWindow) antes de cerrar esa nag.Cuando la cierras Olly detiene la ejecución justo cuando entra en el procedimiento de borrar la nag.Seguidamente de doy a ALT+F9 y me deja parado una instrucción después de la call para sacar la nag cojonera.A partir de ahí hay ir observando hacia atrás, en el código, y colocar breakpoints en los lugares sospechosos que te llevan a la esa call maldita.Reiniciar Olly e ir observando que sucede a partir de esos BP's y si es preciso retroceder más en el código para descubrir donde descuenta los días.A veces es tan simple, como ver una resta a 5A (90 decimal).
De todos modos, existen bastantes escritos sobre las nags por aquí:

*http://ricardonarvaja.info/WEB/CURSO NUEVO/TEORIAS NUMERADAS/*:

816-Quitando nagscreen en vb.zip

838-COMO_ELIMINAR_NAGS_EN_PROGRAMAS_DELPHI.rar

834-Registrando Secutity Task Manager por ZiKaTRiZ.rar

323-Desempacado y quitando la nag de Soldat v1.21 (ASPr v1.2).rar

932-Parcheando y quitando NagS a un EXE por CaR19.rar

1012-Teoria sobre como eliminar un NAG con nada mas mirrar la pila.rar

177-COMO HACER UN LOADER SENCILLO QUE PULSE BOTONES PARA ELIMINAR NAGS.rar

115-OLLY_Contra_NAG_Parte_III.zip

200-Como realizar un injerto para eliminar una nag simulando que se presiona el boton .rar

100-OLLY_Contra_NAG_Parte_II.rar

095-OLLY Contra Las NAG Parte I por Arapumk.rar

*http://ricardonarvaja.info/WEB/OTROS/AKIRA TODO/*:

35.Estudio completo de Nag Screen.rar

Suerte,

Mintaka

PD:A ver si se despierta el amigo Tena y te da sus consejos.


Título: Re: Problemilla con un trial.
Publicado por: nemus en 31 Agosto 2010, 22:21 pm
Primero dar las gracias a Mintaka por su interés en ayudarme.

Una vez finalizado el repaso a los tutoriales sobre la destrucción de NAGs , la conclusión es que me ha ayudado a confirmar mas mi sospecha.

El ocultar (jumpear) la NAG inicial, confirma que la fecha de final de periodo que en ella aparece no es significativa, solo informativa.  Es decir, al jumpear la NAG el programa ya no compara la de fecha para mostrarla  y por lo tanto la fecha que aparecía en ella solo se comparaba para mostrarla de manera informativa. Esto verifica que la fecha de NAG informativa no interviene en la validación de fechas .

En cambio,  la segunda NAG que aparece en la cual nos ofrece la posibilidad de escoger la base de datos (archivo .fdb) a cargar, es la que en alguno de sus CALLs previos se encarga de comparar la fecha con alguna  clave de registro, o con la fecha del  sistema.

He intentado con:
RegQueryValueExA
RegCreateKeyExA:  A través de esta API he descubierto que pasados los 90 días modifica una clave situada en “HKEY_CURRENT_USER\Software\Microsoft\MSInfo” esta clave durante el periodo full contienen el valor 0, y finalizado el periodo lo cambia a 1. Una vez modificado el valor el programa oculta el acceso a parte las funciones del modo full del programa. Dejando al programa solo con las funciones free.
RegSetValueExA
RegOpenKeyExA
RegClosedKeyExA

Sigo perdido, pero luchando!  :)

Preparado para nuevas sugerencias solo me quedan 5 días de vacaciones. :-(

Una ayudita! Thanks.



Título: Re: Problemilla con un trial.
Publicado por: Paul Young en 1 Septiembre 2010, 03:53 am
que tal compaéros

pues yo no se mucho (casi nada) de esto pero me interesa mucho el ver que con el olly se pueda hacer en base a break points que algun programa (trial) se pueda ejecutar como full

es posible?? :huh:


Título: Re: Problemilla con un trial.
Publicado por: nemus en 1 Septiembre 2010, 07:35 am
Hola peke2305,

En este caso en concreto el programa tiene parte gratuito y otra parte a prueba temporal de 90 días. Se instala con todas las funciones disponibles y una vez superado el período de evaluación dejan de funcionar las funciones de evaluación y solo permanecen activas las funciones gratuitas.

Si un programa no trae todas las funciones, entonces no hay nada que hacer en ingeniería inversa, ya que no podemos activar unas funciones que no están en el programa. En ese caso estaríamos hablando de programar en Olly las funciones que faltan en lenguaje ensamblador(ASM), tarea fuera de toda lógica teniendo en cuenta el numero de lenguajes de alto nivel que disponemos para programar.

Espero que mi explicación no te confunda mas. Sino seguro que los maestros lo enfocaran mejor.



Sigo todavía en juego. Por ahora he topado con un salto que evita entrar en el CALL que modifica el registro de sistema comentado en el post anterior, me he acercado a la zona con el API RegSetValueExA. Pero sigo a oscuras en el tema de la comparación de fechas. Alguna sugerencia, please!




Título: Re: Problemilla con un trial.
Publicado por: Mintaka en 1 Septiembre 2010, 22:03 pm
.......
RegCreateKeyExA:  A través de esta API he descubierto que pasados los 90 días modifica una clave situada en “HKEY_CURRENT_USER\Software\Microsoft\MSInfo” esta clave durante el periodo full contienen el valor 0, y finalizado el periodo lo cambia a 1. Una vez modificado el valor el programa oculta el acceso a parte las funciones del modo full del programa. Dejando al programa solo con las funciones free.
RegSetValueExA
RegOpenKeyExA
RegClosedKeyExA

Sigo perdido, pero luchando!  :)

Preparado para nuevas sugerencias solo me quedan 5 días de vacaciones. :-(

Una ayudita! Thanks.[/size]


Bueno.¿Qué tal si averiguas en que parte del código intenta cambiar ese valor a 1?.
Y sabiéndolo, ¿porqué no cambiar ese valor 1 que quiere ponerle, por un cero?.
He intentado bajarme el programa y me dice que:

El archivo al que está intentando acceder está temporalmente desactivado

Animo que estás más cerca.


Título: Re: Problemilla con un trial.
Publicado por: nemus en 2 Septiembre 2010, 15:45 pm

Bueno.¿Qué tal si averiguas en que parte del código intenta cambiar ese valor a 1?.
Y sabiéndolo, ¿porqué no cambiar ese valor 1 que quiere ponerle, por un cero?.

He intentado bajarme el programa y me dice que:
El archivo al que está intentando acceder está temporalmente desactivado



La Nag inicial y la parte de escritura de la clave del registro esta arreglado.

El programa arranca sin la nag informativa y solo me pregunta que archivo de datos quiero cargar. Cuando el archivo de datos .fdb elegido tenia fecha posterior a la permitida entonces es cuando escribía el 1 en la susodicha clave de registro. Al jumpear el momento de escritura en la clave, el programa detecta la fecha incorrecta pero no puede escribir en el registro el valor 1, por tanto el programa permite el uso full dentro del período permitido con un archivo de datos con fecha fuera de los limites permitido.

Sigue quedando la limitación por fecha, si esta limitación la hubiera solucionado en primera posición, el resto de limitaciones no aparecerían. Estoy en el estudio de los métodos de como oculta la fecha.

Por cierto, a mi si que me funciona la descarga del archivo que  contiene el programa y el dump desempacado.

Si tienes tiempo y ganas echale un vistazo, mientras lo intentaré acabar.

Saludos.


Título: Re: Problemilla con un trial.
Publicado por: nemus en 3 Septiembre 2010, 18:41 pm
Me estoy volviendo loco! Pensaba que estaba cerca y la cosa se ha complicado. Al invertir un salto me ha bloqueado nuevamente el programa, y no se que registro me ha modificado. He restaurado el registro y he vuelto al estado anterior.

Si instaláis el programa con la fecha actual sale una nag indicando que el programa esta fuera de fechas y se cierra.

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.


Título: Re: Problemilla con un trial.
Publicado por: MCKSys Argentina en 3 Septiembre 2010, 19:58 pm
En que esta hecho el EXE??


Título: Re: Problemilla con un trial.
Publicado por: nemus en 3 Septiembre 2010, 20:50 pm
En que esta hecho el EXE??

Estaba empaquetado con Yoda's Protector


y desempaquetado  Borland C++ for Win32 1999

Gracias.


Título: Re: Problemilla con un trial.
Publicado por: 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!


Título: Re: Problemilla con un trial.
Publicado por: 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
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.


Título: Re: Problemilla con un trial.
Publicado por: Mintaka en 4 Septiembre 2010, 17:19 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


Título: Re: Problemilla con un trial.
Publicado por: nemus en 4 Septiembre 2010, 22:05 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?




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!


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.


Título: Re: Problemilla con un trial.
Publicado por: nemus en 16 Septiembre 2010, 15:28 pm
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:


Citar
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.


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.


Título: Re: Problemilla con un trial.
Publicado por: 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.
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 ...






Título: Re: Problemilla con un trial.
Publicado por: nemus en 19 Septiembre 2010, 12:32 pm
LSL:
Ante nada agradecerte el esfuerzo en guiarme entre la penumbra

Sigamos:

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.


Título: Re: Problemilla con un trial.
Publicado por: 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
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.



Título: Re: Problemilla con un trial.
Publicado por: nemus en 20 Septiembre 2010, 16:12 pm
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.



Título: Re: Problemilla con un trial.
Publicado por: LSL en 21 Septiembre 2010, 03:42 am
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.






Título: Re: Problemilla con un trial.
Publicado por: nemus en 21 Septiembre 2010, 13:13 pm
Elegante, elegante!  :o :o

Con solo modificar 5 lineas, has conseguido en esta versión lo que necesite tropecientos JMP en la versión anterior para ver algo de luz. Y como no, con los JMPs llegaron las excepciones (Ctrl+F9)  ;D, muy chapucero pero por las pruebas que realicé parecía funcional. La oscuridad la controle como explique anteriormente controlando la escritura de la clave MSNetOLE5. No dejando que el programa encendiera su bit.

Con tu enfoque y la nueva versión me he enloquecido debido al Hardware BP saltarin que me ha salido. Para darme una satisfacción he instalado un XP en la maquina virtual, instalando la nueva versión del programa. Con XP y nueva instalación el saltarin se ha tranquilizado. Supongo que alguna otra protección habré activado para que me suceda esto en Vista. :-\

Realizada las modificaciones que me has enseñado, el programa funciona a la perfección y sin excepciones (Ctrl+F9)  ;-)

Si no es mucha molestia me gustaría me explicases como llegaste a descubrir el apartado:

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
...

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

------------------------------------------------------------------
Comparando, he visto que existen algunas partes importantes ocultas:

*Fichero --- Opciones Configuración:
 +- Configuración
         Validación de datos (mostrado)
         Ordenador de Mano (oculto)
         Seguimiento Actividad (mostrado)
         Filtros (oculto)

*Informes --- Centro de Informes: Debajo del botón abrir faltan varios botones “Diseño, Nuevo y Nuevo Planning”
-------------------------------------------------------------------

¿Para mostrar las opciones ocultas seria elegante nopear los siguientes saltos?

00A66E51  |.  74 66         JE SHORT ramat.00A66EB9
00A66E53  |.  6A 00         PUSH 0
00A66E55  |.  6A 00         PUSH 0
00A66E57  |.  6A 16         PUSH 16
00A66E59  |.  66:C785 44FFF>MOV WORD PTR SS:[EBP-BC],8C
00A66E62  |.  68 9321E800   PUSH ramat.00E82193          ;  ASCII "Ordinador Ma"
...
00A66F97  |. /74 66         JE SHORT ramat.00A66FFF
...
00A67077  |. /0F84 CC000000 JE ramat.00A67149
...
00A676B2  |. /74 66         JE SHORT ramat.00A6771A
...
00A67726  |. /74 66         JE SHORT ramat.00A6778E
...





Por cierto, tomad precauciones con el saltarin (sigo en su búsquedal).

LSL: gracias por tu tiempo y enseñanza.



Título: Re: Problemilla con un trial.
Publicado por: LSL en 22 Septiembre 2010, 12:11 pm
------------------------------------------------------------------
Comparando, he visto que existen algunas partes importantes ocultas:

*Fichero --- Opciones Configuración:
 +- Configuración
 Validación de datos (mostrado)
 Ordenador de Mano (oculto)
 Seguimiento Actividad (mostrado)
 Filtros (oculto)

*Informes --- Centro de Informes: Debajo del botón abrir faltan varios botones “Diseño, Nuevo y Nuevo Planning”
-------------------------------------------------------------------

¿Para mostrar las opciones ocultas seria elegante nopear los siguientes saltos?

00A66E51 |. 74 66 JE SHORT ramat.00A66EB9
00A66E53 |. 6A 00 PUSH 0
00A66E55 |. 6A 00 PUSH 0
00A66E57 |. 6A 16 PUSH 16
00A66E59 |. 66:C785 44FFF>MOV WORD PTR SS:[EBP-BC],8C
00A66E62 |. 68 9321E800 PUSH ramat.00E82193 ; ASCII "Ordinador Ma"
...
00A66F97 |. /74 66 JE SHORT ramat.00A66FFF
...
00A67077 |. /0F84 CC000000 JE ramat.00A67149
...
00A676B2 |. /74 66 JE SHORT ramat.00A6771A
...
00A67726 |. /74 66 JE SHORT ramat.00A6778E
...





Por cierto, tomad precauciones con el saltarin (sigo en su búsquedal).

LSL: gracias por tu tiempo y enseñanza.


Las gracias no se merecen, estamos para ayudarnos siempre que podamos.

lo de nopear los saltos, siempre que sea el resultado definitivo tambien quedan "elegantes", pero si para que se produzca ese salto, previamente hay una comparación que es producto del resultado que devuelve una función llamada por un call, quizas es mas conveniente entrar en ese call y modificar el codigo de la función para que siempre nos devuelva el valor deseado por ejemplo en AL, EAX, una constante, etc, que normamente es la que se compara a la vuelta para que se produzca el salto condicional. Con esto quizas solo con cambiar un byte ó unos cuantos, en vez de nopear un moton de saltos por todo el programa, por que hay programas que llaman a una misma función cientos de veces. (es cuestión de buscar siempre que con un solo disparo caigan mas de un pajaro).
 


Título: Re: Problemilla con un trial.
Publicado por: nemus en 24 Septiembre 2010, 10:53 am
Pequeño retroceso   :-\, con la restauración de la base de datos, o con los NOPs añadidos citados en los anteriores mensajes, o por algún contador de apertura del programa, lo cierto es que han desaparecido algunas partes del menú:

Los NOPs añadidos son (personalmente, creo que no son culpables de activar la nueva protección):



¿Para mostrar las opciones ocultas seria elegante nopear los siguientes saltos?

00A66E51 |. 74 66 JE SHORT ramat.00A66EB9
...
00A66F97 |. /74 66 JE SHORT ramat.00A66FFF
...
00A67077 |. /0F84 CC000000 JE ramat.00A67149
...
00A676B2 |. /74 66 JE SHORT ramat.00A6771A
...
00A67726 |. /74 66 JE SHORT ramat.00A6778E
...



Han desaparecido del menú "Ficheros":
---------------------------
Reconstruir Base de Datos     (Visible)
Crear Copia Seguridad           (Invisible)
Recuperar Copias Seguridad   (Invisible)
----------------------------


También han desaparecido en "Informes --- Centro de Informes":
Debajo del botón "Abrir" faltan los botones “Diseño, Nuevo y Nuevo Planning”


¿Alguna sugerencia? no consigo que aparezca ni el menú, ni los botones.





Título: Re: Problemilla con un trial.
Publicado por: nemus en 28 Septiembre 2010, 17:14 pm
Siguiendo con el tema de la desaparición de apartados en el menú principal del programa he observado que se produce al superar la fecha límite del periodo de pruebas (60 días).

Con la solución a la limitación de 60 días presentada por LSL, la cual proporciona una usabilidad del 90% de las funciones de la versión FULL, nos encontramos que algunas de las partes como la visibilidad total del menú no se superan.

He intentado superar la limitación de la ocultación del menú:

Rastreando el API SetMenu, que me parece es la encargada de mostrar el menú en el programa. Presuponía que pudiera haber varios menús dependiendo del estado del programa. No ha habido resultados satisfactorios.

Una ayudita, otro enfoque, please.

Thanks.




Título: Re: Problemilla con un trial.
Publicado por: LSL en 30 Septiembre 2010, 00:25 am
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



2.

00B08CCA  |.  84C0          TEST AL,AL
00B08CCC  |.  74 27         JE SHORT 00B08CF5                       
00B08CCE  |.  8B4D FC       MOV ECX,DWORD PTR [EBP-4]


.modificado

00B08CCA  |.  84C0          TEST AL,AL
00B08CCC  |.  EB 27         JMP SHORT 00B08CF5               
00B08CCE  |.  8B4D FC       MOV ECX,DWORD PTR [EBP-4]



3.

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


.modificado

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      90 51                     JMP SHORT 009B42CC



4.

00415DB6  |.  DFE0                      FSTSW AX
00415DB8  |.  9E                        SAHF
00415DB9      0F97C0                    SETA AL                           
00415DBC  |.  83E0 01                   AND EAX,1


.modificado

00415DB6  |.  DFE0                      FSTSW AX
00415DB8  |.  9E                        SAHF
00415DB9      33C0                      XOR EAX,EAX
00415DBB      90                        NOP
00415DBC  |.  83E0 01                   AND EAX,1



5.

009B3F79  |.  80B8 C8000000 00          CMP BYTE PTR [EAX+C8],0
009B3F80      75 04                     JNZ SHORT 009B3F86
009B3F82  |.  33C0                      XOR EAX,EAX


.modificado

009B3F79  |.  80B8 C8000000 00          CMP BYTE PTR [EAX+C8],0
009B3F80      EB 04                     JMP SHORT 009B3F86
009B3F82  |.  33C0                      XOR EAX,EAX



6.

009BB8FA      8378 08 01                CMP DWORD PTR [EAX+8],1
009BB8FE      75 04                     JNZ SHORT 009BB904
009BB900      B0 01                     MOV AL,1


.modificado

009BB8FA      8378 08 01                CMP DWORD PTR [EAX+8],1
009BB8FE      90                        NOP
009BB8FF      90                        NOP
009BB900      B0 00                     MOV AL,0



7.

00A6CF15      84C0                      TEST AL,AL
00A6CF17  |.  74 40                     JE SHORT 00A6CF59
00A6CF19  |.  8B4D FC                   MOV ECX,DWORD PTR [EBP-4]
00A6CF1C  |.  8B81 4C030000             MOV EAX,DWORD PTR [ECX+34C]


.modificado

00A6CF15      84C0                      TEST AL,AL
00A6CF17  |.  EB 40                     JMP SHORT 00A6CF59
00A6CF19  |.  8B4D FC                   MOV ECX,DWORD PTR [EBP-4]
00A6CF1C  |.  8B81 4C030000             MOV EAX,DWORD PTR [ECX+34C]



8.

009B47DB      0F95C0                    SETNE AL
009B47DE      83E0 01                   AND EAX,1


.modificado

009B47DB      33C0                      XOR EAX,EAX
009B47DD      40                        INC EAX
009B47DE      90                        NOP
009B47DF      90                        NOP
009B47E0      90                        NOP



9.

00A795E2  |.  84C0                      TEST AL,AL
00A795E4  |.  74 0A                     JE SHORT 00A795F0
00A795E6  |.  B2 01                     MOV DL,1


.modificado

00A795E2  |.  84C0                      TEST AL,AL
00A795E4      EB 0A                     JMP SHORT 00A795F0
00A795E6  |.  B2 01                     MOV DL,1






Título: Re: Problemilla con un trial.
Publicado por: MCKSys Argentina en 30 Septiembre 2010, 00:26 am
@LSL: Si sigues asi, vas a crear tu propia version del ejecutable!
 :xD :xD :xD


Título: Re: Problemilla con un trial.
Publicado por: LSL en 30 Septiembre 2010, 00:34 am
de full, está pasando ha pasado a ¡¡¡requetefull!!!

;D


Título: Re: Problemilla con un trial.
Publicado por: nemus en 30 Septiembre 2010, 17:42 pm
@LSL: Muy a mi pesar, observando las molestias que te estas tomando con este post para ayudarme y enseñarme, siento comunicarte que en las últimas modificaciones presentadas se han solucionado algunos apartados, pero han empeorado otros:

Apartados solucionados:
Aparecen de nuevo los botones "Diseño, Nuevo, y Nuevo Planning" en: Informes --- Centro de Informes.
Aparecen las opciones ocultas del menú: Opciones --- Configuración:  Ordenador de Mano, ...

Apartados empeorados:
En el menú principal ha desaparecido el apartado:
"...   Animales   Granja   Informes   ..." 

y con ello las funciones de su submenú, entre estas funciones destacaría "Entrada Eventos". La cual tiene un acceso directo en la barra de iconos, icono también desaparecido a raíz de las últimas modificaciones. El icono del acceso se encuentra situado entre:
" ...    Engorde    Entrada Eventos    Informes   ...  "

Apartados que siguen sin solucionarse:
Pasado el período de prueba (60 días) desaparecen del menú:
  Fichero ---
     Reconstruir Base de Datos
     Crear Copia Seguridad
     Recuperar Copias Seguridad

Pasado la fecha máxima de uso (15/2/2011) no arranca el programa.

Saludos,


:) Betatester :)


Título: Re: Problemilla con un trial.
Publicado por: nemus en 2 Octubre 2010, 15:14 pm
Debido a la cuantía de limitaciones y marcas de protección del programa. Creo importante recapitular para priorizar la solución de las limitaciones:

Recapitulando:

El programa tiene 3 estadios de vida:
   A.   Modo Evaluación (FULL 90%):
      1. Entra en este estadio, el primer día que se instala cualquier versión del programa activandose el
          Modo Evaluación y permanece en el hasta entrar en Modo Gratuito.
        
   B.   Modo Gratuito     (FULL 15%),
      1. Abandona el Modo Evaluación y entra al Modo Gratuito a partir de la restauración de una copia
         de seguridad de una anterior versión y permanece en el hasta entrar en Modo Cierre.
      2. Abandona el Modo Evaluación y entra al estadio Gratuito a partir de los 60 días de la instalación del
          programa y permanece en el hasta entrar en Modo Cierre.
    
   C.   Modo Cierre        (FULL 0%),
      1. Abandona el estadio Gratuito y entra al estadio Cierre a partir de superar la fecha máxima de uso,
          el día 16/2/2011.




Intentando aplicar Lógica Inversa:
        
   1.   Evitar entrar en Modo Gratuito. El programa entra al Modo Gratuito cuando ocurren uno de los dos
        sucesos siguientes:
      1.1. Cuando se carga una base de datos creada mediante la copia de seguridad de una anterior versión
            del programa.
      1.2. Cuando pasan 60 días de la instalación del programa.

   Enfoques a las limitaciones del Modo Gratuito:
      1.1. Restaurada y cargada una base de datos de la versión anterior. Se barajan varios enfoques para
            su solución:
         1.1.1. Obligando a cargar al programa su versión mas completa. La que se identifica como Studio. Con
                  este enfoque el programa habrá cambiado al Modo Gratuito y la limitación de este modo
                  consiste en ocultar gran parte de funciones. Algunas de las funciones de esta versión permanecen
                  ocultas en este modo. Sera necesario activarlas aparte. (ver solución. 1.1.1.)
         1.1.2. Detectar la comparación de fechas mientras se realiza la restauración de la base de datos y evitar
                  el salto de estadio a Modo Gratuito. En este caso el programa permanecería en Modo
                  Evaluación con la mayoría de sus funciones visibles. (Quizá la mejor opción, pero mas difícil
                  de conseguir).


   2.   Evitar entrar en Modo Cierre. Es decir, evitar que se cierre el programa. Esto ocurre:
      2.1. Cuando el programa se carga con fecha igual o superior a 16/2/2011

   Enfoques a las limitaciones del Modo Cierre:
         2.1.1. Detectar la comparación de fechas y y evitar el salto de estadio a Modo Cierre.
         2.1.2. Cargar en Modo Gratuito (fecha anterior al 16/2/2011), y a partir de la comparación de fechas
                  anotar los saltos correctos que realiza en su función inmediata, para luego adelantar la fecha a
                  16/2/2011 y modificar los saltos que no se avengan con los anotados anteriormente. (ver solución.
                  2.1.2)


   3.   Activar algunas opciones ocultas y solo visibles para la versión Profesional para ser 100% FULL. Decir que
        cuando se carga la versión Profesional el programa carga menor numero de funciones que con la versión
        Studio. Pero la versión profesional trae algunas funciones aparte que se pueden activar para la versión
        Studio. (ver solución. 3.1.1.)





Intentando aplicar Ingeniería Inversa (Soluciones):

1.1.1. @LSL:
           Obligar a cargar al programa la versión mas completa
               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
              
               modificar

               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



        @LSL:
                Muestra parte de los iconos ocultados por el Modo Gratuito

               009BB900  |.  B0 01   MOV AL,1   modificar   009BB900  |.  B0 00   MOV AL,0
               009BB927  |.  B0 01   MOV AL,1   modificar   009BB927  |.  B0 00   MOV AL,0
               009BB942  |.  B0 01   MOV AL,1   modificar   009BB942  |.  B0 00   MOV AL,0


                 Otra Opción:
               009BB8FE  |. 75 04    JNZ SHORT 009BB904
               009BB900  |.  B0 01   MOV AL,1  
                  modificar   
               009BB8FE  |.  90       NOP
               009BB900  |.  B0 00   MOV AL,0



        @LSL:
                Muestra Botones de Informes---Centro Informes: (Abrir, Diseño, Nuevo, Nuevo Planing)

                009B40E3  |.  0F95C0   SETNE AL   modificar   009B40E3  |.  0F94C0   SETE AL
                00405AA5  |.  74 30  JE SHORT 00405AD7   modificar   00405AA5  |.  EB 30  JMP SHORT 00405AD7



         @nemus:
                Muestra las opcions de: Opciones – Configuración

               00A66E51 |.  74 66  JE SHORT 00A66EB9     modificar  00A66E51  |.  75 66   JNZ SHORT 00A66EB9
               00A66F97 |.  74 66  JE SHORT 00A66FFF      modificar  00A66F97 |.  75 66   JNZ SHORT 00A66FFF
               00A67077 |.  0F84   CC000000 JE 00A67149 modificar  00A67077  |.  0F85 CC000000 JNZ 00A67149
               00A676B2 |.  74 66  JE SHORT 00A6771A     modificar  00A676B2  |.  75 66  JNZ SHORT 00A6771A
               00A67726 |.  74 66  JE SHORT 00A6778E     modificar   00A67726  |.  75 66  JNZ SHORT 00A6778E




         @nemus:
                Muestra las pestañas de: Informes --- Centro de Informes

              0064C6C3  |. 74 66  JE SHORT 0064C70F modificar 0064C6C3  |. EB 4A JMP SHORT 0064C70F



2.1.2.    @nemus
                 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            NOP
               
               00406BC9 |. 90 0F8D 8B010000  JGE 00406D5A
               modificar
               00406BC9 |. E9 8C010000  JMP 00406D5A
               00406BCE |. 90                NOP




3.1.1. @nemus:
                Muestra otros informes de la versión profesional
              0040EB97 JNZ 0040ECE0
              modificar
              0040EB97  |. /E9 44010000   JMP 0040ECE0 ramat.0040ECE0
              0040EB9C  |? |90                NOP



Recapitulando ...


Título: Re: Problemilla con un trial.
Publicado por: tena en 3 Octubre 2010, 04:12 am
Tiene mas cirujia que la graciela alfano :))))


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



2.

00B08CCA  |.  84C0          TEST AL,AL
00B08CCC  |.  74 27         JE SHORT 00B08CF5                       
00B08CCE  |.  8B4D FC       MOV ECX,DWORD PTR [EBP-4]


.modificado

00B08CCA  |.  84C0          TEST AL,AL
00B08CCC  |.  EB 27         JMP SHORT 00B08CF5               
00B08CCE  |.  8B4D FC       MOV ECX,DWORD PTR [EBP-4]



3.

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


.modificado

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      90 51                     JMP SHORT 009B42CC



4.

00415DB6  |.  DFE0                      FSTSW AX
00415DB8  |.  9E                        SAHF
00415DB9      0F97C0                    SETA AL                           
00415DBC  |.  83E0 01                   AND EAX,1


.modificado

00415DB6  |.  DFE0                      FSTSW AX
00415DB8  |.  9E                        SAHF
00415DB9      33C0                      XOR EAX,EAX
00415DBB      90                        NOP
00415DBC  |.  83E0 01                   AND EAX,1



5.

009B3F79  |.  80B8 C8000000 00          CMP BYTE PTR [EAX+C8],0
009B3F80      75 04                     JNZ SHORT 009B3F86
009B3F82  |.  33C0                      XOR EAX,EAX


.modificado

009B3F79  |.  80B8 C8000000 00          CMP BYTE PTR [EAX+C8],0
009B3F80      EB 04                     JMP SHORT 009B3F86
009B3F82  |.  33C0                      XOR EAX,EAX



6.

009BB8FA      8378 08 01                CMP DWORD PTR [EAX+8],1
009BB8FE      75 04                     JNZ SHORT 009BB904
009BB900      B0 01                     MOV AL,1


.modificado

009BB8FA      8378 08 01                CMP DWORD PTR [EAX+8],1
009BB8FE      90                        NOP
009BB8FF      90                        NOP
009BB900      B0 00                     MOV AL,0



7.

00A6CF15      84C0                      TEST AL,AL
00A6CF17  |.  74 40                     JE SHORT 00A6CF59
00A6CF19  |.  8B4D FC                   MOV ECX,DWORD PTR [EBP-4]
00A6CF1C  |.  8B81 4C030000             MOV EAX,DWORD PTR [ECX+34C]


.modificado

00A6CF15      84C0                      TEST AL,AL
00A6CF17  |.  EB 40                     JMP SHORT 00A6CF59
00A6CF19  |.  8B4D FC                   MOV ECX,DWORD PTR [EBP-4]
00A6CF1C  |.  8B81 4C030000             MOV EAX,DWORD PTR [ECX+34C]



8.

009B47DB      0F95C0                    SETNE AL
009B47DE      83E0 01                   AND EAX,1


.modificado

009B47DB      33C0                      XOR EAX,EAX
009B47DD      40                        INC EAX
009B47DE      90                        NOP
009B47DF      90                        NOP
009B47E0      90                        NOP



9.

00A795E2  |.  84C0                      TEST AL,AL
00A795E4  |.  74 0A                     JE SHORT 00A795F0
00A795E6  |.  B2 01                     MOV DL,1


.modificado

00A795E2  |.  84C0                      TEST AL,AL
00A795E4      EB 0A                     JMP SHORT 00A795F0
00A795E6  |.  B2 01                     MOV DL,1







Título: Re: Problemilla con un trial.
Publicado por: LSL en 3 Octubre 2010, 13:00 pm
Tiene mas cirujia que la graciela alfano :))))

 :laugh: :laugh: :laugh:
es que se trata de tener lo bueno de 5 versiones de titis en una sola, y eso requiere de mucha cirujia,  >:D


Título: Re: Problemilla con un trial.
Publicado por: LSL en 3 Octubre 2010, 13:41 pm
@betatester ;D

a las que ya tienes claro añade estas



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


solucionado el menu Granja y el acceso directo en la barra de iconos de Entrada Eventos.



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.



creo que ya solo falta una más para que no se pierda la opcion backup y restore del menu...
 



Título: Re: Problemilla con un trial.
Publicado por: LSL en 3 Octubre 2010, 19:11 pm
 :silbar:

El que faltaba para el duro.

009B3FA9   .  E8 76AAA5FF            CALL 0040EA24
009B3FAE   .  8845 FF                MOV BYTE PTR [EBP-1],AL
009B3FB1      807D FF 00             CMP BYTE PTR [EBP-1],0
009B3FB5   .  74 1C                  JE SHORT 009B3FD3
009B3FB7   .  8B4D 08                MOV ECX,DWORD PTR [EBP+8]
009B3FBA   .  80B9 90000000 00       CMP BYTE PTR [ECX+90],0
009B3FC1   .  75 10                  JNZ SHORT 009B3FD3
009B3FC3   .  8B45 08                MOV EAX,DWORD PTR [EBP+8]
009B3FC6   .  FF70 7C                PUSH DWORD PTR [EAX+7C]                  ; /Arg1
009B3FC9   .  E8 26790000            CALL @TComptaDB@IsFi$qv                  ; \@TComptaDB@IsFi$qv
009B3FCE   .  59                     POP ECX
009B3FCF   .  84C0                   TEST AL,AL
009B3FD1   .  74 04                  JE SHORT 009B3FD7
009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      EB 05                  JMP SHORT 009B3FDC
009B3FD7   >  B8 01000000            MOV EAX,1
009B3FDC   >  8BE5                   MOV ESP,EBP
009B3FDE   .  5D                     POP EBP
009B3FDF   .  C3                     RETN


.modificado


009B3FA9   .  E8 76AAA5FF            CALL 0040EA24
009B3FAE   .  8845 FF                MOV BYTE PTR [EBP-1],AL
009B3FB1      807D FF 00             CMP BYTE PTR [EBP-1],0
009B3FB5   .  74 1C                  JE SHORT 009B3FD3
009B3FB7   .  8B4D 08                MOV ECX,DWORD PTR [EBP+8]
009B3FBA   .  80B9 90000000 00       CMP BYTE PTR [ECX+90],0
009B3FC1   .  75 10                  JNZ SHORT 009B3FD3
009B3FC3   .  8B45 08                MOV EAX,DWORD PTR [EBP+8]
009B3FC6   .  FF70 7C                PUSH DWORD PTR [EAX+7C]                  ; /Arg1
009B3FC9   .  E8 26790000            CALL @TComptaDB@IsFi$qv                  ; \@TComptaDB@IsFi$qv
009B3FCE   .  59                     POP ECX
009B3FCF   .  84C0                   TEST AL,AL
009B3FD1   .  74 04                  JE SHORT 009B3FD7
009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      90 90                  NOP NOP
009B3FD7   >  B8 01000000            MOV EAX,1
009B3FDC   >  8BE5                   MOV ESP,EBP
009B3FDE   .  5D                     POP EBP
009B3FDF   .  C3                     RETN


creo que deberia ser uno de los primeros a cicatrizar, y quizás necesite la titi menos arreglos, que a los maestros les gusta las cosas bien hechas ... ;D



Título: Re: Problemilla con un trial.
Publicado por: nemus en 4 Octubre 2010, 09:12 am
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            NOP

Explicació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.  ;D











Título: Re: Problemilla con un trial.
Publicado por: nemus en 4 Octubre 2010, 09:51 am
Siguiendo la recapitulación (siempre cargando BD versión anterior). El programa no me pasa por este salto que me muestras.

:silbar:

009B3FA9   .  E8 76AAA5FF            CALL 0040EA24
009B3FAE   .  8845 FF                MOV BYTE PTR [EBP-1],AL
009B3FB1      807D FF 00             CMP BYTE PTR [EBP-1],0
009B3FB5   .  74 1C                  JE SHORT 009B3FD3
009B3FB7   .  8B4D 08                MOV ECX,DWORD PTR [EBP+8]
009B3FBA   .  80B9 90000000 00       CMP BYTE PTR [ECX+90],0
009B3FC1   .  75 10                  JNZ SHORT 009B3FD3
009B3FC3   .  8B45 08                MOV EAX,DWORD PTR [EBP+8]
009B3FC6   .  FF70 7C                PUSH DWORD PTR [EAX+7C]                  ; /Arg1
009B3FC9   .  E8 26790000            CALL @TComptaDB@IsFi$qv                  ; \@TComptaDB@IsFi$qv
009B3FCE   .  59                     POP ECX
009B3FCF   .  84C0                   TEST AL,AL
009B3FD1   .  74 04                  JE SHORT 009B3FD7
009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      EB 05                  JMP SHORT 009B3FDC
009B3FD7   >  B8 01000000            MOV EAX,1
009B3FDC   >  8BE5                   MOV ESP,EBP
009B3FDE   .  5D                     POP EBP
009B3FDF   .  C3                     RETN


.modificado


009B3FA9   .  E8 76AAA5FF            CALL 0040EA24
009B3FAE   .  8845 FF                MOV BYTE PTR [EBP-1],AL
009B3FB1      807D FF 00             CMP BYTE PTR [EBP-1],0
009B3FB5   .  74 1C                  JE SHORT 009B3FD3
009B3FB7   .  8B4D 08                MOV ECX,DWORD PTR [EBP+8]
009B3FBA   .  80B9 90000000 00       CMP BYTE PTR [ECX+90],0
009B3FC1   .  75 10                  JNZ SHORT 009B3FD3
009B3FC3   .  8B45 08                MOV EAX,DWORD PTR [EBP+8]
009B3FC6   .  FF70 7C                PUSH DWORD PTR [EAX+7C]                  ; /Arg1
009B3FC9   .  E8 26790000            CALL @TComptaDB@IsFi$qv                  ; \@TComptaDB@IsFi$qv
009B3FCE   .  59                     POP ECX
009B3FCF   .  84C0                   TEST AL,AL
009B3FD1   .  74 04                  JE SHORT 009B3FD7
009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      90 90                  NOP NOP
009B3FD7   >  B8 01000000            MOV EAX,1
009B3FDC   >  8BE5                   MOV ESP,EBP
009B3FDE   .  5D                     POP EBP
009B3FDF   .  C3                     RETN


El estado por ahora és 97% requetefull. Falta activar: Fichero --- Crear Copias Seguridad y Recuperar Copias Seguridad. (backup y restore).


Título: Re: Problemilla con un trial.
Publicado por: LSL en 4 Octubre 2010, 16:12 pm
pues a mi cuando le cambio la fecha al PC superior a 15/01/2011 como no le ponga en la dirección
00406BC9      0F8D 8B010000          JGE 00406D5A                             
un JMP
me sale este aviso de los dias que faltan hasta el 15/02/2011 ó los que me he pasado, para obtener el codigo de licencia

Código:
---------------------------
Por ci tec Studio 2009
---------------------------
Debe renovar su Código Licencia. Usted dispone de  -231 días. Por favor, vaya a www.********.com y en su Espacio Cliente haga clic en 'Obtener Código Licencia'
---------------------------
OK   
---------------------------



Título: Re: Problemilla con un trial.
Publicado por: LSL en 4 Octubre 2010, 16:21 pm
a mi con el NOP NOP en la dirección 009B3FD5 que te inidicaba en el penúltimo post anterior me ha vuelto a activar el periodo de evalucación, con la consiguiente aparición de las opciones de menu Fichero --- Crear Copias Seguridad y Recuperar Copias Seguridad. (backup y restore).

009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      90 90                  NOP NOP
009B3FD7   >  B8 01000000            MOV EAX,1

Mira en el menu Fichero, que la primera de las opciones es ·Activar Edición Evaluación (Demo)·, pincha en ella y entonces pasarás por el código en 009B3FD5 que debidamente NOPeado siempre dará por verdadero que sigue en periodo de Evaluación con todas las opciones de dicho periodo habilitadas.

Y por eso te decia que en combinación con otras cuantas de modificaciones que ya tienes localizadas, tendrás la versión requetefull para una larga temporada. (o eso espero, porque el programador se lo ha currado con tantas versiones, comparaciones y limitaciones).



Título: Re: Problemilla con un trial.
Publicado por: nemus en 5 Octubre 2010, 01:20 am
;-) Otro salto de maestro, si señor funciona como tu dices:
a mi con el NOP NOP en la dirección 009B3FD5 que te inidicaba en el penúltimo post anterior me ha vuelto a activar el periodo de evalucación, con la consiguiente aparición de las opciones de menu Fichero --- Crear Copias Seguridad y Recuperar Copias Seguridad. (backup y restore).

009B3FD3   >  33C0                   XOR EAX,EAX
009B3FD5      90 90                  NOP NOP
009B3FD7   >  B8 01000000            MOV EAX,1

Mira en el menu Fichero, que la primera de las opciones es ·Activar Edición Evaluación (Demo)·, pincha en ella y entonces pasarás por el código en 009B3FD5 que debidamente NOPeado siempre dará por verdadero que sigue en periodo de Evaluación con todas las opciones de dicho periodo habilitadas.


Mirare como rehacer toda esta carnicería a partir de este salto. Intentaré transformarlo en un degüello menos sangriento. Lo posteo en breve. Tengooo que dormir y no me dejas.  ;-) ;-)



Me olvide anotar el salto de la susodicha nag en la recopilación.

pues a mi cuando le cambio la fecha al PC superior a 15/01/2011 como no le ponga en la dirección
00406BC9      0F8D 8B010000          JGE 00406D5A                            
un JMP
me sale este aviso de los dias que faltan hasta el 15/02/2011 ó los que me he pasado, para obtener el codigo de licencia

Código:
---------------------------
Debe renovar su Código Licencia. Usted dispone de  -231 días. Por favor, vaya a www.********.com y en su Espacio Cliente haga clic en 'Obtener Código Licencia'
---------------------------
OK  
---------------------------



Anotado en la recopilación
2.1.2.    Evita entrar en Modo Cierre




Título: Re: Problemilla con un trial.
Publicado por: nemus en 5 Octubre 2010, 18:09 pm
Durante el degüello me he fijado que este salto, muestra Botones de: Informes---Centro Informes: (Abrir, Diseño, Nuevo, Nuevo Planing), pero por otro lado oculta botones de: Animales --- Grupo/Lote: (Nuevo Grupo, Añadir Evento, Editar Evento ...), aparte de crear conflictos de escritura en: Granja --- Entrada de Eventos:Un Evento.

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



Siguiendo tus pasos he omitido esta modificación y la he cambiado por este otra:

009B40FD  |. 75 0B JNZ SHORT 009B410A

modificar

009B40FD  |. EB 00 JMP SHORT 009B40FF





Título: Re: Problemilla con un trial.
Publicado por: LSL en 5 Octubre 2010, 19:56 pm
parece que la misma función la utiliza tanto para activar como desactivar cosas, por lo que entonces es mejor modificar el salto condicional a la vuelta del resultado de la función, lo que pasa que de esta forma tienes que poner un BP en cada función de las ya localizadas y testear cada opción del programa para arreglar todos los saltos que sean necesarios segun convengan.


Título: Re: Problemilla con un trial.
Publicado por: nemus en 5 Octubre 2010, 20:35 pm
RECOPILACIÓN FINAL en pruebas

1  @LSL:
           Obligar a cargar al programa la versión mas completa

               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
               
               modificar

               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

2  @nemus:
            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            NOP
               

               00406BC9 |. 90 0F8D 8B010000  JGE 00406D5A

               modificar

               00406BC9 |. E9 8C010000  JMP 00406D5A
               00406BCE |. 90                NOP


3  @nemus:
             Permite mantener visibles funciones del modo Evaluación

009B40FD  |. 75 0B JNZ SHORT 009B410A modificar 009B40FD  |. EB 00 JMP SHORT 009B40FF


4  @LSL:
            Obligar a entrar al Modo Evaluación

            009B3FD5 EB 05 JMP SHORT 009B3FDC  modificar  009B3FD5 90 90 NOP NOP


5  @LSL:
            Muestra del Menu el apartado: Granja

            00405AA5  |.  74 30  JE SHORT 00405AD7   modificar   00405AA5  |.  EB 30  JMP SHORT 00405AD7



Betatesteando ... Requetefull


Título: Re: Problemilla con un trial.
Publicado por: LSL en 7 Octubre 2010, 09:29 am
nemus mira tus MP, para testear. ;)


Título: Re: Problemilla con un trial.
Publicado por: nemus en 7 Octubre 2010, 16:41 pm
nemus mira tus MP, para testear. ;)

Muy bonito: free
Activadas las funciones: Instalaciones y Web Benchmarking.
Funcional: Por ahora, RequeteFull.

Observación: Insignificante pequeño retraso sobre el archivo de Recopilación Final. Supongo que debido a la comprobación de algunos calls que en la Recopilación final se saltan con JMPs.

Seguire probando unos dias mas y lo comento.

Saludos.