Dynamic Analysis for Finding Endianity Bugs
Thesis title in Czech: | Dynamická analýza pro hledání chyb endianity |
---|---|
Thesis title in English: | Dynamic Analysis for Finding Endianity Bugs |
Key words: | dynamická analýza, endianita, Valgrind, data-flow analýza |
English key words: | dynamic analysis, endianess, Valgrind, data-flow analysis |
Academic year of topic announcement: | 2017/2018 |
Thesis type: | diploma thesis |
Thesis language: | angličtina |
Department: | Department of Distributed and Dependable Systems (32-KDSS) |
Supervisor: | doc. RNDr. Pavel Parízek, Ph.D. |
Author: | hidden - assigned and confirmed by the Study Dept. |
Date of registration: | 28.11.2017 |
Date of assignment: | 29.11.2017 |
Confirmed by Study dept. on: | 12.12.2017 |
Date and time of defence: | 12.06.2018 09:00 |
Date of electronic submission: | 10.05.2018 |
Date of submission of printed version: | 11.05.2018 |
Date of proceeded defence: | 12.06.2018 |
Opponents: | RNDr. Jakub Yaghob, Ph.D. |
Guidelines |
Computer programs communicating with external hardware can suffer from bugs caused by using a byte ordering (endianity) different from the hardware.
A static analysis method based on explicit annotations for finding these bugs exists and is used by the Linux kernel. The student will explore an approach based on dynamic analysis with the goal of providing a better user experience, for example by reducing the number of annotations that developers have to specify manually. An output should be an implementation of the dynamic analysis in the form of a plugin for a compiler or instrumentation framework, such as Valgrind or Clang. Usability of the analysis will be evaluated on a code base that contains either existing or artificially introduced endianity bugs. |
References |
1. M. Burrows, S. Freund, and J. Wiener. Run-Time Type Checking for Binary Programs. CC 2003
2. J. Newsome and D. Song. Dynamic Taint Analysis for Automatic Detection, Analysis, and Signature Generation of Exploits on Commodity Software. NDSS 2005 3. N. Nethercote and J. Seward. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. PLDI 2007 4. N. Nethercote and J. Seward. How to Shadow Every Byte of Memory Used by a Program. VEE 2007 5. Valgrind, http://valgrind.org/ 6. Clang, https://clang.llvm.org/ 7. Using sparse for endianness verification, https://lwn.net/Articles/205624/ |