D´ esobfuscation automatique de binaires
Et autres idyles bucoliques. . .
Alexandre Gazet
Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com
Yoann Guillot
Sogeti / ESEC R&D yoann.guillot(at)sogeti.com
SSTIC 2009 Optimiser pour r egner La compilation dans tous ses - - PowerPoint PPT Presentation
D esobfuscation automatique de binaires Et autres idyles bucoliques. . . Alexandre Gazet Yoann Guillot Sogeti / ESEC R&D Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com yoann.guillot(at)sogeti.com SSTIC 2009 Optimiser pour r
Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com
Sogeti / ESEC R&D yoann.guillot(at)sogeti.com
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
1
2
D´ esobfuscation automatique de binaires 2/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 3/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 4/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 5/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 6/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 7/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 8/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 9/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
l od s d xor eax , ebx add eax , 859 f c f a e h sub ebx , eax push eax
dword p t r [ esp ] := ( dword p t r [ e s i ]ˆ ebx )+859 f c f a e h eax := ( dword p t r [ e s i ]ˆ ebx )+859 f c f a e h ebx := ebx+−(dword p t r [ e s i ]ˆ ebx )−859 f c f a e h e s i := e s i +4 esp := esp −4
D´ esobfuscation automatique de binaires 10/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
eme projection de Futamura
D´ esobfuscation automatique de binaires 11/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
dword p t r [ esp ] := 0 c0000001h eax := 0 c0000001h ebx := 4000 fd8ch e s i := 100167 c2h esp := esp −4
D´ esobfuscation automatique de binaires 12/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 13/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 14/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
Ia32 : : Reg . i t o s [ 3 2 ] . concat ( % w[ v i r t e a x ] ) Ia32 : : Reg . i t o s [ 1 6 ] . concat ( % w[ v i r t a x ] ) Ia32 : : Reg . i t o s [ 8 ] . concat ( % w[ v i r t a l ] ) Ia32 : : Reg . s t o i . c l e a r Ia32 : : Reg . i t o s . each { | sz , hh | hh . e a c h w i t h i n d e x { | r , i | Ia32 : : Reg . s t o i [ r ] = [ i , sz ] } } Ia32 : : Reg : : Sym . r e p l a c e Ia32 : : Reg . i t o s [ 3 2 ] . map { | s | s . to sym }
D´ esobfuscation automatique de binaires 15/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 16/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 17/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 18/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 19/26
La compilation dans tous ses ´ etats D´ ecompilation Optimiser pour r´ egner Les limites de la virtualisation Conclusion(s)
D´ esobfuscation automatique de binaires 20/26
La compilation dans tous ses ´ etats D´ ecompilation
1
2
D´ esobfuscation automatique de binaires 21/26
La compilation dans tous ses ´ etats D´ ecompilation
D´ esobfuscation automatique de binaires 22/26
La compilation dans tous ses ´ etats D´ ecompilation
D´ esobfuscation automatique de binaires 23/26
La compilation dans tous ses ´ etats D´ ecompilation
D´ esobfuscation automatique de binaires 24/26
La compilation dans tous ses ´ etats D´ ecompilation
D´ esobfuscation automatique de binaires 25/26
La compilation dans tous ses ´ etats D´ ecompilation
D´ esobfuscation automatique de binaires 26/26