Intro

I like to use Machine Learning for Computer Security applications, currently Binary Code Analysis. Also interested in security implications of ML usage.

Being a big fan of Star Trek, I was fascinated by the android Data and the concept of artificial intelligence. It became very clear that I wanted to study Computer Science and find out more about the nature of learning.

During my time at university, I wanted to recreate biologically inspired learning algorithms. After looking at genetic algorithms and neurobiology, I got into machine learning. One of my key experiences was the moment in Computer Engineering when you get from a few transistors to a working CPU, i.e. understanding emergence from a low level. This has finally brought me to utilize machine learning to capture semantic behaviour of machine code.

Back

Research

My Google Scholar profile

In my PhD project, I am working on the topic of binary similarity detection, i.e. I am researching Deep Learning models which capture semantics of binary machine code and can embed functions into a semantic embedding space. My goal is to use contrastive learning approaches in order to utilize big datasets gathered from compiling publicly available source code in multiple ways.

My first paper as a co-author, XFL: Naming Functions in Binaries with Extreme Multi-label Learning, together with James Patrick-Evans and Johannes Kinder, got published at IEEE S&P 2023 and I was holding the presentation in San Francisco which is available as video here.

My master thesis "Using Deep Learning with Triplet Loss for Medical Image Segmentation" was about the application of Triplet Loss learning to a Convolutional Neural Network, aiming to detect different tissues in breast MRI scans. After training the CNN, outlier detection with the DBSCAN clustering algorithm looked promising in order to detect unseen cancer tissue.

In my bachelor thesis "Genetic algorithms for Minimum Dominating Set", I have constructed and analyzed an algorithm to build graphs with a known Minimum Dominating Set and then evaluated different variations of genetic algorithms on it. Interestingly, the use of crossover showed a negative impact on the performance of the genetic algorithms. This ultimately meant that a simple local search was more efficient than genetic algorithms.

Back

Skills

My programming language of choice is Python which I have used to implement all of my projects. I am working with the following frameworks:

  • PyTorch
  • Tensorflow/Keras
  • PostgreSQL
  • Docker
  • Weights and Biases
  • radare2

Because my PhD project is about semantic analysis of machine code, I am learning more about x86 assembly code. I have been a teaching assistant for the course "Reverse Engineering" which gives an introduction to Ghidra and Windows x86 assembly.

I am mostly working with Linux, in particular Arch Linux. I maintain a small web server on my Raspberry Pi 4.

Teaching

At LMU Munich, I have been teaching:

  • Winter '24/'25: Software Development Project (2nd year BSc project)
  • Winter '24/'25: Reverse Engineering exercises for the lecture Program Analysis for Security (MSc lecture)
  • Summer '24: Seminar Machine Learning for Binary Reverse Engineering (MSc seminar)
  • Winter '23/'24: Software Development Project (2nd year BSc project)
  • Winter '23/'24: Reverse Engineering exercises for the lecture Program Analysis for Security (MSc lecture)
  • Summer '23: Seminar Machine Learning for Binary Reverse Engineering (MSc seminar)

During my time at Bundeswehr University (2020-23), I have been teaching:

  • Winter '22: Lab Reverse Engineering (part of MSc lecture)
  • Summer '22: Seminar Machine Learning in Reverse Engineering and Malware Detection (MSc seminar)
  • Winter '21: Lab Reverse Engineering (part of MSc lecture)
  • Summer '21: Seminar Machine Learning in Reverse Engineering and Malware Detection (MSc seminar)
  • Winter '20: Lab Reverse Engineering (part of MSc lecture)
  • Summer '20: Seminar Machine Learning in Reverse Engineering and Malware Detection (MSc seminar)

Supervised student theses:

  • Comparing Natural Language Embeddings for Libc Functions as Rich Labels (BSc). Ruben Triwari, 2025
  • Software diversity as dataset augmentation for binaries with diverse compilation settings (BSc). Hamidreza Aslani, 2025
  • Source-to-Source Transpilation with Deep Learning (BSc). Ihor Chornyi, 2024
  • Third Party Library Detection Using Code Structures (MSc). Lars E., 2023

Contact

LinkedIn
Google Scholar
You can find my email at my page at LMU here




Impressum

Angaben gemäß §5 TMG

Moritz Dannehl
Kontakt über Kontaktformular möglich.

Diese Website enthält ausschließlich privaten Inhalt.

Haftung für Inhalte

Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.

Haftung für Links

Diese Website enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form