diff --git a/slides.typ b/slides.typ index 69e26a5..ff5a6b1 100644 --- a/slides.typ +++ b/slides.typ @@ -17,6 +17,8 @@ ) #codly-disable() +#let analyse-apk = move(dx: -50pt, image("slides/imgs/apk-analysis.svg", width: 300pt)) + #set text(lang: "en") #set list(marker: none) #set par(leading: 0.2em) @@ -148,6 +150,10 @@ - *Dynamic Code Loading* - *Reflection* + + /* + * Low effort yet efficiant, commonly found + */ ] ] @@ -263,6 +269,15 @@ ) ] +#slide( + title: [Analysis Methods], + foreground: eye-3(x: 3%, y: 5%) +)[ + #set align(center+horizon) + #analyse-apk +] +#counter("logical-slide").update( n => n - 1 ) + #slide( foreground: ghost-5(x: 10%, y: 7%) )[ @@ -296,19 +311,42 @@ ] #slide( - title: [Analysing Applications: Which Tools?], + title: [Which Tools?], foreground: eye-3(x: 3%, y: 5%) )[ #set align(center+horizon) - #move(dx: -50pt, image("slides/imgs/apk-analysis.svg", width: 300pt)) + #analyse-apk +] + +#counter("logical-slide").update( n => n - 1 ) +#slide( + title: [Which Tools are Working?], + foreground: eye-3(x: 3%, y: 5%) +)[ + #set align(center+horizon) + #analyse-apk ] #slide( title: [Problem Statement 1], )[ + #item-by-item[ + - Which tool to use? + - Are they easy to install? + - Are they working? + ] #highlight-block(pb1-text) ] +#slide( + title: [How does Class Loading works?], + foreground: eye-3(x: 3%, y: 5%) +)[ + #set align(center+horizon) + #analyse-apk +] +#counter("logical-slide").update( n => n - 1 ) + #slide( title: [Class Loading], )[ @@ -362,15 +400,17 @@ - Doubious documentation - Not studied in the context of Android Static Analysis ] -] - -#counter("logical-slide").update( n => n - 1 ) -#slide( - title: [Problem Statement 3], -)[ #highlight-block(pb2-text) ] +#slide( + title: [Can we Deobfuscate?], + foreground: eye-3(x: 3%, y: 5%) +)[ + #set align(center+horizon) + #analyse-apk +] +#counter("logical-slide").update( n => n - 1 ) #slide( title: [Deobuscation], )[ @@ -394,10 +434,16 @@ ) ] -#counter("logical-slide").update( n => n - 1 ) +//#counter("logical-slide").update( n => n - 1 ) #slide( title: [Problem Statement 3], )[ + #item-by-item[ + - Dynamic analysis is good against DCL and reflection + - Dynamic analysis is limited by code coverage + - Static analysis is not + - How to use existing tools without modifying them? + ] #highlight-block(pb3-text) ] @@ -448,14 +494,14 @@ title: [State of the Art], )[ #set list(spacing: 0.5em) - Li #etal: + Li #etal (2017): #v(0pt) #item-by-item[ - Systematic literature review for Android static analysis - Lists open-sourced tools - Does not test the tools ] - #uncover("4-")[Reaves #etal:] + #uncover("4-")[Reaves #etal (2016):] #v(0pt) #item-by-item(start: 4)[ - Tests 7 Android analysis tools @@ -517,10 +563,11 @@ ghost-2(x: 97%, y: 10%) let x_0 = 112pt - let y_0 = -117pt + let y_0 = -116pt let w = 21pt - let h = 235pt + let h = 236pt let dx = 33.3 + let h_legend = 60pt for i in range(20) { let color = if i in (2, 4, 6, 7, 8, 9, 14, 16, 18, 19) { @@ -528,6 +575,24 @@ } else { white.transparentize(10%) } + if i == 1 { + place( + bottom + left, + dx: x_0 + i*dx*1pt + w/2, + dy: y_0, + rect( + width: w/2, + height: h_legend, + //stroke: red, + fill: color, + ) + ) + } + let (y_0, h) = if i in (0, 1) { + (y_0 - h_legend, h - h_legend) + } else { + (y_0, h) + } place( bottom + left, dx: x_0 + i*dx*1pt, @@ -626,6 +691,7 @@ - Newer applications are harder to analyse - Applications with more bytecode are harder to analyse - Applications targetting more recent versions of Android are harder to analyse + - Confirms and extends Reaves #etal ] #v(1fr) #align(center, text(fill: pirat-color.blue.darken(30%))[International Conference on Software and Systems Reuse (ICSR 2024)]) @@ -681,8 +747,8 @@ )[ #set list(spacing: 3em) #item-by-item[ - - Previous contributions focus on Java runtime - - Android related contributions focus on Dynamic Code Loading + - Previous contributions focus on Java runtime (#eg Gong 1998) + - Android related contributions focus on Dynamic Code Loading (#eg Zhang #etal 2015) ] ] diff --git a/slides/lib.typ b/slides/lib.typ index add2e31..a1958ee 100644 --- a/slides/lib.typ +++ b/slides/lib.typ @@ -22,6 +22,7 @@ pirat-color.red, ) #let etal = [_et al._] +#let eg = [_e.g._] #let highlight-block(body) = { set text(fill: white)