Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/2820282.2820308acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

From obfuscation to comprehension

Published: 16 May 2015 Publication History

Abstract

Code obfuscation techniques are widely used in industry to increase protection of source code and intellectual property. The idea is that even if attackers gain hold of source code, it will be hard for them to understand what it does and how. Thus obfuscation techniques are specifically targeted at human comprehension of code. We suggest that the ideas and experience embedded in obfuscations can be used to learn about comprehension. In particular, we survey known obfuscation techniques and use them in an attempt to derive metrics for code (in)comprehensibility. This leads to emphasis on issues such as identifier naming, which are typically left on the sidelines in discussions of code comprehension, and motivates increased efforts to measure their effect.

References

[1]
F. P. Brooks, Jr., "No silver bullet: Essence and accidents of software engineering". Computer 20(4), pp. 10--19, Apr 1987.
[2]
R. P. L. Buse and W. R. Weimer, "A metric for software readability". In Intl. Symp. Softw. Testing & Analysis, pp. 121--130, Jul 2008.
[3]
M. Ceccato, A. Capiluppi, P. Falcarin, and C. Boldyreff, "A large study on the effect of code obfuscation on the quality of Java code". Empirical Softw. Eng. 2015.
[4]
M. Ceccato, M. Di Penta, P. Falcarin, F. Ricca, M. Torchiano, and P. Tonella, "A family of experiments to assess the effectiveness and efficiency of source code obfuscation techniques". Empirical Softw. Eng. 19(4), pp. 1040--1074, 2014.
[5]
J.-T. Chan and W. Yang, "Advanced obfuscation techniques for Java bytecode". J. Syst. Softw. 71(1), pp. 1--10, 2004.
[6]
M. Christodorescu and S. Jha, "Static analysis of executables to detect malicious patterns". In 12th USENIX Security Symp., pp. 169--186, 2003.
[7]
C. Collberg, C. Thomborson, and D. Low, A taxonomy of obfuscating transformations. Tech. rep., Dept. Computer Science, University of Auckland, New Zealand, 1997.
[8]
F. Deissenboeck and M. Pizka, "Concise and consistent naming". Softw. Quality J. 14(3), pp. 261--282, 2006.
[9]
E. W. Dijkstra, "Go To statement considered harmful". Comm. ACM 11(3), pp. 147--148, Mar 1968.
[10]
S. Henry and D. Kafura, "Software structure metrics based on information flow". IEEE Trans. Softw. Eng. SE-7(5), pp. 510--518, Sep 1981.
[11]
J. Knoop, O. Rüthing, and B. Steffen, "Partial dead code elimination". In Prog. Lang. Design & Implementation, pp. 147--158, ACM, 1994.
[12]
D. Low, "Java control flow obfuscation". MSc Thesis, University of Auckland, Jun 1998.
[13]
T. McCabe, "A complexity measure". IEEE Trans. Softw. Eng. SE-2(4), pp. 308--320, Dec 1976.
[14]
F. Nielson, H. R. Nielson, and C. Hankin, Principles of Program Analysis. Springer, 1999.
[15]
D. Posnett, A. Hindle, and P. Devanbu, "A simpler model of software readability". In 8th Working Conf. Mining Softw. Repositories, pp. 73--82, May 2011.
[16]
SonarSource, "SonarQube". 2013. URL http://www.sonarqube.org/
[17]
M. Sosonkin, G. Naumovich, and N. Memon, "Obfuscation of design intent in object-oriented applications". In Proc. 3rd ACM workshop on Digital Rights Mgmt., pp. 142--153, 2003.

Cited By

View all
  • (2017)Understanding misunderstandings in source codeProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106264(129-139)Online publication date: 21-Aug-2017

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPC '15: Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension
May 2015
325 pages

Sponsors

Publisher

IEEE Press

Publication History

Published: 16 May 2015

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Understanding misunderstandings in source codeProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106264(129-139)Online publication date: 21-Aug-2017

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media