Miasm
Framework de reverse engineering
Fabrice Desclaux
Commissariat à l’énergie atomique et aux énergies alternatives
Direction des applications militaires
SSTIC 2012
8 juin 2012
.
Qu’est ce que Miasm ?
.
.
..
.
.
.
.
Outil développé pour l’aide au reverse engineering, GPL, en Python.
.
.
.
Smiasm
.
.
Miasm
.
Miasm IL
.
Symbolic
execution
.
C Backend
.
Emulator
.
Simplification engine
.
...
.
Asm/Disasm
.
x86/ppc/arm/java
.
.
Elfesteem
.
Parse/Build
.
pe/elf/class
.
.
Grandalf
.
Frida
CEA/DAM/DIF — Miasm SSTIC 2012 2 / 40
Elfesteem (avec Philippe Biondi)
.
Permet les manipulations
.
.
..
.
.
.
.
de sections
de ressources/attributs/répertoires
des imports/exports/
par adressage virtuel/rva/offset
parsing et reconstruction des binaires
CEA/DAM/DIF — Miasm SSTIC 2012 3 / 40
Manipulation de binaire
.
Modification des ressources de la calculatrice Windows
.
.
..
.
.
.
.
import sys
from elfesteem.pe_init import PE
import struct
e = PE(open(sys.argv[1], ’rb’).read())
name = ”\x00”.join(”cocolasticot”) +”\x00”
for iin xrange(2):
menu = e.DirRes.resdesc.resentries[1].subdir.resentries[i].subdir
off = 6 + struct.unpack(’H’, menu.resentries[0].data.s[4:6])[0]
end = menu.resentries[0].data.s[off:]
menu.resentries[0].data.s = menu.resentries[0].data.s[:4]
menu.resentries[0].data.s += struct.pack(’H’, len(name))
menu.resentries[0].data.s += name + end
open(’calc_menu_mod.exe’, ’wb’).write(str(e))
CEA/DAM/DIF — Miasm SSTIC 2012 4 / 40
Manipulation de binaire
CEA/DAM/DIF — Miasm SSTIC 2012 5 / 40
1 / 40 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !