Locating, extracting, and reusing the implementation of a feature within an existing binary program is challenging. This paper proposes a novel algorithm to identify modular functions corresponding to such features and to provide usable interfaces for the extracted functions. We provide a way to represent a desired feature with two executions that both execute the feature but with different inputs. Instead of reverse engineering the interface of a function, we wrap the existing interface and provide a simpler and more intuitive interface for the function through concretization and redirection. Experiments show that our technique can be applied to extract varied features from several real world applications including a malicious application.
@inproceedings{DBLP:conf/icse/KimSZXA14,
author = {Dohyeong Kim and
William N. Sumner and
Xiangyu Zhang and
Dongyan Xu and
Hira Agrawal},
title = {Reuse-oriented reverse engineering of functional components from x86
binaries},
booktitle = {{ICSE}},
pages = {1128--1139},
year = {2014},
}