Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

Eseguire una shell come SYSTEM e, ad esempio, sfogliare i punti di rispristino


In questo articolo andiamo ad esporre un esempio della tecnica descritta nell'articolo SelfAsSystem che consente l'esecuzione del processo corrente con l'utenza SYSTEM. Ora costruiremo un applicativo che si comporti proprio come explorer.exe e proveremo poi a lanciarlo con l' utenza SYSTEM: utilizzeremo l'esempio per sfogliare ed analizzare i punti di ripristino che si trovano a partire dalla cartella C:\system volume information. Come costruire tale applicativo??? Semplicissimo, basta usare i componenti ShellTreeView e ShellListView presenti nel tab SAMPLES della paletta dei componenti di Delphi 7. Li si collega impostando ShellListView1.ShellTreeView = ShellTreeView1 ed ecco ottenuta l' applicazione. Ora bisogna fare in modo che l' applicazione restituisca anche "cartelle e file nascosti" e "file protetti di sistema" quando viene eseguita come SYSTEM. Tali impostazioni corrispondono alle seguenti impostazioni del registro di sistema:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] ;Visualizza Cartelle e File nascosti "Hidden"=dword:00000001 ;Visualizza file protetti di sistema "ShowSuperHidden"=dword:00000001

1. Implementazione

Di seguito l'implementazione del sorgente del progetto

program ShellExp; uses Forms, Windows, Registry, SysUtils, Main in 'Main.pas' {Form1}, uUtils in 'uUtils.pas'; {$R *.res} procedure VisualizzaNascosti; var Registry: TRegistry; UserName: array[0..80] of char; nSize: DWord; begin nSize := 80; GetUserName(UserName, nSize); if LowerCase(UserName) <> 'system' then Exit; Registry := TRegistry.Create; Registry.RootKey := HKEY_CURRENT_USER; Registry.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\', True); //cartelle e file nascosti Registry.WriteInteger('Hidden', 1); //file protetti e di sistema Registry.WriteInteger('ShowSuperHidden', 1); //mostro le estensioni per tutti i tipi di file Registry.WriteInteger('HideFileExt', 0); Registry.CloseKey; Registry.Free; end; begin RunSelfAsSystem; Application.Initialize; VisualizzaNascosti; Application.CreateForm(TForm1, Form1); Application.Run; end.

2. Programma in esecuzione

Lanciamo in pratica una shell come SYSTEM e ci si può così divertire a sfogliare cartelle e file che solitamente non si ha la possibilità di vedere

RestorePoints

 

 


 

 

 
 
Your Ad Here