ACM Home Page
Please provide us with feedback. Feedback
Dispersing proprietary applications as benchmarks through code mutation
Full text FlvFlv (23:00),  Mp3Mp3 (9.88 MB),  PdfPdf (621 KB)
Source
Architectural Support for Programming Languages and Operating Systems archive
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems table of contents
Seattle, WA, USA
SESSION: OS table of contents
Pages 201-210  
Year of Publication: 2008
ISBN:978-1-59593-958-6
Also published in ...
Authors
Luk Van Ertvelde  Ghent University, Ghent, Belgium
Lieven Eeckhout  Ghent University, Ghent, Belgium
Sponsors
ACM: Association for Computing Machinery
SIGARCH: ACM Special Interest Group on Computer Architecture
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 98,   Citation Count: 0
Additional Information:

appendices and supplements   abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1346281.1346307
What is a DOI?

APPENDICES and SUPPLEMENTS
Supplemental material for Dispersing proprietary applications as benchmarks through code mutation


ABSTRACT

Industry vendors hesitate to disseminate proprietary applications to academia and third party vendors. By consequence, the benchmarking process is typically driven by standardized, open-source benchmarks which may be very different from and likely not representative of the real-life applications of interest.

This paper proposes code mutation, a novel technique that mutates a proprietary application to complicate reverse engineering so that it can be distributed as a benchmark. The benchmark mutant then serves as a proxy for the proprietary application. The key idea in the proposed code mutation approach is to preserve the proprietary application's dynamic memory access and/or control flow behavior in the benchmark mutant while mutating the rest of the application code. To this end, we compute program slices for memory access operations and/or control flow operationstrimmed through constant value and branch profiles; and subsequently mutate the instructions not appearing in these slices through binary rewriting.

Our experimental results using SPEC CPU2000 and MiBench benchmarks show that code mutation is a promising technique that mutates up to 90% of the static binary, up to 50% of the dynamically executed instructions, and up to 35% of the at run time exposed inter-operation data dependencies. The performance characteristics of the mutant are very similar to those of the proprietary application across a wide range of microarchitectures and hardware implementations.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
 
4
C. Collberg, C. Thomborson, and D. Low. A taxonomy of obfuscating transformations. Technical Report 148, The University of Auckland, July 1997.
 
5
 
6
H. J. Curnow and B. A. Wichmann. A synthetic benchmark. The Computer Journal, 19(1):43--49, 1976.
7
8
9
 
10
 
11
12
 
13
C. Hsieh and M. Pedram. Micro-processor power estimation using profile-driven program synthesis. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 17(11):1080--1089, Nov. 1998.
 
14
 
15
A. M. Joshi, L. Eeckhout, R. H. Bell Jr., and L. K. John. Performance cloning: A technique for disseminating proprietary applications as benchmarks. In Proceedings of the IEEE International Symposium on Workload Characterization (IISWC), pages 105--115, Oct. 2006.
16
17
18
19
 
20
21
 
22
23
 
24
 
25
A. Srivastava and A. Eustace. ATOM: A system for building customized program analysis tools. Technical Report 94/2, Western Research Lab, Compaq, Mar. 1994.
 
26
F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121--189, 1995.
27
 
28
M. Weiser. Program slicing. IEEE Transaction on Software Engineering, 10(4):352--357, July 1984.
29
 
30
M. T. Yourst. PTLsim: A cycle accurate full system x86-64 microarchitectural simulator. In Proceedings of the International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 23--34, Apr. 2007.
31
32

Collaborative Colleagues:
Luk Van Ertvelde: colleagues
Lieven Eeckhout: colleagues