CODE OBFUSCATION
DEFENSE STRATEGIES Roberto Giacobazzi Dipartimento di Informatica Universit` a degli Studi di Verona Italy
ASP 2009
Ingegneria e Scienze Informatiche – Verona – p.1/74
D EFENSE S TRATEGIES : Cover Given two frames x and y make x an - - PowerPoint PPT Presentation
C ODE O BFUSCATION D EFENSE STRATEGIES Roberto Giacobazzi Dipartimento di Informatica Universit` a degli Studi di Verona Italy ASP 2009 Ingegneria e Scienze Informatiche Verona p.1/74 T HE SOURCE Most of the slides are taken from:
Ingegneria e Scienze Informatiche – Verona – p.1/74
Ingegneria e Scienze Informatiche – Verona – p.2/74
!!!!!!!!!!!! "#$%&'(& )*$(*#*+(,-,./&(. &01&#,-2,30+(&,40'5 677
Ingegneria e Scienze Informatiche – Verona – p.3/74
Ingegneria e Scienze Informatiche – Verona – p.4/74
!"#$%&'% ()#& *'+ ,%&'#)"' !"#$%&'% ()#& *'+ ,%&'#)"'
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.5/74
!"#$%&'% ( ) !"#$%&'% (* )* ( )
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.6/74
!"#$%&'% ()*)$+,
!"#$%&'% ()*)$+,
. ()*)$+,
3%&4%
Ingegneria e Scienze Informatiche – Verona – p.7/74
!"#"$%& ' ( )*+$,-., / !"#"$%& ' / )*+$,-., (
Ingegneria e Scienze Informatiche – Verona – p.8/74
!"#"$%& ' ( )*+$,-., / !"#"$%& ' 01/2 )*+$,-., 01(2
Ingegneria e Scienze Informatiche – Verona – p.9/74
( ) * + $ ,
, /
( ) * + $ ,
, /
!"#$%&'()*+,- !"#$%&'(.*+, /// %%%&'()*+0
!"#$%*123&)+*+45&'()0 !"#$%*123&.+*+4523&)0% !"#$%&'(.*+, %*1123&.+*+0
Ingegneria e Scienze Informatiche – Verona – p.10/74
"#$%&'(& )'*)+,+-%./- ! "#$%&'(& )'*)+,+-%./- )'*)+,+-%./-
!"#$%&'%
!"##! !$%&!
(%' !"#$%&'%
!"##! !$%&!
(%'( !"#$%&'%
!"##! !$%&!
(%'
!"##! !$%&!
(%'
!)%*! !$%&!
(%'(
Ingegneria e Scienze Informatiche – Verona – p.11/74
!"#$%&'% (&)(*+*,$-., / !"#$%&'% (&)(*+*,$-.,
/
Ingegneria e Scienze Informatiche – Verona – p.12/74
! " # $ % & ' % ( ! " # $ % & ' %
!"#$%"&'()*+,*(
( ) )
!"#$%&'%
!"#
(&)* !"#$%&'% +,"-.)(/ +," $%#&'%()!"#*+*,-***00 ..+/01203$%#&'%()!"#4*+-* !"#5+!"#)6%78 (&)* !"# Ingegneria e Scienze Informatiche – Verona – p.13/74
Ingegneria e Scienze Informatiche – Verona – p.14/74
!
!
Ingegneria e Scienze Informatiche – Verona – p.15/74
Ingegneria e Scienze Informatiche – Verona – p.16/74
!
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.17/74
Ingegneria e Scienze Informatiche – Verona – p.18/74
Ingegneria e Scienze Informatiche – Verona – p.19/74
Ingegneria e Scienze Informatiche – Verona – p.20/74
Ingegneria e Scienze Informatiche – Verona – p.21/74
Ingegneria e Scienze Informatiche – Verona – p.22/74
Ingegneria e Scienze Informatiche – Verona – p.23/74
!"#$ !"#$ %"#$ %"#$
Ingegneria e Scienze Informatiche – Verona – p.24/74
!
!
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.25/74
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.26/74
!
!
Ingegneria e Scienze Informatiche – Verona – p.27/74
!
!
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.28/74
Ingegneria e Scienze Informatiche – Verona – p.29/74
Ingegneria e Scienze Informatiche – Verona – p.30/74
!
Ingegneria e Scienze Informatiche – Verona – p.30/74
Ingegneria e Scienze Informatiche – Verona – p.30/74
Ingegneria e Scienze Informatiche – Verona – p.30/74
[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]
Ingegneria e Scienze Informatiche – Verona – p.31/74
[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]
Ingegneria e Scienze Informatiche – Verona – p.31/74
[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]
Ingegneria e Scienze Informatiche – Verona – p.31/74
Ingegneria e Scienze Informatiche – Verona – p.32/74
0− 0+ ℘(Z) . . . 1 . . . . . . . . . . . . 0+ 0− ∅ ℘(Z) {−1, −3, −4} {2, 3, 5} ∅
Ingegneria e Scienze Informatiche – Verona – p.32/74
0− 0+ ℘(Z) . . . 1 . . . . . . . . . . . . 0+ 0− ∅ ℘(Z) {−1, −3, −4} {2, 3, 5} ∅
Ingegneria e Scienze Informatiche – Verona – p.32/74
!
!
Ingegneria e Scienze Informatiche – Verona – p.32/74
Ingegneria e Scienze Informatiche – Verona – p.33/74
10
Ingegneria e Scienze Informatiche – Verona – p.33/74
Ingegneria e Scienze Informatiche – Verona – p.34/74
ι ι−
Ingegneria e Scienze Informatiche – Verona – p.34/74
ι ι−
Ingegneria e Scienze Informatiche – Verona – p.34/74
Ingegneria e Scienze Informatiche – Verona – p.34/74
Ingegneria e Scienze Informatiche – Verona – p.35/74
!
!
!
!"#$ %&'($ !"#$ %&'($ !"#$ %&'($
P F
Ingegneria e Scienze Informatiche – Verona – p.36/74
Ingegneria e Scienze Informatiche – Verona – p.37/74
P T
!"#$ %&'($
Ingegneria e Scienze Informatiche – Verona – p.38/74
P T
!"#$ %&'($
Ingegneria e Scienze Informatiche – Verona – p.39/74
!"#$ %&'($
P ?
Ingegneria e Scienze Informatiche – Verona – p.40/74
"#$% &'(%
P
!"#$% &'(%
P P T
!"#$% &'(%
Ingegneria e Scienze Informatiche – Verona – p.41/74
"#$% &'(%
P
!"#$% &'(%
P
P F
!"#$% &'(%
Ingegneria e Scienze Informatiche – Verona – p.42/74
"#$% &'(%
P
P F
!"#$% &'(% !"#$% &'(%
P
P F
!"#$% &'(%
Ingegneria e Scienze Informatiche – Verona – p.43/74
∗⊙
! " !#"
Ingegneria e Scienze Informatiche – Verona – p.44/74
Ingegneria e Scienze Informatiche – Verona – p.45/74
Ingegneria e Scienze Informatiche – Verona – p.46/74
" # " $% $& $' $(
Ingegneria e Scienze Informatiche – Verona – p.47/74
T2
! " ! "
" #$ % #& #'
✡#&
T2
✡" #$ #& %
✡%
✡T2
"
✡"
✡%
✡T1
#' #& #' #& #$ #& #$ #& #' #& Ingegneria e Scienze Informatiche – Verona – p.48/74
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.49/74
Ingegneria e Scienze Informatiche – Verona – p.50/74
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.51/74
Ingegneria e Scienze Informatiche – Verona – p.52/74
!"#$% &' &( &( &' $ ) ! * + % &( &' ,-.* &( &'
Ingegneria e Scienze Informatiche – Verona – p.53/74
Ingegneria e Scienze Informatiche – Verona – p.54/74
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.55/74
semantics t[SP] ⊑ SτP program P Subject Syntactic transformation τ program τP Transformed p S p S Semantic Transformed transformation t program program semantics SP Subject
Ingegneria e Scienze Informatiche – Verona – p.56/74
η,ρ(f ) = {h : C −
η,ρ(f ) = F{h : C −
η,ρ(f ) and F↓ η,ρ(f ) are (Forward) complete
η,ρ(f ) = F{g : C −
η,ρ(g) = F↓ η,ρ(f )}
η,ρ(f ) = {g : C −
η,ρ(g) = F↑ η,ρ(f )}
η,ρ(f ) and O↓ η,ρ(f ) are generally in-complete
Ingegneria e Scienze Informatiche – Verona – p.57/74
Ingegneria e Scienze Informatiche – Verona – p.57/74
⊤ ⊤ ⊥
⊥
η,ρ = λf .λx.
Ingegneria e Scienze Informatiche – Verona – p.57/74
⊤ ⊤ ⊥
⊥
η,ρ = λf .λx.
Ingegneria e Scienze Informatiche – Verona – p.57/74
⊤ ⊤ ⊥
⊥
η,ρ(f )(x) =
Ingegneria e Scienze Informatiche – Verona – p.57/74
⊤ ⊤ ⊥
⊥
η,ρ(f )(x) =
Ingegneria e Scienze Informatiche – Verona – p.57/74
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.58/74
ι,ι(λX. wlpx = x ∗ xι(X ))(x ∈ [10, 100]) =
Ingegneria e Scienze Informatiche – Verona – p.59/74
Ingegneria e Scienze Informatiche – Verona – p.59/74
Ingegneria e Scienze Informatiche – Verona – p.59/74
Ingegneria e Scienze Informatiche – Verona – p.59/74
α,α(λX. wlpMj ι(X ))(Φj )
Ingegneria e Scienze Informatiche – Verona – p.60/74
Ingegneria e Scienze Informatiche – Verona – p.61/74
!
!
Ingegneria e Scienze Informatiche – Verona – p.62/74
Ingegneria e Scienze Informatiche – Verona – p.63/74
!
!" !# !$
☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛ ☛Ingegneria e Scienze Informatiche – Verona – p.64/74
Ingegneria e Scienze Informatiche – Verona – p.65/74
Ingegneria e Scienze Informatiche – Verona – p.66/74
!
!
!
!"#!$
! "
☞!"#$ %&'()&*+,-./*,(. %&'()0&,12-./*,(. ./*,(.3
Ingegneria e Scienze Informatiche – Verona – p.67/74
!
!
!
! " # $ % &
!"#$%
'()(*!+,,,+&- ! $ # &
&'(&)'&
A ⊕ B E ⊕ F
Ingegneria e Scienze Informatiche – Verona – p.68/74
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.69/74
!
!
Ingegneria e Scienze Informatiche – Verona – p.70/74
Ingegneria e Scienze Informatiche – Verona – p.71/74
!
Ingegneria e Scienze Informatiche – Verona – p.72/74
!
!
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.73/74
!
!
!
!
Ingegneria e Scienze Informatiche – Verona – p.74/74