From 65fae6dde281108ee68bdec0db35b72bb5992125 Mon Sep 17 00:00:00 2001 From: Jean-Marie 'Histausse' Mineau Date: Thu, 24 Jul 2025 17:39:52 +0200 Subject: [PATCH 1/2] wip --- .gitignore | 2 +- 0_preamble/french_summary.typ | 2 +- 1_introduction/main.typ | 4 ++++ abstract.typ | 18 ++++++++++++------ main.typ | 11 +++++++++++ 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index f0de8a3..a136337 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -main.pdf +*.pdf diff --git a/0_preamble/french_summary.typ b/0_preamble/french_summary.typ index 4f9ada1..b7d7c57 100644 --- a/0_preamble/french_summary.typ +++ b/0_preamble/french_summary.typ @@ -13,7 +13,7 @@ /* * Vocabulaire: -* - Obfuscation: brouillage, jofr 1 jav 2013 https://www.legifrance.gouv.fr/jorf/jo/id/JORFCONT000026871045 +* - Obfuscation: brouillage, Reverse Engineering: Ingénierie Inverse, jofr 1 jav 2013 https://www.legifrance.gouv.fr/jorf/jo/id/JORFCONT000026871045 * - Malware: Maliciel, https://cyber.gouv.fr/le-cyberdico#M * * diff --git a/1_introduction/main.typ b/1_introduction/main.typ index 0b45ff9..74368bf 100644 --- a/1_introduction/main.typ +++ b/1_introduction/main.typ @@ -6,6 +6,10 @@ /* * +* A mettre qqp: +* - "Evaluating the Reusability of Android Static Analysis Tools" https://dx.doi.org/10.1007/978-3-031-66459-5_10 10.1007/978-3-031-66459-5_10 21st International Conference on Software and Systems Reuse, ICSR 2024 https://hal.science/hal-04557993v1 +* - "Class Loaders in the Middle: Confusing Android Static Analyzers" in Digital Threats: Research and Practice http://dx.doi.org/10.1145/3754457 +* * De tout temps les hommes on fait des apps android ... * * Introduire la notion de reverseur qui veux analyser une app diff --git a/abstract.typ b/abstract.typ index ed4ae95..7610b0a 100644 --- a/abstract.typ +++ b/abstract.typ @@ -1,9 +1,15 @@ -#import "@local/template-thesis-matisse:0.0.1": todo - -#let keywords-en = ("Android", "malware analysis", "static analysis", "class loading", "code obfuscation", todo[Keywords]) -#let keywords-fr = ("Android", "analyse de maliciels", "analyse statique", "chargement de classe", "brouillage de code") +#import "3_rasta/X_var.typ": resultunusable -#let abstract-en = text(fill: luma(75%), lorem(175)) +#let keywords-en = ("Android", "Malware Analysis", "Reverse Engineering", "Class Loading", "Code Obfuscation" ) +#let keywords-fr = ("Android", "Analyse de Maliciels", "Ingénierie Inverse", "Chargement de Classe", "Brouillage de Code") -#let abstract-fr = text(fill: luma(75%), lorem(175)) + +#let abstract-en = [ +] + +#let abstract-fr = [ + Cette thèse explore les difficultés liées à l'ingénierie inverse d'applications Android. + Dans un premier temps, elle reprend un effort de la communauté qui a identifié les contributions entre 2011 et 2017 portant sur l'analyse static d'application mobiles, et propose une méthodes pour évaluer la réutilisabilité des outils associés. + +] diff --git a/main.typ b/main.typ index 4b0d9e9..21ea1b5 100644 --- a/main.typ +++ b/main.typ @@ -26,6 +26,15 @@ } else { false } +#let abstract-only = if "abstract-only" in sys.inputs { + assert( + sys.inputs.abstract-only == "true" or sys.inputs.draft == "false", + message: "If --input abstract-only= is set, must be 'true', or 'false'" + ) + sys.inputs.abstract-only == "true" +} else { + false +} #show: matisse-thesis.with( title-fr: todo[Find a title], @@ -40,7 +49,9 @@ keywords-fr: keywords-fr, abstract-en: abstract-en, abstract-fr: abstract-fr, + abstract-font-size: 10pt, draft: draft, + abstract-only: abstract-only, ) // Preamble From b9d157cb3fa39545ca9b127594351a38ecdcfd39 Mon Sep 17 00:00:00 2001 From: Jean-Marie 'Histausse' Mineau Date: Thu, 24 Jul 2025 19:39:52 +0200 Subject: [PATCH 2/2] first abstract --- abstract.typ | 21 +++++++++++++++++++-- main.typ | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/abstract.typ b/abstract.typ index 7610b0a..f181a68 100644 --- a/abstract.typ +++ b/abstract.typ @@ -6,10 +6,27 @@ #let abstract-en = [ + The growing importance of smartphones in our daily lives makes them a prime target for malicious actors. + This makes our ability to analyse an application critical, as it allows us to determine if an application is malware and its impact on the user. + + This thesis explores the difficulties of reverse engineering an Android application. + First, we pursue a community effort that identified contributions between 2011 and 2017 about static analysis of Android applications, and we propose a method to evaluate the reusability of the associated tools. + An extensive analysis of the execution failures of those tools shows that #resultunusable of them are no longer usable. + Then, we model the mechanism that loads the classes used by an application and present an obfuscation method based on the discrepancies between this model and the one used by analysis tools like Androguard and Flowdroid. + Finally, we propose an approach consisting of encoding the result of a dynamic analysis inside a new valid application to allow existing tools to analyse applications that rely on dynamic code loading. + ] #let abstract-fr = [ - Cette thèse explore les difficultés liées à l'ingénierie inverse d'applications Android. - Dans un premier temps, elle reprend un effort de la communauté qui a identifié les contributions entre 2011 et 2017 portant sur l'analyse static d'application mobiles, et propose une méthodes pour évaluer la réutilisabilité des outils associés. + La place croissante des téléphones mobiles dans notre vie quotidienne en font une cible de choix pour les acteurs malveillants. + Cette menace rend l'analyse d'application cruciale pour déterminer s'il s'agit ou non d'un maliciel et de son impact sur l'utilisateur s'il s'agit bien d'une application malveillante. + + Cette thèse explore les difficultés liées à l'ingénierie inverse d'applications Android. + Dans un premier temps, elle reprend un effort de la communauté qui a identifié les contributions entre 2011 et 2017 portant sur l'analyse statique d'applications mobiles et propose une méthode pour évaluer la réutilisabilité des outils associés. + Une étude poussée des échecs lors de l'exécution de ces outils montre que #resultunusable d'entre eux ne sont plus utilisables. + Elle modélise ensuite le processus de chargement des classes utilisées par une application et présente une méthode de brouillage basée sur les différences entre ce modèle et celui utilisé par des outils d'analyses tels que Androguard ou Flowdroid. + Enfin, elle propose une approche consistant à encoder les résultats d'une analyse dynamique dans une nouvelle application valide pour permettre aux outils existants d'analyser des applications faisant usage de chargement de code dynamique. + + ] diff --git a/main.typ b/main.typ index 96ac49a..eef4b85 100644 --- a/main.typ +++ b/main.typ @@ -49,7 +49,7 @@ keywords-fr: keywords-fr, abstract-en: abstract-en, abstract-fr: abstract-fr, - abstract-font-size: 10pt, + //abstract-font-size: 10pt, draft: draft, abstract-only: abstract-only, )