Refinement-Based CFG Reconstruction from Unstructured Programs
S´ ebastien Bardin, Philippe Herrmann, Franck V´ edrine CEA LIST (Paris, France)
Bardin, S., Herrmann, P., V´ edrine, F. 1/ 49
Refinement-Based CFG Reconstruction from Unstructured Programs S - - PowerPoint PPT Presentation
Refinement-Based CFG Reconstruction from Unstructured Programs S ebastien Bardin, Philippe Herrmann, Franck V edrine CEA LIST (Paris, France) Bardin, S., Herrmann, P., V edrine, F. 1/ 49 Binary code analysis Bardin, S., Herrmann,
Bardin, S., Herrmann, P., V´ edrine, F. 1/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 2/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 3/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 4/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 5/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 6/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 7/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 8/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 9/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 10/ 49
◮ ANSI-C forbids most of the nasty behaviours ◮ most analyzers consider a very nice subset of C
◮ strong static typing for primitive types ◮ clean functional abstraction ◮ very restricted dynamic jumps
◮ no hidden instruction, sets of dynamic jumps known in
Bardin, S., Herrmann, P., V´ edrine, F. 11/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 12/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 13/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 14/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 15/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 16/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 16/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 16/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 16/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 17/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 18/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 19/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 20/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 21/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 22/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 23/ 49
◮ dedicated propagation rules : ⊤init and ⊤... stay in place ◮ pinpoint “initial sources of precision loss” (ispl) ◮ give clues for refinement (where and how much)
Bardin, S., Herrmann, P., V´ edrine, F. 24/ 49
◮ if no refinement then fail (KO !) ◮ else restart with refined domain (goto 2) Bardin, S., Herrmann, P., V´ edrine, F. 25/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 26/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 27/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 28/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 29/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 29/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 29/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 30/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 31/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 32/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 32/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 32/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 32/ 49
skip proof Bardin, S., Herrmann, P., V´ edrine, F. 33/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 34/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 35/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 36/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 37/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 38/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 39/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 40/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 40/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 40/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 40/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 41/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 42/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 43/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 44/ 49
◮ already sufficient for some (safety-critical) applications ◮ however procedure inlining may be an issue ◮ rooms for improvement Bardin, S., Herrmann, P., V´ edrine, F. 45/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 46/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 47/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 48/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49
Bardin, S., Herrmann, P., V´ edrine, F. 49/ 49