Compare commits
3 commits
f71b3ab0a7
...
b9d157cb3f
Author | SHA1 | Date | |
---|---|---|---|
b9d157cb3f | |||
8d875ff32a | |||
65fae6dde2 |
5 changed files with 48 additions and 9 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1 +1 @@
|
||||||
main.pdf
|
*.pdf
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Vocabulaire:
|
* 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
|
* - Malware: Maliciel, https://cyber.gouv.fr/le-cyberdico#M
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
|
|
@ -14,11 +14,16 @@ For example, various applications have been shown to steal personal information@
|
||||||
Consequently, Android has also been an important subject for security research.
|
Consequently, Android has also been an important subject for security research.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* 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
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
* Android securité explique a ma grand-mere
|
* Android securité explique a ma grand-mere
|
||||||
* expliquer gentillement, montrer tout les angles de la securité: renforcer l'OS, detecter les malware, reverse
|
* expliquer gentillement, montrer tout les angles de la securité: renforcer l'OS, detecter les malware, reverse
|
||||||
*
|
*
|
||||||
* c'est quoi le reverse?
|
* c'est quoi le reverse?
|
||||||
*
|
|
||||||
* arriver sur le probleme que les cas qui marchent pas sont souvant ignoré (chiffrer, tableau?) et fait a la main dans les cas
|
* arriver sur le probleme que les cas qui marchent pas sont souvant ignoré (chiffrer, tableau?) et fait a la main dans les cas
|
||||||
* cause, pourquoi?
|
* cause, pourquoi?
|
||||||
* est ce qu'on peut essayer de reparer?
|
* est ce qu'on peut essayer de reparer?
|
||||||
|
|
35
abstract.typ
35
abstract.typ
|
@ -1,9 +1,32 @@
|
||||||
#import "@local/template-thesis-matisse:0.0.1": todo
|
#import "3_rasta/X_var.typ": resultunusable
|
||||||
|
|
||||||
#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")
|
|
||||||
|
|
||||||
|
|
||||||
#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 = [
|
||||||
|
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 = [
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
]
|
||||||
|
|
11
main.typ
11
main.typ
|
@ -26,6 +26,15 @@
|
||||||
} else {
|
} else {
|
||||||
false
|
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=<val> is set, <val> must be 'true', or 'false'"
|
||||||
|
)
|
||||||
|
sys.inputs.abstract-only == "true"
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
#show: matisse-thesis.with(
|
#show: matisse-thesis.with(
|
||||||
title-fr: todo[Find a title],
|
title-fr: todo[Find a title],
|
||||||
|
@ -40,7 +49,9 @@
|
||||||
keywords-fr: keywords-fr,
|
keywords-fr: keywords-fr,
|
||||||
abstract-en: abstract-en,
|
abstract-en: abstract-en,
|
||||||
abstract-fr: abstract-fr,
|
abstract-fr: abstract-fr,
|
||||||
|
//abstract-font-size: 10pt,
|
||||||
draft: draft,
|
draft: draft,
|
||||||
|
abstract-only: abstract-only,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Preamble
|
// Preamble
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue