SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: cebolleta en Miércoles 28 de Mayo de 2008, 23:14
-
Hola a todos,
tengo un come-come que no me deja dormir ;)
A ver si alguien me puede hechar una mano con esto por estoy un poco perdido.
El caso es que necesito borrar y/o sustituir el archivo en disco de un proceso activo en el sistema, este fichero, naturalmente esta bloqueado. ¿como lo puedo desbloquear? algún API o mecanismo al uso. O también sería muy interesante si alguien pudiera describir, para mi y todos los presentes, la forma en que operativo gestina estos bloqueos, quizas así demos con la manera de hacerle una trampilla.
Ahora demosle otro rizo, ¿que pasa si dicho ficheroesta en una unidad mapeada? ¿cambia esto las cosas? en realidad es el caso que me ocupa.
Que se puede hacer es obvio, el famoso Unlocker lo hace y yo no voy ha ser menos. Lo pretendo hacer en VC++, ensamblador tambien es mas que aceptable.
Cualquier idea o ayuda será bien recibida.
Gracias de antemano.
-
Si el proceso esta en ejecucion lo maximo que podes hacer es renombrarlo. Si te referis a este programa: http://ccollomb.free.fr/unlocker/ (http://ccollomb.free.fr/unlocker/)
Fijate la lista de acciones que enumera, entre ellas matar el proceso (OpenProcess + TerminateProcess), si hace otro cosa y es lo que queres hacer entonces no tenes mas que depurar este programa y listo.
-
Gracias por la respuesta,
Debugear es una opcion, aunque el ollydbg no es mi fuerte. Se puede intentar.
Si hay otras propuestas por favor no os las guardeis :)
-
Fijate si el proceso desaparece cuando el programa ese hace "su magia", si es asi no tenes mas que imitarlo (OpenProcess + TerminateProcess).
-
Hombre la clave esta en desbloquear el fichero imagen sin matar el proceso, si no no vale.
-
Bueno, mucha suerte.