chela | |
| 2005-04-12 08:35 - Respuestas: 1 - Tema nº: 31696
Hola a todos, soy nueva en esto pero quisiera saber que hacer para poder controlar los archivos DLL que instala
cada programa en el directorio System.
yo encontre una vez este truco pero no he podido hacerlo funcionar pues no esta muy explicito... es el siguiente
Esta es una pequeña receta casera para poder controlar los archivos DLL que instala
cada programa en el directorio System. La manera de proceder es la siguiente:
Primero se crea un archivo BAT con el siguiente código:
CD\
CD WINDOWS\SYSTEM
DIR/o -.DLL
>C:\...path...\DLL.DOC
La segunda línea debe ser modificada en caso de que el directorio SYSTEM este en otro sitio distinto. En la tercera línea se crea un archivo llamado , en el que se almacena la lista de todos los archivos DLL incluidos en el directorio SYSTEM. El nombre del archivo se puede cambiar, incluso puede tener la extensión “.txt”.
Después ejecutamos el fichero .bat, con lo que se crea el archivo
C:\...PATH...\DLL .DOC. A continuación renombramos el archivo el nombre que queramos (puede ser uno que haga referencia a la fecha actual). Después de instalar algún programa, hay que ejecutar nuevamente el archivo BAT y renombrarlo adecuadamente. Comparamos este archivo con el mas reciente que se encuentre en C:\... PATH...\ utilizando win file compare (incluido en Windows o cualquier otro programa para comparar archivos
Los archivos DLL’S actualizados o instalados por el programa aparecerán resalados. Estos son los archivos que a cambiado o añadido. Se puede editar cada archivo para poner un comentario sobre el programa que hemos instalado.
si alguien puede ayudarme le agradeceria. | |
|
|
Xufa | |
|
Re: Como controlar las dll - 2005-04-12 13:14 - Respuesta 2
Hola chela:
Aunque es algo extenso, pego aquí información referente al control de las DLLs en W98 que espero te resulte de ayuda o, como mal menor, de información suplementaria.
(Recorte del texto completo)
______________
SFC
-
El SFC es un programa que reside en la carpeta c:windowssystem. Windows no le coloca icono, pero podemos colocárselo nosotros manualmente. O bien ejecutarlo desde Inicio->Ejecutar.
La función del SFC es "comparar" las versiones que actualmente residen en Windows con las que él tiene "registradas" en una pequeña base de datos. Si son diferentes, nos mostrará un aviso y nos informará tanto del número de versión, fecha y tamaño del archivo actual, y el número de versión, fecha y tamaño del archivo que él tiene registrado.
Tiene una pequeña pega (mejor dicho dos), bajo mi punto de vista.
1) La base de datos que "trae" por defecto Windows, no es correcta.
2) Por defecto, no están activadas las opciones de chequear versiones de programas y de recuperar ficheros borrados.
Debido a que el punto 2) es el defecto, si NADA más instalar Windows (y es importantísimo hacerlo en ese momento), ejecutamos el SFC, lo que hará será crear una nueva base de datos con la información que tiene en ese momento. Y la que tiene es precisamente los programas originales de Windows.
Es importante, para que no se nos olvide ya, después de ejecutarlo por primera vez, lo que debemos hacer es pulsar en el botón de "opciones" y marcar los dos últimos casilleros de esa pantalla. Es decir "verificar versiones" y "verificar programas borrados".
Bien, con esto tenemos ya creada nuestra base de datos de los componentes actualmente instalados. En cualquier momento, podemos ejecutar de nuevo SFC y que nos controle si algún programa o DLL ha cambiado. Si hubiese cambiado, nos informará de ello y nos permitirá recuperarlo del CD de instalación de
Windows.
* En princio, entonces, ¿qué criterios debemos seguir para recuperar o no una versión?.
Mi consejo es seguir el criterio de número de versión. Nunca seguir el criterio de fecha de creación. Una DLL con un número de versión mayor, siempre será más actual aunque tenga fecha mayor. Por tanto si el archivo
que tenemos actualmente tiene un número de versión inferior, deberemos recuperar el anterior.
Recordad también que a igualdad de número de versión, puede que tengamos una DLL cuyo tamaño sea diferente al anterior. En este caso, debemos darle a "actualizar". Es decir "no recuperar". A veces sucede esta incongruencia, debido a que existen herramientas que "alinean" los codigos ejecutables de una DLL para una carga más rapida. En este caso, la DLL es la misma pero su tamaño es ligeramente mayor al estar alineados todos sus segmentos internos a frontera de página (4 Kbs).
Un posible problema añadido, puede ser el siguiente:
a) Imaginemos que Windows monta la version 1123 de una DLL. Ejecutamos por primera vez SFC y se "queda" con las versiones actuales.
b) Montamos otro producto que nos actualiza es DLL a la version 1150. Ejecutamos SFC, nos informará que hay una versión superior y le decimos que correcto. Por tanto SFC "recordará" que la version actual es la 1150.
c) Montamos otro producto "chapuzas" que sin avisar, nos deja la versión 900. Al ejecutar SFC nos avisará del problema.
Pero en este caso, si le damos a "recuperar" y nos solicita el CD de instalación de Windows, nos recuperará la 1123 y no la 1150 que es la que necesitaba la aplicacion del punto b).
Una posible solución, sería tener TODA una copia de Windows guardada después de cada instalacioo (es decir despues del punto b). Y cada vez que SFC se queje, recuperamos desde esa copia en vez de desde el CD de Windows. Pero esto ocuparía mucho espacio en disco y además nos obligaría a realizar una copia cada vez que hagamos una instalación de algún producto.
* Y otra solución, más elegante, es la siguiente: debido a que el SFC cada vez que se ejecuta, nos añade información a un fichero llamado SFCLOG.TXT que reside en la carpeta de Windows, lo que podemos hacer, es utilizar dicho fichero como "historia". Me explico: SFC nos dejará en ese fichero las incidencias detectadas. Evidentemente nada más instalar Windows y ejecutar por primera vez SFC, nos dejará únicamente las estadísticas de lo analizado.
Ahora montamos un producto nuevo. Antes de nada, entramos con un editor ("edit" o "notepad") en ese archivo y le ponemos una linea de texto que diga por ejemplo: "Instalacion del producto xxxxx". Y nada más instalar el
producto y ejecutar SFC, nos irá dejando a continuación la historia de modificaciones. Por tanto cualquier DLL modificada con número de versión superior, aparecerá allí, y además después de la línea de comentarios que
hemos colocado. Con esto podemos "tener controlado" qué producto nos ha instalado una determinada versión de DLL.
Si posteriormente ocurre un "machaque" como el que hemos comentado anteriormente, podremos recuperar, bien mediante SFC o bien incluso a mano, o reinstalando el producto anterior, la DLL (o DLL's) correctas.
Es un poco más laborioso, pero nos ahorramos espacio en disco y además tenemos nosotros el control "absoluto" de lo que sucede en nuestro PC.
_______________
Autor: Jose Manuel Tella Llop
Visto en: http://www.seguridadysistemas.com/modules.php?name=Sections&op=printpage&artid=21
Saludos. | |
|
|
|