Scopri l'indirizzo framebuffer su un'architettura sconosciuta?

1

Recentemente ho eseguito il codice non firmato tramite un exploit su un dispositivo. Ora vorrei scoprire l'indirizzo del framebuffer in modo da poter scrivere sullo schermo e produrre i dati.

L'unico modo in cui posso immaginare di farlo è un ciclo for / while e scrivere su ogni indirizzo di memoria finché lo schermo non viene disegnato. Quando dico indirizzo, intendo indirizzo pyshicall.

È il modo migliore o ci sono altri metodi per farlo? Al momento sono completamente cieco poiché non posso produrre nulla.

Grazie

    
posta Pedro Javier Fernández 21.08.2016 - 11:34
fonte

1 risposta

1

Se vedi ciò che è sul display o se puoi persino far mostrare al dispositivo un'immagine di tua scelta, puoi indovinare i dati che rappresentano i pixel nel framebuffer. Hai solo bisogno di conoscere il formato pixel o provare tutti i formati tipici (RGB, BGR, RGBx, BGRx ...). Quindi basta scansionare tutta la memoria per i dati che ci si aspetta di trovare nel framebuffer. La lettura è molto meno distruttiva della scrittura e non è necessario osservare se il display cambia tra le scritture.

Esempio: supponiamo che tu sappia che al momento dell'esecuzione c'è una linea di pixel contenente pixel neri, neri, bianchi, neri e bianchi in questo ordine. Crea la memoria di scansione degli exploit per 000000 000000 FFFFFF 000000 FFFFFF . Se trovi una corrispondenza, potresti aver trovato un indirizzo all'interno del framebuffer e puoi provare a scrivere su di esso per l'output sul display. Ovviamente più lungo è il modello, minore possibilità di falsi positivi.

    
risposta data 21.08.2016 - 12:06
fonte

Leggi altre domande sui tag