skip to main content
10.1145/2910925.2910929acmotherconferencesArticle/Chapter ViewAbstractPublication PageswccceConference Proceedingsconference-collections
research-article

Code Protection: When Abstinence is not an Option

Published: 06 May 2016 Publication History

Abstract

Compiled code, including compiled Python code, can be supplied to students in ways that make it usable, yet protected. Protection may be applied to limit code to running in a certain place, make reverse engineering challenging, and even present difficulties running automated analysis tools. I present my experience with three code protection methods that I have used in my classes.

References

[1]
J. Aycock. ANN: (fledgling) bytecode-to-source translator. Usenet post on comp.lang.python, 17 November 1999.
[2]
J. Aycock. Teaching spam and spyware at the University of C@1g4ry. In 3rd Conference on Email and Anti-Spam, pages 137--141, 2006.
[3]
J. Aycock and K. Barker. Creating a secure computer virus laboratory. In 13th Annual EICAR Conference, 2004.
[4]
J. Aycock and K. Barker. Viruses 101. In 36th SIGCSE Technical Symposium on Computer Science Education, pages 152--156, 2005.
[5]
R. Bernstein. python-uncompyle6/HISTORY.md. https://github.com/rocky/python-uncompyle6/blob/master/HISTORY.md, 5 January 2016.
[6]
P. Clough. Plagiarism in natural and programming languages: an overview of current tools and technologies. Research Memoranda CS-00-05, Department of Computer Science, University of Sheffield, 2000.
[7]
C. Collberg and J. Nagra. Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection. Addison Wesley, 2010.
[8]
H. Crawford and J. Aycock. Kwyjibo: Automatic domain name generation. Software: Practice and Experience, 38(14):1561--1567, 2008.
[9]
D. de Castro and J. Aycock. Sample creation not considered harmful. In 1st Workshop on Anti-malware Testing Research, pages 35--40, 2013.
[10]
M. El-Ramly. Experience in teaching a software reengineering course. In 28th International Conference on Software Engineering, pages 699--702, 2006.
[11]
Linux man-pages project. proc -- process information pseudo-filesystem. http://man7.org/linux/man-pages/man5/proc.5.html. Release 4.04.
[12]
Linux man-pages project. ptrace -- process trace. http://man7.org/linux/man-pages/man2/ptrace.2.html. Release 4.04.
[13]
Linux man-pages project. tmpfile -- create a temporary file. http://man7.org/linux/man-pages/man3/tmpfile.3.html. Release 4.04.
[14]
R. McCartney, S. S. Gokhale, and T. Smith. Evaluating an early software engineering course with projects and tools from open source software. In 9th Annual Conference on International Computing Education Research, pages 5--10, 2012.
[15]
K. A. Roundy and B. P. Miller. Binary-code obfuscations in prevalent packer tools. ACM Computing Surveys, 46(1), 2013. Article 4.
[16]
S. Schleimer, D. S. Wilerson, and A. Aiken. Winnowing: Local algorithms for document fingerprinting. In 2003 ACM SIGMOD International Conference on Management of Data, pages 76--85, 2003.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
WCCCE '16: Proceedings of the 21st Western Canadian Conference on Computing Education
May 2016
137 pages
ISBN:9781450343558
DOI:10.1145/2910925
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Assignments
  2. academic misconduct
  3. code obfuscation
  4. decompilation
  5. disassembly

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

WCCCE '16

Acceptance Rates

WCCCE '16 Paper Acceptance Rate 26 of 35 submissions, 74%;
Overall Acceptance Rate 78 of 117 submissions, 67%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 113
    Total Downloads
  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media