L'interprète, le JIT et la licorne - CEA - Commissariat à l’énergie atomique et aux énergies alternatives Accéder directement au contenu
Communication Dans Un Congrès Année : 2024

L'interprète, le JIT et la licorne

Résumé

L'exécution symbolique, une méthode populaire d'analyse de programmes, a du mal à passer à l'échelle sur de gros codes. Outre les traditionnels problèmes d'explosion de chemins et de résolution des prédicats logiques, d'aucuns se plaignent du coût d'interprétation du langage cible et se tournent par conséquent vers la compilation, qu'elle soit statique ou à la volée, pour améliorer les performances. Sceptiques mais non moins curieux, nous saisissons ce prétexte pour rajouter un peu de compilation à la volée dans le moteur d'exécution symbolique de la plateforme BINSEC, écrite en OCaml. Permettez-nous ainsi d'introduire JITPSI, une petite bibliothèque qui tire son inspiration de MetaOCaml et ocaml-jit. JITPSI concourt à compiler harmonieusement en x86-64, directement depuis OCaml, une séquence d'appels de fonctions. Nous utilisons JITPSI pour transformer à la volée l'interpréteur d'arbres syntaxiques abstraits de BINSEC en sous-programmes filetés (threaded code). Notre intention première est ici d'améliorer la résolution du défi de rétro-ingénierie licorne issu du France CyberSecurity Challenge 2022 proposé par l'ANSSI ; soit une accélération d'environ 40%.
Fichier principal
Vignette du fichier
jfla2024-paper-96.pdf (553.54 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04407147 , version 1 (22-01-2024)

Identifiants

  • HAL Id : hal-04407147 , version 1

Citer

Frédéric Recoules, Sébastien Bardin. L'interprète, le JIT et la licorne. 35es Journées Francophones des Langages Applicatifs (JFLA 2024), Jan 2024, Saint-Jacut-de-la-Mer, France. ⟨hal-04407147⟩
40 Consultations
99 Téléchargements

Partager

Gmail Facebook X LinkedIn More