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 ------------------------------------------------------------------ Las gracias no se merecen, estamos para ayudarnos siempre que podamos.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. 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: --------------------------- 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: --------------------------- 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: 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. |