2013-03-10 26 views
6

C'è un modo per "proteggere" in qualche modo una libreria nativa condivisa (.so) per la piattaforma Android contro il cambio binario? E.g. qualcuno potrebbe sovrascrivere un'istruzione JMP con un NOP dopo aver decodificato l'applicazione e distribuito quella libreria sui dispositivi rooted.Protezione integrità libreria condivisa Android

C'è qualcosa qualcuno può fare?

Quello che sto cercando qui è un'idea sull'implementazione di una serie di controlli (ad esempio crittografia, checksum, ecc.). Naturalmente dal momento che la piattaforma non sembra offrire supporto per questo (correggimi se sbaglio) dovrebbe essere tutto 'lato client'. Quindi l'intera faccenda è un po 'futile, ma almeno ostacolerà il reverse engineering.

+0

Ovviamente è possibile implementare la protezione SO consentendole di calcolare il proprio checksum, crittografare parti del codice stesso. È tutto simile a quello che è stato fatto in Windows per anni (ma più difficile). Ma se non hai esperienza con la protezione dei moduli su Linux, è meglio non iniziare. Non so se esistano prodotti di protezione pre-creati per il tuo compito. –

+0

Grazie @ EugeneMayevski'EldoSCorp. Mi piacerebbe provare - come calcoli il tuo checksum? – AndroidSec

risposta

3

Sì, ci sono cose che puoi fare, e lo renderanno molto impegnativo per il Reverse Engineer, ma dubito che saresti in grado di fare tutto ciò che si fermerebbe Chris Eagle.

Il modo migliore per proteggere dalla modifica consiste nel prendere uno SHA-2 del file .so dopo averlo compilato e ripetere ogni volta in fase di runtime, confrontandolo con il valore noto. Questo controllo verrà applicato sul lato client, quindi un RE esperto potrebbe semplicemente modificare il file binario per ignorare il controllo. Lo rende un po 'più difficile però. Se si mettono i controlli in tutto il codice e si usano tecniche di controllo diverse, si estende la quantità di lavoro che l'IR deve svolgere. Sappiate comunque che Microsoft ha riversato milioni di dollari in tecniche anti-RE e che ci sono ancora copie pirata di Office e Windows. Non li fermerai mai tutti. La mia filosofia personale (ora che ho studiato RE da solo) è che alla fine è troppo doloroso cercare di fermarli. Basta fare una buona app, renderla economica e la gente comprerà. I furfanti che rubano le tue cose non l'avrebbero comprato comunque.

Se l'app chiama a casa, è possibile inviare l'hash al server per la verifica. Certo e RE può ancora aggirare questo, ma è ancora una cosa da fare.

+0

Esattamente quello che stavo cercando. Grazie! – AndroidSec

Problemi correlati