Reverse engineering di oggetti standard C++

DOCENTI
Lorenzo Binosi
Stefano Zanero

AREA DI RICERCA
Sicurezza Informatica

KEYWORD (MAX 3 SEPARATE DA VIRGOLA)
Reverse Engineering, Type Inference, Function Clone Identification

TECNOLOGIE DA UTILIZZARE
Python (angr), IDA, Ghidra

DESCRIZIONE (MAX 500 CARATTERI)
L’analisi di applicazioni software compilate rappresenta un’attività fondamentale, specialmente nell’ambito della sicurezza informatica e dell’analisi di malware, dove spesso il codice sorgente originale non è disponibile. Questa attività, nota come Reverse Engineering, consente di comprendere il comportamento di un’applicazione, identificando eventuali vulnerabilità, minacce o comportamenti anomali. Questo progetto ha l’obiettivo di sviluppare un’applicazione che faciliti l’analisi manuale di programmi C++ compilati, permettendo di riconoscere oggetti e, possibilmente, metodi appartenenti alle classi standard di libreria più diffuse come std::vector, std::map e std::list. La realizzazione del progetto è prevista in due fasi principali. Inizialmente, verranno individuate caratteristiche rilevanti nel codice delle classi considerate, come pattern di accesso alla memoria o sequenze di chiamate di funzioni. Tali caratteristiche saranno aggregate in fingerprint specifiche, eventualmente multiple per ciascuna classe, utili per riconoscere automaticamente queste stesse classi all’interno di altre applicazioni compilate. Nella seconda fase, si studierà un’euristica efficace per sfruttare al meglio le informazioni contenute nelle fingerprint. Lo scopo principale sarà identificare con precisione gli oggetti delle librerie standard, determinando sia i punti di allocazione sia la classe specifica di appartenenza.

Scroll to Top