Reverse engineering - Contromisure [chiuso]

1

Sono nuovo nella sicurezza delle informazioni, ma sto imparando il reverse engineering.

Ho letto qui sulle contromisure per fare il reverse engineering difficile. La firma del codice protegge il codice dal reverse engineering?

EDIT : a proposito dell'offuscamento credo che i compagni abbiano risposto. Grazie!

    
posta eightShirt 27.02.2016 - 00:01
fonte

2 risposte

4

Stai confondendo molti termini qui. Forse posso aiutarti.

  • La firma del codice è il processo di firma crittografica di un file in modo che un utente del file possa dire chi ha firmato il file e se è stato modificato dalla firma. Generalmente non rende il file illeggibile, tuttavia, a seconda di come la firma è collegata al file, potrebbe essere necessario uno strumento speciale per esaminarlo. Non ha alcun effetto sul codice sorgente o sul reverse engineering. Windows ha un processo di firma del codice chiamato Authenticode che è ben documentato . Potresti volerlo leggere per informazioni generali di base.
  • Obfuscatation tenta di rendere il codice eseguibile più difficile da leggere. Questo è generalmente riservato a linguaggi tradotti come JavaScript e linguaggi compilati con codice byte come Java e C # /. NET perché è molto più facile visualizzare la fonte di questi programmi. L'offuscamento non è correlato alla firma del codice. Devi cercare i sistemi di offuscamento per la tua piattaforma specifica (es .: .NET).
  • Niente renderà il codice assembly non leggibile. Dopotutto, la CPU deve leggerlo per eseguire il programma in modo che sia leggibile. Detto questo, le tecniche di offuscamento possono renderlo più difficile da leggere, anche se il codice assembler ottimizzato è già piuttosto difficile da decodificare.

Penso che tu debba fare qualche ricerca in più a questo punto e tornare quando avrai una migliore comprensione delle basi.

    
risposta data 27.02.2016 - 04:02
fonte
0

Non sono sicuro di come la firma del codice possa proteggere il tuo codice dall'essere revocato.

Tuttavia, potrebbe proteggere il tuo diritto come autore di codice (quello è il modo in cui i fornitori di software utilizzano per assicurarsi che l'app che hai non sia stata manomessa).

L'offuscamento sta semplicemente scrivendo il codice in un modo che lo rende difficile da capire. applicate questa tecnica mentre scrivete il vostro codice sorgente. Non renderà il tuo assemblaggio "illeggibile". Il cracker sarebbe ancora in grado di vedere le istruzioni di assemblaggio una volta che ha allegato il tuo exe (che hai ottenuto dopo aver compilato il tuo codice offuscato) a un simulatore. Tuttavia, avrà difficoltà a capire cosa fa e a tradurlo nel codice originale. Ecco un esempio di codice C offuscato:

#include <stdio.h>
main(t,_,a)
char
*
a;
{
    return!

0<t?
t<3?

main(-79,-13,a+
main(-87,1-_,
main(-86, 0, a+1 )

+a)):

1,
t<_?
main(t+1, _, a )
:3,

main ( -94, -27+t, a )
&&t == 2 ?_
<13 ?

main ( 2, _+1, "%s %d %d\n" )

:9:16:
t<0?
t<-72?
main( _, t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;\
#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:
t<-50?
_==*a ?
putchar(31[a]):

main(-65,_,a+1)
:
main((*a == '/') + t, _, a + 1 )
:

0<t?

main ( 2, 2 , "%s")
:*a=='/'||

main(0,

main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")

,a+1);}  
    
risposta data 27.02.2016 - 00:35
fonte

Leggi altre domande sui tag