elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.

12  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.

13  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
14  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
15  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
16  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
17  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
18  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.
19  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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!


20  Programación / Ingeniería Inversa / Re: Problemilla con un trial. 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.

Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines