Are exploits platform dependent?
Sì.
As in, does that mean that the IE vulnerability needs to be developed IN ASSEMBLY once for each OS( XP, Vista, 7, 8 ), doubled based on 32/64 bit, then doubled again based on byte order?
No.
L'uso dell'assembly non lo rende più dipendente dalla piattaforma. È solo come dipendente dalla piattaforma come sarebbe se fosse scritto in C, (anche se per la maggior parte degli scopi C rende molto più facile indirizzare quelle piattaforme diverse).
La pagina che hai collegato non indica quali piattaforme l'exploit ha come target e mostra solo il codice x86. Se si rivolge anche a x64, sono ancora solo due piattaforme: x86 Windows e x64 Windows, e anche per quelle due il codice sarebbe in gran parte isomorfo (simile). Il semplice fatto che abbia assembly in esso non esplode improvvisamente la complessità di supportare diverse edizioni di Windows che girano sulla stessa architettura della CPU.
(Giusto per capire: l'assembly portatile può essere scritto e compilato una volta, in modo che lo stesso blob di codice macchina venga eseguito sotto tutti i sistemi operativi Windows, OS X, Linux e no , sulla stessa architettura della CPU: in questo modo, l'assembly è less dipendente dalla piattaforma rispetto ad altri linguaggi, poiché richiede meno di una piattaforma.I formati di file eseguibili standard che contengono il codice macchina sono ancora OS-specifico, tuttavia, ad esempio OS X non saprà come caricare un exe di Windows, anche se il codice macchina interno potrebbe essere eseguito se fosse caricato.)
L'ordine dei byte non è un problema come x86 & x64 sono puramente little endian.
Si noti inoltre che l'assembly che si sta vedendo è un smontaggio , quindi non è stato necessariamente scritto in assembly; potrebbe essere stato scritto in quasi tutte le lingue. Dato che si tratta di un exploit, e progettato per fare cose strane ed extralinguistiche, sarebbe stato più facile scrivere le parti di esso nell'assemblaggio stesso, e alcuni potrebbero essere stati scritti in modo più semplice in C, e alcuni potrebbero essere stati avviati in C, disassemblati, e adattato nell'assemblea.
Quindi la risposta breve è che supportare diverse versioni di Windows nell'exploit non è così difficile come lo si immagina.