eseguire il comando createfile win32 come utente standard

ho bisogno di eseguire questo comando

hDevice := CreateFile( '\\.\PhysicalDrive0:', GENERIC_READ or GENERIC_WRITE ,
        FILE_SHARE_READ or FILE_SHARE_WRITE , nil, OPEN_EXISTING, 0, 0 );

nell’applicazione come utente standard. questo comando esegue l’applicazione come amministratore.

EN From: run command createfile win32 as a standard user

More similar articles:

9 Comments

  1. bene per voi che avete bisogno di eseguire il comando… tuttavia quello realmente non fa una buona domanda in questa tribuna. si dovrebbe almeno mostrare quello che hai provato.

  2. non è chiaro quello che stai chiedendo. stai dicendo che il processo è in esecuzione come un amministratore e si desidera eseguire un comando come non-admin??? stai parlando dei diritti del file? devi essere più chiaro

  3. sarebbe un foro di sicurezza risibile se gli utenti standard potessero aprire il disco grezzo con accesso di dati. il descrittore di sicurezza sul dispositivo del disco concede a tutti (S-Balance 0) il diritto di sincronizzare, leggere i metadati (attributi, sicurezza), e attraversare. ma l’accesso ai dati è concesso solo a SYSTEM (S-1-5-18) e agli amministratori (S-1-5-32-544).

  4. non è possibile eseguire un singolo comando come amministratore da un processo che non è già in esecuzione come amministratore. è necessario eseguire l’intero programma come admin prima. o farlo deporre un processo separato come amministratore per poi eseguire il comando.

  5. @eryksun è possibile come utente standard scrivere su disco. dipende dagli attributi di sicurezza del file / directory. per esempio è possibile creare una directory durante l’installazione (di solito eseguito a una politica di esecuzione superiore) e impostare il permesso su di esso, quindi è perfettamente accettabile createfile come utente standard

  6. bene dalla tua domanda che non è così chiaro, suona come si desidera eseguire il comando come un utente standard quando l’applicazione è già in esecuzione come un amministratore.

    per fare questo è necessario creare un thread in modalità sospesa, quindi impostare il token di thread e poi riprendere.

    CreateThread(...CREATE_SUSPENDED...)
    SetThreadToken(...)
    ResumeThread()

    ci sono alcuni modi per ottenere un token thread, ma uno può essere quello di DuplicateToken e poi rimuovere l’amministratore SIDS e privilegi.

    1. quale senso crea un nuovo thread, quando possibile imposta un token al thread corrente, e poi ritorna a se stesso?

  7. @JackSojourn: È misunderod intero punto del commento eryksun, questo non si tratta di creare una scrittura di qualche directory, ma l’accesso al disco grezzo, questo non ha nulla con l’installazione, ecc.

  8. @JackSojourn, stai parlando di un filesystem montato su un dispositivo di volume, che è comunemente una partizione su un dispositivo disco. un file system come NTFS implementa la sicurezza per i dati organizzati come directory e file su un volume. se un utente standard potrebbe ottenere l’accesso ai dati al dispositivo del disco sottostante stesso (ad esempio “& # 92;.\ PhysicalDrive0”), aggirare la sicurezza del file system.

Leave a Reply

Your email address will not be published. Required fields are marked *