Star 0

Abstract

Large binaries produce giant call graphs and dividing up functionality in an automated way is difficult. This talk introduces the CodeCut problem: given the call graph of a large binary, segment the graph to recover the original object file boundaries. It also introduces local function affinity (LFA), a measurement representing the directionality of a function's relationship to nearby functions. It applies LFA to solve the CodeCut problem. It shows some useful applications, including automated module-to-module call graphs (extracting software architecture), and automated section naming based on common strings. Finally we'll discuss success metrics for CodeCut solutions.

Slides