Thesis (Selection of subject)Thesis (Selection of subject)(version: 368)
Thesis details
   Login via CAS
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/
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html