A volte, quando sviluppo un exploit che funziona perfettamente su una determinata macchina, fallirà su uno diverso, nonostante abbia lo stesso OS / Architettura e configurazioni (come il linguaggio, che nella mia esperienza può avere alcuni effetti sul memoria di processo, almeno su Windows).
Sono consapevole del fatto che esistono tecniche per ottenere maggiore affidabilità in alcuni casi. Tuttavia, mi chiedo se un exploit sviluppato e testato su un dato dispositivo (diciamo un Google Pixel), con o senza l'utilizzo di queste tecniche, debba funzionare su un altro (come un Samsung Galaxy S8).
Se no, perché? Non dovrebbe lo stesso binario avere la stessa memoria di processo? Posso pensare a diversi casi in cui ciò non dovrebbe essere vero, ad esempio se il programma carica dati specifici del dispositivo. Ma quando non è il caso, lo stesso binario, alimentato con lo stesso input, si comporterebbe diversamente quando funzionava su dispositivi diversi?
Questa domanda presuppone che ASLR sia disabilitato.
EDIT: sto chiedendo di sfruttare le vulnerabilità della corruzione della memoria, come ad esempio use-after-free e OOB read.