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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [AYUDA] Borrar archivo en uso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Borrar archivo en uso  (Leído 7,141 veces)
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
[AYUDA] Borrar archivo en uso
« en: 10 Abril 2014, 03:32 am »

Hola a todos, estoy tratando de lograr borrar un archivo en uso, alguno tiene idea de como poder lograrlo?

En realidad quiero lograr algo parecido a lo que hace el programa Unlocker, que desbloquea el archivo sin tener que cerrar la aplicación que lo está usando y lo mejor es que desde la otra aplicación el archivo se sigue visualizando.

Ej: un excel o un doc



En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [AYUDA] Borrar archivo en uso
« Respuesta #1 en: 10 Abril 2014, 03:59 am »

Una forma de cerrar el HANDLE es usando DuplicateHandle con DUPLICATE_CLOSE_SOURCE.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [AYUDA] Borrar archivo en uso
« Respuesta #2 en: 11 Abril 2014, 10:02 am »

Unlocker utiliza ambos y un driver o hacer lo que dijo EI.
En línea

Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: [AYUDA] Borrar archivo en uso
« Respuesta #3 en: 14 Abril 2014, 19:32 pm »

Abrí el archivo WORD.xls
Usé el unlocker para ver el pid más el handle, que eran 8300 y 924
Ejecuté este código

Código
  1. int main()
  2. {
  3. DWORD source_pid;
  4. HANDLE oldhandle;
  5. bool success;
  6.  
  7. source_pid = 8300;
  8. oldhandle = (HANDLE)924;
  9.  
  10. LPCSTR Path = "C:\\WORD.xls";
  11.  
  12. HANDLE source_handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, source_pid);
  13. HANDLE newhandle;
  14. success = DuplicateHandle(source_handle, (HANDLE)oldhandle, GetCurrentProcess(), &newhandle, DUPLICATE_SAME_ACCESS, FALSE, DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS);
  15. success = DeleteFile(Path);
  16. CloseHandle(source_handle);
  17. success = DeleteFile(Path);
  18. CloseHandle(newhandle);
  19. success = DeleteFile(Path);
  20.  
  21. return 0;
  22. }
  23.  

Luego de ejecutar este código, usé el unlocker de nuevo, ahora me mostraba "No locking handle found"

pero no puedo eliminar el archivo...

Alguno tiene idea?
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [AYUDA] Borrar archivo en uso
« Respuesta #4 en: 14 Abril 2014, 20:14 pm »

Fijate que devuelve GetLastError para empezar.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: [AYUDA] Borrar archivo en uso
« Respuesta #5 en: 14 Abril 2014, 22:09 pm »

DuplicateHandle retorna true los DeleteFile retornan false
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [AYUDA] Borrar archivo en uso
« Respuesta #6 en: 14 Abril 2014, 22:11 pm »

Si, llama a GetLastError despues de DeleteFile y fijate que valor devuelve esa funcion.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: [AYUDA] Borrar archivo en uso
« Respuesta #7 en: 14 Abril 2014, 22:33 pm »

Si, llama a GetLastError despues de DeleteFile y fijate que valor devuelve esa funcion.

Devolvió el número 32.

Lo busqué y es ésto:

ERROR_SHARING_VIOLATION
32 (0x20)
The process cannot access the file because it is being used by another process.

Luego me dá el número 5.

ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
« Última modificación: 14 Abril 2014, 22:38 pm por Miseryk » En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: [AYUDA] Borrar archivo en uso
« Respuesta #8 en: 14 Abril 2014, 23:06 pm »

El ERROR_SHARING_VIOLATION primero tiene sentido, intenta borrar el archivo todavia teniendo el HANDLE en tu programa y el ERROR_ACCESS_DENIED es por no tener los permisos necesarios.
 
¿Una vez que cerras el HANDLE con tu programa y este termina podes borrar el archivo con el Explorador de Windows?
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: [AYUDA] Borrar archivo en uso
« Respuesta #9 en: 15 Abril 2014, 02:08 am »

El ERROR_SHARING_VIOLATION primero tiene sentido, intenta borrar el archivo todavia teniendo el HANDLE en tu programa y el ERROR_ACCESS_DENIED es por no tener los permisos necesarios.
 
¿Una vez que cerras el HANDLE con tu programa y este termina podes borrar el archivo con el Explorador de Windows?

Una vez cerrado el handle no lo puedo borrar desde Windows, inclusive con el Unlocker, porque me muestra en AMBOS que el archivo ya no tiene un handle abierto, pero no se puede eliminar a mano, y para eliminarlo tengo que usar el unlocker con la accion delete, asumo que ahí se usa el driver del unlocker, ya que ambos pueden cerrar el handle y no se puede eliminar a mano. (programación o windows)
En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrar un archivo en VB « 1 2 »
Programación Visual Basic
akss_wm 17 24,098 Último mensaje 22 Septiembre 2010, 03:52 am
por Petro_Boca
Ayuda borrar solo una extension jpg sin borrar nigun otro archivo
Programación Visual Basic
Otaku=) 4 3,332 Último mensaje 3 Julio 2012, 03:28 am
por Otaku=)
[AYUDA] Borrar archivo en uso
Programación Visual Basic
Miseryk 8 3,358 Último mensaje 15 Abril 2014, 19:31 pm
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines