Ho notato che gli exploit che usano Return Oriented Programming trovano sempre i gadget nelle librerie. Mi chiedo se è possibile utilizzare i gadget dal file eseguibile (.exe) stesso?
Credo che la ragione sia "è più facile usare sequenze di istruzioni dalle librerie, perché le librerie sono così comuni e sono già state scansionate."
Ci sono solo una manciata di file di librerie C-runtime forniti da Microsoft. Se forniscono un set di istruzioni abbastanza completo, perché lavorare di più?
Sì, assolutamente, ovviamente è possibile usare i gadget che provengono dall'eseguibile stesso. È possibile utilizzare qualsiasi codice che sia mappato nello spazio degli indirizzi del programma in forma eseguibile (vale a dire, dove è possibile eseguire il codice - se il sistema utilizza DEP, ciò esclude qualsiasi cosa che abbia il bit non eseguibile impostato). Ciò include i file eseguibili originali, tutte le librerie caricate in memoria e qualsiasi altra cosa in memoria che abbia le sue autorizzazioni impostate su eseguibile.