<  Back to the Polytechnique Montréal portal

Techniques d'analyse ciblée de mémoire en temps réel pour les systèmes embarqués

David Piché

Master's thesis (2023)

[img] Restricted to: Repository staff only until 11 March 2025
Terms of Use: All rights reserved
Request a copy
Show abstract
Hide abstract


Memory access errors during execution are still a concern 50 years after the C programming language was created. However, memory verification tools can help detect these memory errors. In the context of embedded systems, it is of utmost importance to ensure low overhead and invasiveness of the tool. Many tools offer a static analysis of the program, by detecting memory errors in the source code while the program is not running. In the case of embedded systems, however, it is preferred to analyze the program while it is running. Indeed, access to the source code is not required, as it would be with static analysis. In addition, memory errors related to dynamically allocated memory are challenging to predict before execution. As such, memory analysis must be done at runtime. The main objective of this thesis is to design new techniques in order to reduce the performance and memory overhead related to these tools, in hopes of applying them to embedded systems. The technique must also ensure low invasiveness. To do this, we introduce a first technique using mprotect to protect memory pages when allocating memory. When a memory access instruction accesses one of these aforementioned protected memory pages, the use of PTrace enables another thread to: — Disassemble the instruction — Extract the address in question — Perform bounds checking — Remove protection of the affected memory page(s) — Re-execute the instruction — Restore protection of the affected memory page(s)


Les erreurs lors des accès en mémoire pendant l’exécution d’un programme sont toujours d’actualité 50 ans après la création du langage de programmation C. Toutefois, des outils de vérification de mémoire peuvent détecter ces erreurs mémoires. Dans le contexte des systèmes embarqués, il est impératif de minimiser le surcoût et l’invasivité de l’approche. Plusieurs outils proposent une analyse statique du programme, en détectant les erreurs mémoires dans le code source, hors exécution du programme. Dans le contexte précédemment décrit, il est plutôt préféré d’analyser le programme lors du temps exécution. En effet, l’accès au code source n’est pas requis, contrairement à lors de l’utilisation de l’analyse statique du programme. De plus, les erreurs de mémoire qui découlent de mémoire allouée dynamiquement représentent un défi considérable à détecter hors exécution. Ainsi, l’outil doit effectuer la vérification de mémoire en temps d’exécution. L’objectif de ce mémoire se résume donc sur la conception de techniques visant à réduire le surcoût de temps et de mémoire lié à ces outils, dans un contexte d’utilisation de systèmes embarqués. Il faut aussi s’assurer que la technique soit la moins invasive possible. Pour ce faire, nous introduisons une première technique en utilisant mprotect afin de protéger des pages de mémoire lors de l’allocation des zones mémoire. Quand une de ces pages est accédée lors d’accès mémoire, l’utilisation de PTrace permet ensuite à autre fil d’exécution de : — Désassembler l’instruction — Extraire l’adresse en question — Effectuer la vérification des bornes adressables — Enlever la protection de la (des) page(s) concernée(s) — Ré exécuter l’instruction — Remettre la protection de la (des) page(s) concernée(s)

Department: Department of Computer Engineering and Software Engineering
Program: Génie informatique
Academic/Research Directors: Michel Dagenais
PolyPublie URL: https://publications.polymtl.ca/55856/
Institution: Polytechnique Montréal
Date Deposited: 11 Mar 2024 13:59
Last Modified: 05 Apr 2024 18:15
Cite in APA 7: Piché, D. (2023). Techniques d'analyse ciblée de mémoire en temps réel pour les systèmes embarqués [Master's thesis, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/55856/


Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only

View Item View Item