Proceedings of the 10th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools 2011
DOI: 10.1145/2024569.2024571
|View full text |Cite
|
Sign up to set email alerts
|

Labeling library functions in stripped binaries

Abstract: Binary code presents unique analysis challenges, particularly when debugging information has been stripped from the executable. Among the valuable information lost in stripping are the identities of standard library functions linked into the executable; knowing the identities of such functions can help to optimize automated analysis and is instrumental in understanding program behavior. Library fingerprinting attempts to restore the names of library functions in stripped binaries, using signatures extracted fr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
6
3
1

Relationship

1
9

Authors

Journals

citations
Cited by 43 publications
(19 citation statements)
references
References 14 publications
0
19
0
Order By: Relevance
“…Previous work has shown that with only 20 executable binary samples per compiler as training data, it is possible to use a linear Conditional Random Field (CRF) to determine the compiler used with accuracy of 93% on average [41], [27]. Other work has shown that by using pattern matching, library functions can be identified with precision and recall between 0.98 and 1.00 based on each one of three criteria; compiler version, library version, and linux distribution [23].…”
Section: Stylisticmentioning
confidence: 99%
“…Previous work has shown that with only 20 executable binary samples per compiler as training data, it is possible to use a linear Conditional Random Field (CRF) to determine the compiler used with accuracy of 93% on average [41], [27]. Other work has shown that by using pattern matching, library functions can be identified with precision and recall between 0.98 and 1.00 based on each one of three criteria; compiler version, library version, and linux distribution [23].…”
Section: Stylisticmentioning
confidence: 99%
“…IDA Pro uses a technique called FLIRT, which uses pattern matching to detect and identify the presence of compiler-generated patterns and certain library functions, and can be extended with user-provided databases [8]. On Linux, system library functions can be identified by the system call numbers they embed to interface with the kernel, and then one can iteratively try to identify the callers of the already identified functions [9]. Machine learning can be used to automatically learn patterns required to identify library functions [10].…”
Section: Related Workmentioning
confidence: 99%
“…(Recovering aggregation relationships is possible future work -see §6.) Jacobson et al describe the idea of using semantic descriptors to fingerprint system-call wrapper functions and label them meaningfully in stripped binaries [15]. Bardin et al use Value Analysis with Precision Requirements (VAPR) for recovering a Control Flow Graph (CFG) from an unstructured program [3].…”
Section: Related Workmentioning
confidence: 99%