Flux RSS - La vie du site - Nouveautés et mises à jour
Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

ForceDel

ForceDel : utilitaire permettant de libérer un fichier des handles et processus qui le mobilise et en interdise sa destruction, car Windows le réquisitionne alors en mode exclusif.

23.08.2020 - Révision 30.04.2021 - Révision mineure 18.06.2021. Auteur : Pierre Pinard.

En tentant de supprimer/déplacer/ouvrir un fichier, il est fort probable que vous ayez rencontré un ou plusieurs des messages énervants suivants produits par votre système d’exploitation Windows. Le fichier est bloqué par quelque chose que vous ne connaissez pas/ne comprenez pas :

  • Impossible de supprimer le fichier : l'accès est refusé.

  • Impossible de supprimer [nom de fichier] : il y a eu une violation de partage. Le fichier source ou de destination est peut-être en cours d'utilisation.

  • Impossible de supprimer [nom de fichier] : il est utilisé par une autre personne ou un autre programme. Fermez tous les programmes susceptibles d'utiliser le fichier et réessayez.

  • Assurez-vous que le disque n'est pas plein ou protégé en écriture et que le fichier n'est pas en cours d'utilisation.

  • Le fichier source ou de destination est peut-être en cours d'utilisation.

  • Le fichier est utilisé par un autre programme ou utilisateur.

D'autres raisons non expliquées portent sur les noms avec des caractères non valides et les noms trop longs (la limite actuelle est de 255 caractères, extension incluse).

Ce sont des messages très courants qui se produisent lorsque vous essayez de supprimer des fichiers, dont des fichiers de malveillances, présents dans votre appareil. La raison en est que dès qu’un handle est mis sur un fichier ou qu’un processus utilise un fichier, Windows, qui n’est pas partageur, verrouille ce fichier en mode exclusif et tout autre accès à ce fichier est refusé/interdit. Il est donc impossible d’y accéder pour le fermer et, éventuellement, le détruire. C’est une protection qui, dans ce cas, est malvenue. Il faut isoler le fichier à détruire des processus qui l'utilise/l'active en tuant ces processus que rien ne désigne naturellement.

  1. Ça énerve, lorsque l'on veut faire ceci :

    Unlocker
    Demande de débranchement d'un disque dur externe

    Et que Windows réponds, laconiquement, cela :

    Unlocker
    Pas question !... A dit Windows ! Et je ne te dirais pas pourquoi !

  2. Ça énerve, lorsque l'on veut faire ceci :

    Unlocker
    Demande de suppression d'un répertoire

    Et que Windows réponds, laconiquement, cela :

    Unlocker
    Pas question !... A dit Windows ! Et je ne te dirais pas quelle tâche est en cause !

Les antivirus et anti-malwares disposent des outils nécessaires, mais, lorsque vous cherchez à détruire un fichier manuellement, il faut utiliser un outil libérant le fichier à détruire en tuant les handles qui le mobilisent et les processus qui y font actuellement appel.

Tous les outils de cette nature doivent être utilisés avec précaution et, en cas de méconnaissance de votre part, avec l’aide d’un assistant agréé sur un forum d’entraide de confiance, car la suppression de fichiers système critiques peut entraîner des erreurs système. Sachez qu'après avoir fermé un fichier de cette manière, le programme qui a ouvert le fichier peut devenir instable et même se bloquer, voire vous pouvez arriver à un plantage total de votre appareil, dont avec un BSOD (écran bleu de la mort).

ForceDel - ForceDel : utilisation

Bien que nous disposions de cet utilitaire, celui-ci, qui n'est pas un virus, utilise une fonction de suppression de fichier qui est considérée comme un Riskware - Logiciel présentant des risques d'utilisation par un grand nombre d'antivirus. Nous ne vous le proposons donc pas au téléchargement.

Environnement : Windows NT4 SP6, Windows 2000

Il s'agit d'un utilitaire en ligne de commande (pas d’interface graphique) pour fermer et supprimer un fichier verrouillé par un autre processus.

Cet utilitaire n’utilise aucun module additionnel.

Principe d’usage :

FORCEDEL.EXE [/S] filename
/S           Soft delete. Like the "del" command
filename     File name you want to delete

Comment ça marche ?

Interrogez les descripteurs de fichiers utilisés (à l'échelle du système) et recherchez les processus qui utilisent le fichier que vous voulez supprimer.

Pour plus d'informations, consultez l'article CodeGuru intitulé « Examine Information on Windows NT System Level Primitives ».

Démarrez un thread distant (CreateRemoteThread) pour fermer le handle donné dans chaque processus trouvé (# 1)

Code

Le code suivant ferme un handle dans un processus distant. Le handle doit être spécifique au processus distant.


Note: 1. SE_DEBUG privilege must be enabled. 
      2. The function works with every kind of HANDLE
      3. It will bother the remote process :)
      4. The handles will be invalid after you closed 
         them remotely

//Close a handle in a remote process
DWORD CloseRemoteHandle( DWORD processID, HANDLE handle )
{
 HANDLE ht = 0;
 DWORD rc = 0;
 
 _tprintf( _T("Closing handle in process #%d ... "), 
          processID );
 // open the process
 HANDLE hProcess = OpenProcess( PROCESS_CREATE_THREAD 
                                | PROCESS_VM_OPERATION 
                                | PROCESS_VM_WRITE 
                                | PROCESS_VM_READ, 
                                FALSE, processID );
 
 if ( hProcess == NULL )
 {
  rc = GetLastError();
  _tprintf( _T("OpenProcess() failed\n") );
  return rc;
 }
 // load kernel32.dll
 HMODULE hKernel32 = LoadLibrary( _T("kernel32.dll") );
 // CreateRemoteThread()
 ht = CreateRemoteThread( 
  hProcess, 
  0, 
  0, 
  (DWORD(__stdcall *)(void*))GetProcAddress(hKernel32,"CloseHandle"),
  handle, 
  0, 
  &rc; );
 
 if ( ht == NULL )
 {
  //Something is wrong with the privileges, 
  //or the process doesn't like us
  rc = GetLastError();
  _tprintf( _T("CreateRemoteThread() failed\n") );
  goto cleanup;
 }
 switch ( WaitForSingleObject( ht, 2000 ) )
 {
  case WAIT_OBJECT_0:
   //Well done
   rc = 0;
   _tprintf( _T("Ok\n"), rc );
  break;
 
  default:
   //Oooops, shouldn't be here
   rc = GetLastError();
   _tprintf( _T("WaitForSingleObject() failed\n") );
   goto cleanup;
  break;
 }
 cleanup:
 //Closes the remote thread handle
 CloseHandle( ht );
 //Free up the kernel32.dll
 if ( hKernel32 != NULL)
  FreeLibrary( hKernel32 );
 //Close the process handle
 CloseHandle( hProcess );
 
 return rc;
}
ForceDel - ForceDel : utilisation

Outils similaires à Unlocker. Ce tableau comparatif, complété par Assiste, a été établi par Cedrick Collomb, l'auteur de Unlocker, qui compare la version 1.9.0, du 05.07.2010 de Unlocker aux outils plus ou moins similaires et concurrents.

ApplicationClose
handle
Kill
process
Unload
DLL
Delete
index.dat
Delete
Rename
Move
Invalid
Names
Without
reboot
With
reboot
Context
Menu
Command
Line / GUI
FreeExiste encore
Unlocker 1.9.0 et 1.9.2
Cedrick Collomb
Oui
Process Explorer
Sysinternals
Oui
FileASSASSIN
Malwarebytes
Dans Malwarebytes
LockHunter
Crystal Rich
Oui
OpenedFilesView
NirSoft
Oui
ForceDel
Zoltan Csizmadia
Ne pas utiliser
WhoLockMe
Dr-Hoiby
Oui
FreeFile
Skrubbeltrang
Oui
Take Control
Computers In Motion
Non
UnLock IT
EMCO
Oui
Advanced Process Manipulation
DiamondCS
Non
DLL Master
Tony Shaftel
Non
12Ghosts Wash
12ghosts
Oui
czSweep Cookie Boss 1.31
Frank Kotasek
Non
DelinvFile
James A. Lawler

Oui
Del FXP files
JRT Wine Software
Non
Pocket KillBox
Option^Explicit
Oui
Locked Files Wizard / Copylock
Noël Danjou
Oui
MoveOnBoot
Gibin Software House
Non
DelLater
DiamondCS
Non
Delete Doctor
Kevin Solway
Oui
BusyDelete
Freezerware
Non
Boot Deleter
TNT-BootBlock
Ne pas utiliser
ForceDel - ForceDel et programmes similaires


Outils d'investigations


# Ailleurs sur le Web #

  1. #ForceDel#