[AYUDA] Borrar archivo en uso

Iniciado por Miseryk, 9 Abril 2014, 17:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Miseryk

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

Gracias.
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!!!

Mad Antrax

Cierra el proceso que tiene abierto el fichero y luego lo borras
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Miseryk

Lol, 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
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!!!

BlackZeroX

Cita de: Mad Antrax en  9 Abril 2014, 20:04 PM
Cierra el proceso que tiene abierto el fichero y luego lo borras

No es necesario, lo unico que se debe hacer es obtener el handle del archivo abierto y cerrarlo...

Codigo:  http://filex.sytes.net/?dir=/BlackZeroX/Programacion/vb6/Foro.ElHacker.Net&file=UnlockFiles.rar

Dulces Lunas!¡.
The Dark Shadow is my passion.

Miseryk

Cita de: BlackZeroX (Astaroth) en 10 Abril 2014, 05:26 AM
No es necesario, lo unico que se debe hacer es obtener el handle del archivo abierto y cerrarlo...

Codigo:  http://filex.sytes.net/?dir=/BlackZeroX/Programacion/vb6/Foro.ElHacker.Net&file=UnlockFiles.rar

Dulces Lunas!¡.

Me muestra como que el sitio se encuentra en construcción, es posible?
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!!!

Miseryk

Cita de: BlackZeroX (Astaroth) en 10 Abril 2014, 05:26 AM
No es necesario, lo unico que se debe hacer es obtener el handle del archivo abierto y cerrarlo...

Codigo:  http://filex.sytes.net/?dir=/BlackZeroX/Programacion/vb6/Foro.ElHacker.Net&file=UnlockFiles.rar

Dulces Lunas!¡.

Probé el código y explota en:

Código (vb) [Seleccionar]

Public Function GetFileFullPath(ByVal hFile As Long) As String
...
HeapFree hHeap, 0, pName
...
End Function
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!!!

BlackZeroX

Lo siento hace 24hrs que cambie todo lo de mi sitio, este es el enlace de descarga:

http://infrangelux.sytes.net/filex/?dwfe=ZmRlZGUyZjExYWIwZGU2YWJmMDRjNjc2YjdkMjg3YTc2ZDYzYTlkMg

Dulces Lunas!¡.
The Dark Shadow is my passion.

x64core

@BlackZeroX:
Esta funcion luce mal:

Código (vb) [Seleccionar]
Public Function GetFileFullPath(ByVal hFile As Long) As String
    Dim hHeap As Long, dwSize As Long, objName As UNICODE_STRING, pName As Long
    Dim ntStatus As Long, i As Long, strDrives As String, strArray() As String
    Dim dwDriversSize As Long, strDrive As String, strTmp As String, strTemp As String
    On Error GoTo ErrHandle
    hHeap = GetProcessHeap
    pName = HeapAlloc(hHeap, HEAP_ZERO_MEMORY, &H1000)
    ntStatus = NtQueryObject(hFile, ObjectNameInformation, pName, &H1000, dwSize)
    If (NT_SUCCESS(ntStatus)) Then
        i = 1
        Do While (ntStatus = STATUS_INFO_LEN_MISMATCH)
            pName = HeapReAlloc(hHeap, HEAP_ZERO_MEMORY, pName, &H1000 * i)
            ntStatus = NtQueryObject(hFile, ObjectNameInformation, pName, &H1000, ByVal 0)
            i = i + 1
        Loop
    End If
    HeapFree hHeap, 0, pName
    strTemp = String(512, Chr(0))
    lstrcpyW strTemp, pName + Len(objName)



Se reseva memoria para obtener la informacion de el objeto para luego liberar la memoria? además podes llamar a NtQueryObject así:
NtQueryObject(hFile, ObjectNameInformation, 0, 0, &dwSize)  ( C++, Pasando el puntero a dwSize )
Para obtener la cantidad de bytes necesarios y luego sí reservar esa cantidad de bytes (dwSize) y luego volver a llamar a NtQueryObject
y así evitar usar esos bucles tan inseguros.

Vendria bien repulir esas funciones, bueno simplemente diciendo, supongo que hace años que han sido escritas.





BlackZeroX

#8
@x64Core
Por haya del 2007 y no, no es mio el src.

Dulces Lunas!¡.
The Dark Shadow is my passion.