Caveat: sono uno studente di scienze politiche e ho cercato di migliorare il mio livello per comprenderne gli aspetti tecnici; se suono ancora ingenuo, per favore, ignoralo.
Nel rapporto Symantec su Stuxnet , gli autori Dite che una volta che il worm infetta il computer Windows a 32 bit che ha una configurazione WINCC su di esso, Stuxnet fa molte cose e che in particolare aggancia la funzione CreateFileA()
. Questa funzione è il percorso utilizzato dal worm per infettare effettivamente i file di progetto .s7p utilizzati per programmare i PLC. cioè quando il programmatore PLC apre un file con .s7p il controllo trasferisce alla funzione agganciata CreateFileA_hook()
invece di CreateFileA()
. Una volta che Stuxnet ha ottenuto il controllo, inserisce segretamente blocchi di codice nel PLC senza la conoscenza dei programmatori e lo nasconde dalla sua vista.
Tuttavia, va notato che c'è anche un'altra funzione chiamata CreateFileW()
che svolge lo stesso compito di CreateFileA()
, ma entrambi funzionano su set di caratteri diversi. CreateFileA
funziona con il set di caratteri ASCII e CreateFileW
funziona con caratteri ampi o set di caratteri Unicode. Il farsi (la lingua degli iraniani) è un linguaggio che richiede un set di caratteri unicode e non caratteri ASCII. Suppongo che gli sviluppatori di qualsiasi famoso software commerciale (per esempio WinCC) che sarà venduto in molti paesi prenderanno in considerazione "Localizzazione" e / o "Internazionalizzazione" mentre è in fase di sviluppo al fine di rendere il prodotto fail-safe cioè. gli sviluppatori di software utilizzerebbero UNICODE
durante la compilazione del loro codice e non solo "ASCII". Quindi, penso che CreateFileW()
sarebbe stato invocato su un sistema WINCC in Iran anziché CreateFileA()
. Sei d'accordo?
La mia domanda è: se Stuxnet ha agganciato solo la funzione CreateFileA()
, in base all'ipotesi sopra riportata, c'è una possibilità significativa che non funzioni affatto? Penso che il mio dubbio verrà chiarito se: la mia ipotesi è smentita, o il rapporto di Symantec è dimostrato errato. Per favore aiutami a chiarire questo dubbio.
Modifica: per maggiore chiarezza della mia domanda e cosa sto cercando.
È possibile che WinCC STL Editor sia programmato nel modo seguente?
//Pseudocode Begins
if (locale == ASCII Dependent) //like US, UK, Australia etc.
{
CreateFileA(); //with appropriate parameters
}
else if (locale == UNICODE Dependent) //like Middle East, China, Japan etc
{
CreateFileW(); //with appropriate parameters
} //Pseudocode ends
Se è possibile, allora Stuxnet funzionerebbe in modo appropriato negli Stati Uniti ma non in Cina, in Giappone o in Iran?