QNA > C > Come Eseguire Un File Setup.exe Su Un Computer Senza Sistema Operativo

Come eseguire un file setup.exe su un computer senza sistema operativo

Altri hanno sottinteso la risposta corretta, che è che Windows è necessario. Quindi mi concentrerò sul perché ne abbiamo bisogno in qualche forma.

Senza Windows (o una VM di Windows) il formato EXE non significa nulla. La ragione è che il file EXE, alias il "Portable Executable Format" ha un'intestazione come parte della sua struttura. Questa intestazione ha in parte a che fare con il processo di caricamento, che a sua volta aiuta il sistema operativo a determinare cosa caricare con l'EXE.

main-qimg-6905a450479094ff5ecc1546a1af50eb.webp

Come potete vedere dall'immagine, il formato PE ha diverse sezioni. Quindi non è semplice come caricare il codice macchina in un blocco di memoria e poi è fatta (ma questa è fondamentalmente la fine dell'inizio del processo). Cruciali per l'esecuzione del PE sono i concetti di linking e caricamento [dinamico], che nei sistemi multithreaded, è fatto a tempo di esecuzione (o meglio, inizializzazione del tempo di esecuzione).

Questo include caratteristiche MSIL, il che dimostra che è un'applicazione dotNET, che caccia la DLL MSCore ed esegue prima il punto di ingresso per quella, prima di eseguire il codice incorporato nell'EXE stesso (quindi caricando dotNET per eseguire se stesso).

Così, abbiamo una sequenza di eventi che devono accadere e quindi, una serie di prerequisiti, non ultimo sul sistema operativo stesso. I'ipotizzerò un programma applicativo o un'app di utilità, non un driver qui. Eseguendo un'applicazione di esempio chiamata Something.EXE

  1. Windows assegna uno spazio di processo in modalità utente. Questo è uno spazio privato assegnato in modo che nessun altro processo possa accedere al suo spazio di indirizzamento (o questa è la teoria)
  2. Il sistema operativo (Windows) carica il file PE in quello spazio
  3. Il sistema operativo legge il PE (il formato di cui sopra)
  4. Windows individua qualsiasi DLL'incluse MS Core
  5. Carica MS Core nello spazio di processo
  6. Esegui il punto d'ingresso di MS Core (prima del codice di compilazione JIT, se necessario)
  7. Sostituisci i riferimenti nell'EXE con l'indirizzo delle funzioni DLL caricate, così i rami ora funzionano - Questo è il processo di caricamento e linking
  8. Esegui il punto d'ingresso della funzione "main"

Cruciale per fare tutto questo, è il sistema operativo.

Da qui i suggerimenti della gente di caricare in qualche modo un sistema operativo (ad esempio tramite avvio USB, VM o qualche altro metodo - ad esempio la modalità Windows Kiosk).

Di Demaria

Qual è corretto, 'si prega di trovare l'allegato' o 'si prega di trovare l'allegato'? :: C'è qualche VPN gratuita affidabile?
Link utili