continue feedback
All checks were successful
/ test_checkout (push) Successful in 1m50s

This commit is contained in:
Jean-Marie 'Histausse' Mineau 2025-10-21 15:58:12 +02:00
parent de6359db3f
commit 7a80f1fea6
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
5 changed files with 511 additions and 23 deletions

View file

@ -27,7 +27,7 @@
aspect-ratio : "16-9",
title : [From Large Scale Analysis to Dynamic Deobfuscation],
subtitle : [The Woes of Android Reverse Engineering],
footer-text : [Jean-Marie Mineau PhD Defense],
footer-text : [Jean-Marie Mineau -- PhD Defense],
//short-event : [Rennes, 2025/12/9],
title-size : 32pt,
section-size : 18pt,
@ -715,15 +715,44 @@
}
#slide(
title: [Android ClassLoaders], // TODO CHANGE DRAWING
foreground: rotate(30deg, text(fill: pirat-color.red, size: 50pt)[DESSIN RUNTIME CL \ \ WITH DELEGATION])
)[
/*
#set align(center+horizon)
#show figure.caption: none
#scale(60%, reflow: true, get_figure(<fig:cl-class_loading_classes>))
*/
]
title: [Android ClassLoaders],
foreground: {
//rotate(30deg, text(fill: pirat-color.red, size: 50pt)[DESSIN RUNTIME CL \ \ WITH DELEGATION])
let stroke = black + 3pt
let y0 = 170pt
let y1 = 270pt
let x0 = 250pt
let x1 = 292pt
let x2 = 550pt
let x3 = 600pt
place(bottom+left, line(start: (x0, -y0), end: (x0, -y1), stroke: stroke))
place(bottom+left, line(start: (x3, -y0), end: (x3, -y1), stroke: stroke))
arrow((x0, y1), (x1, y1), strk: stroke)
arrow((x3, y1), (x2, y1), strk: stroke)
place-fg(x: x0 - 2.5em, y: (y0+y1)/2)[Delegate]
place-fg(x: x3 + 2.5em, y: (y0+y1)/2)[Delegate]
}, {
set align(center+horizon)
set rect(width: 250pt, height: 75pt, radius: 20pt, inset: 20pt)
v(1fr)
rect()[Boot Class Loader]
v(1fr)
stack(
dir: ltr,
1fr,
rect()[System Class Loader],
1fr,
rect()[APK Class Loader],
1fr,
)
v(1fr)
})
#slide(
title: [MultiDex]
@ -1115,7 +1144,15 @@
#slide(
title: [Transformation: Dynamic Code Loading],
foreground: ghost-6(x: 80%, y: 15%, mirror: true)
foreground: {
ghost-6(x: 80%, y: 15%, mirror: true)
align(horizon+center, line(length: 80%, stroke: (thickness: 3pt, dash: (10pt, 5pt))))
place(horizon+right, dx: -1em)[
Collected at Runtime
Patched Application
]
}
)[
// Split schema: observed dyn code loaded / new apk
#set align(center+horizon)
@ -1237,6 +1274,11 @@
]
}
#slide(
foreground: rotate(30deg, text(fill: pirat-color.red, size: 50pt)[Overview Dessin]),
)[]
#counter("logical-slide").update( n => n - 1 )
#slide(
title: [Dynamic Analysis],
foreground: ghost-1(x: 97%, y: 10%, height: 70pt)
@ -1283,8 +1325,12 @@
// TODO schema!!!
#slide(
foreground: rotate(30deg, text(fill: pirat-color.red, size: 50pt)[Overview Dessin]),
)[]
#for i in range(3) {
if i != 0 { counter("logical-slide").update( n => n - 1 ) }
counter("logical-slide").update( n => n - 1 )
slide(
title: [Added Method Calls],
@ -1311,7 +1357,7 @@
]
}
// TODO: Remove?
/*
#slide(
title: [Toy Example: New Call Graph],
foreground: ghost-3(x: 93%, y: 10%)
@ -1325,16 +1371,22 @@
labels: (name) => { move(dy: -7pt, scale(140%, text(size: 10pt, weight: "bold", name))) }
)))
]
*/
#slide(
title: [Impact on Finishing Rate],
foreground: {
let strk = 3pt + pirat-color.blue
arrow((360pt, 330pt), (380pt, 310pt), strk: strk)
arrow((420pt, 330pt), (400pt, 310pt), strk: strk)
}
)[
#set align(center+horizon)
#show figure.caption: none
#scale(90%, reflow: true, get_figure(<fig:th-status-npatched-vs-patched>))
// TODO: Fleche original
// TODO: Fleche theseus
//
Original #h(2em) Transformed
#box(width: 80%, get_figure(<fig:th-status-npatched-vs-patched>))
]
#slide(
@ -1428,12 +1480,6 @@
* - slide text bof
* - Parti 3: plus dure a comprendre
* - Expliquer ce qui est fait avant le résultat (surtout parti 3)
* - 'Analysing Applications: Which Tools?': 1 - 2 bof
* plus décrire les papier avec des bullets + limites, *critiquer*
* 1) test pas les outils
* 2) a l'air de dire que ca marche pas, mais pas a l'echelle
* bascullement de which tools? a tester les outils, on est pas sur que les outils fonctionne
*
*
* slite titre problemenatiques: PB1, PB2 PB3
*