@misc{Raymond,
  author = {Eric Raymond},
  title = {Email correspondence: If {C}isco ignored {K}erckhoffs' Law, users will pay the price},
  year = {2004},
  month = may,
  howpublished = {Available on: \url{http://lwn.net/Articles/85958/}},
}

@inproceedings{GuRelative06,
 author = {Dayong Gu and Clark Verbrugge and Etienne M. Gagnon},
 title = {Relative factors in performance analysis of {J}ava virtual machines},
 booktitle = {VEE '06: Proceedings of the 2nd international conference on Virtual execution environments},
 year = {2006},
 isbn = {1-59593-332-6},
 pages = {111--121},
 location = {Ottawa, Ontario, Canada},
 doi = {http://doi.acm.org/10.1145/1134760.1134776},
 publisher = {ACM Press}
}

@inproceedings{GuCode04,
 author = {Dayong Gu and Clark Verbrugge and Etienne Gagnon},
 title = {Code layout as a source of noise in {JVM} performance},
 booktitle = {Component And Middleware Performance workshop, OOPSLA 2004},
 year = {2004},
 location = {Vancouver, BC, Canada}
}

@InProceedings{MertenHardware99,
  author =	"M. Merten and A. Trick and C. George and J. Gyllenhaal
		 and W. Hwu",
  title =	"A Hardware-Driven Profiling Scheme for Identifying
		 Program Hot Spots to Support Runtime Optimization",
  pages =	"136--149",
  ISBN = 	"0-7695-0170-2",
  editor =	"Doug DeGroot",
  booktitle =	"Proceedings of the 26th Annual International Symposium
		 on Computer Architecture ({ISCA}'99)",
  month =	may # "~1--5",
  series =	"Computer Architecture News",
  volume =	"27, 2",
  publisher =	"ACM Press",
  address =	"New York, N.Y.",
  year = 	"1999",
}

@misc{Madousoftware05,
  author = "M. Madou and B. Anckaert and P. Moseley and S. Debray and B. De Sutter
    and K. De Bosschere",
  title = "Software protection through dynamic code mutation",
  text = "M. Madou, B. Anckaert, P. Moseley, S. Debray, B. De Sutter, and K. De Bosschere.
    Software protection through dynamic code mutation. In Information Security
    Applications, pages 371--385, 2005.",
  year = "2005",
  url = "citeseer.ist.psu.edu/article/madou05software.html",
}

@article{Kerckhoff1,
 author = {Auguste Kerckhoffs},
 title = {La Cryptographie militaire},
 journal = {Journal des sceiences militaires},
 volume = {IX},
 pages = {5--38},
 year = {1883},
 month = jan,
}

@article{Kerckhoff2,
 author = {Auguste Kerckhoffs},
 title = {La Cryptographie militaire},
 journal = {Journal des sceiences militaires},
 volume = {IX},
 pages = {161--191},
 year = {1883},
 month = feb,
}

@book{cplusplus,
	author = {Stroustrup, Bjarne },
	publisher = {Addison-Wesley Longman Publishing Co., Inc.},
	title = {The {C}++ Programming Language, Third Edition},
	year = {1997}
}

@book{smalltalk,
  author    = {Adele Goldberg and
               David Robson},
  title     = {Smalltalk-80: The Language and Its Implementation.},
  publisher = {Addison-Wesley},
  year      = {1983},
}

@TECHREPORT{CohenDefensive97,
  author = {R. Cohen},
  title = {The defensive {J}ava virtual machine speciﬁcation},
  institution = {Computational Logic Inc.},
  year = {1997},
}

@inproceedings{VallSoot99,
    author = "Raja Vall\'ee-Rai and Laurie Hendren and Vijay Sundaresan and Patrick Lam and Etienne Gagnon and Phong Co",
    title = "Soot - a {J}ava Optimization Framework",
    booktitle = "Proceedings of CASCON 1999",
    pages = "125--135",
    year = "1999",
    url = "www.sable.mcgill.ca/publications"
}

@inproceedings{GagnonEfficient00,
    author = "Etienne Gagnon and Laurie J. Hendren and Guillaume Marceau",
    title = "Efficient Inference of Static Types for {J}ava Bytecode",
    booktitle = "Static Analysis Symposium",
    pages = "199--219",
    year = "2000",
    url = "www.sable.mcgill.ca/publications"
}

@ARTICLE{cnnbomber,
 author = {staff and wire reports},
 title = {How {S}oviets copied {A}merica's best bomber during {W}{W}{I}{I}},
 journal = {CNN.com},
 year = {2001},
 month = jan,
}

@article{ChanAdvancedObfuscation04,
 author = {Jien-Tsai Chan and Wuu Yang},
 title = {Advanced obfuscation techniques for {J}ava bytecode},
 journal = {J. Syst. Softw.},
 volume = {71},
 number = {1-2},
 year = {2004},
 issn = {0164-1212},
 pages = {1--10},
 doi = {http://dx.doi.org/10.1016/S0164-1212(02)00066-3},
 publisher = {Elsevier Science Inc.},
 address = {New York, NY, USA},
 }

@misc{uscode,
	title = {Title 17, {U}nited {S}tates {C}ode, Copyrights},
  howpublished = {Available on: \url{http://www.copyright.gov/title17/}},
  key = {United States Code}
}

@misc{tcg,
  title = {Trusted Computing Group Frequently Asked Questions},
  author = {Trust Computing Group},
  howpublished = {Available on: \url{https://www.trustedcomputinggroup.org/faq/CompleteFAQ/}},
}

@Article{Coglio04,
  title =	"Simple verification technique for complex {J}ava
		 bytecode subroutines",
  author =	"Alessandro Coglio",
  journal =	"Concurrency - Practice and Experience",
  year = 	"2004",
  number =	"7",
  volume =	"16",
  bibdate =	"2005-06-29",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/concurrency/concurrency16.html#Coglio04",
  pages =	"647--670",
  URL =  	"http://dx.doi.org/10.1002/cpe.798",
}

@InProceedings{kalibera05,
  publisher =	"SCS",
  year = 	"2005",
  month = jul # "~26--29,",
  pages =	"484--490",
  author =	"Tomáš Kalibera and Lubomir Bulej and Petr Tuma",
  type = 	"Article in Proceedings",
  title =	"Benchmark Precision and Random Initial State",
  booktitle =	"Proceedings of the 2005 International Symposium on
		 Performance Evaluation of Computer and
		 Telecommunication Systems (SPECTS 2005), San Diego, CA,
		 USA, July 26-29, 2004.",
}

@article{CohenOperating93,
 author = {Frederick B. Cohen},
 title = {Operating system protection through program evolution},
 journal = {Comput. Secur.},
 volume = {12},
 number = {6},
 year = {1993},
 issn = {0167-4048},
 pages = {565--584},
 doi = {http://dx.doi.org/10.1016/0167-4048(93)90054-9},
 publisher = {Elsevier Advanced Technology Publications},
 address = {Oxford, UK, UK},
}

@misc{HeffnerObfuscation04,
  author = "Kelly Heffner and Christian Collberg",
  title = "The Obfuscation Executive",
  url = "citeseer.ist.psu.edu/heffner04obfuscation.html" 
}


@article{HohlTimeLimited98,
    author = "Fritz Hohl",
    title = "Time Limited Blackbox Security: Protecting Mobile Agents From Malicious Hosts",
    journal = "Lecture Notes in Computer Science",
    volume = "1419",
    pages = "92--??",
    year = "1998",
    url = "citeseer.ist.psu.edu/hohl98time.html" 
}


@misc{AppelDeobfuscation02,
  author = "Andrew W. Appel",
  title = "Deobfuscation is in {N}{P}",
  institution = "Princeton University",
  month = aug # "~21",
  year = "2002",
  url = "citeseer.ist.psu.edu/553532.html"
}


@inproceedings{ArboitMethod02,
  author = "Genevi\`eve Arboit",
  title = "A Method for Watermarking {J}ava Programs via Opaque Predicates",
  booktitle = "The Fifth International Conference on Electronic Commerce Research (ICECR-5) ",
  year = "2002",
  url = "citeseer.ist.psu.edu/arboit02method.html" 
}


@inproceedings{CollbergManufacturing98,
    author = "Christian Collberg and Clark Thomborson and Douglas Low",
    title = "Manufacturing Cheap, Resilient, and Stealthy Opaque Constructs",
    booktitle = "Principles of Programming Languages 1998, {POPL}'98",
    pages = "184--196",
    year = "1998",
    url = "citeseer.ist.psu.edu/collberg98manufacturing.html" 
}

@inproceedings{MajumdarManufacturing06,
  author = {Anirban Majumdar and Clark Thomborson},
  title = {Manufacturing Opaque Predicates in Distributed Systems for Code Obfuscation},
  booktitle = {Twenty-Ninth Australasian Computer Science Conference (ACSC 2006)},
  editor = {Estivill-Castro, Vladimir and Dobbie, Gillian},
  series= {CRPIT},
  address= {Hobart, Australia},
  publisher = {ACS},
  volume = {48},
  pages = {187--196},
  year = {2006} 
}

@inproceedings{CollbergWatermarking02,
  author = "Christian S. Collberg and Clark Thomborson",
  title = "Watermarking, Tamper-Proofing, and Obfuscation - Tools for Software Protection",
  booktitle = "{IEEE} Transactions on Software Engineering",
  volume = "28",
  month = aug,
  year = "2002",
  pages = "735-746",
  url = "citeseer.ist.psu.edu/collberg02watermarking.html" 
}


@inproceedings{CollbergBreaking98,
 author = {Christian Collberg and Clark Thomborson and Douglas Low},
 title = {Breaking Abstractions and Unstructuring Data Structures},
 booktitle = {ICCL '98: Proceedings of the 1998 International Conference on Computer Languages},
 year = {1998},
 isbn = {0-8186-8454-2},
 pages = {28},
 publisher = {IEEE Computer Society},
 address = {Washington, DC, USA},
}


@misc{CollbergTaxonomy97,
  author =	 {Christian Collberg and Clark Thomborson and Douglas Low},
  title =	 {A taxonomy of obfuscating transformations},
  howpublished = {Technical Report 148, Department of Computer Science, University of Auckland},
  month =	 jul,
  year =	 1997,
  url = {citeseer.ist.psu.edu/collberg97taxonomy.html},
}


@misc{LinnObfusExcCode03,
  author = "C. Linn and S. Debray",
  title = "Obfuscation of Executable Code to Improve Resistance to Static Disassembly",
  text = "C. Linn and S. Debray. Obfuscation of Executable Code to Improve Resistance
    to Static Disassembly. In Proceedings of the 10th ACM Conference on Computer
    and Communications Security (CCS), pages 290--299, October 2003.",
  year = "2003",
  url = "citeseer.ist.psu.edu/linn03obfuscation.html" 
}


@article{BarakImpossibility01,
    author = "Boaz Barak and Oded Goldreich and Rusell Impagliazzo and Steven Rudich and Amit Sahai and Salil Vadhan and Ke Yang",
    title = "On the (Im)possibility of Obfuscating Programs",
    journal = "Lecture Notes in Computer Science",
    volume = "2139",
    pages = "1--??",
    year = "2001",
    url = "citeseer.ist.psu.edu/article/barak01impossibility.html" 
}

@InProceedings{PickettSoftware05,
  author = 	 {Christopher J. F. Pickett and Clark Verbrugge},
  title = 	 {Software Thread Level Speculation for the {J}ava
                 Language and Virtual Machine Environment},
  booktitle =    {Proceedings of the 18th International Workshop on
                 Languages and Compilers for Parallel Computing
                 {(LCPC'05)}},
  year = 	 {2005},
  month = 	 oct,
}

@InProceedings{ForrestBuilding97,
  title =	"Building Diverse Computer Systems",
  author =	"Stephanie Forrest and Anil Somayaji and David H.
		 Ackley",
  year = 	"1997",
  bibdate =	"2002-01-03",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/hotos/hotos97.html#ForrestSA97",
  booktitle =	"Workshop on Hot Topics in Operating Systems",
  pages =	"67--72",
}

@misc{LynnPositive04,
  author = "B. Lynn and M. Prabhakaran and A. Sahai",
  title = "Positive Results and Techniques for Obfuscation",
  text = "Benjamin Lynn, Manoj Prabhakaran, Amit Sahai, Positive Results and Techniques
    for Obfuscation , Proceedings of Eurocrypt 2004.",
  year = "2004",
  url = "citeseer.ist.psu.edu/lynn04positive.html" 
}


@misc{WroblewskiGeneral02,
  author = "G. Wroblewski",
  title = "General Method of Program Code Obfuscation",
  text = "Gregory Wroblewski, General Method of Program Code Obfuscation, PhD Dissertation,
    Wroclaw University of Technology, Institute of Engineering Cybernetics,
    2002, (under final revision)",
  year = "2002",
  url = "citeseer.ist.psu.edu/wroblewski02general.html" 
}


@inproceedings{GeControl05,
 author = {Jun Ge and Soma Chaudhuri and Akhilesh Tyagi},
 title = {Control flow based obfuscation},
 booktitle = {DRM '05: Proceedings of the 5th ACM workshop on Digital rights management},
 year = {2005},
 isbn = {1-59593-230-5},
 pages = {83--92},
 location = {Alexandria, VA, USA},
 doi = {http://doi.acm.org/10.1145/1102546.1102561},
 publisher = {ACM Press},
 address = {New York, NY, USA},
 }


@inproceedings{SakabeJavaObfuscation03,
  author    = {Yusuke Sakabe and
               Masakazu Soshi and
               Atsuko Miyaji},
  title     = {Java Obfuscation with a Theoretical Basis for Building Secure
               Mobile Agents.},
  booktitle = {Communications and Multimedia Security},
  year      = {2003},
  pages     = {89-103},
  ee        = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=2828{\&}spage=89},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}


@Book{Gosling00,
  author =	"James Gosling and Bill Joy and Guy Steele and Gilad
		 Bracha",
  title =	"The {Java} Language Specification, Second Edition",
  publisher =	"Addison Wesley",
  year = 	"2000",
  keywords =	"olit oopl java scglib",
  ISBN = 	"0-201-31008-2",
}

@inproceedings{Dava,
 author = {Nomair A. Naeem and Laurie Hendren},
 title = {Programmer-friendly Decompiled {Java}},
 booktitle = {Proceedings of the 14th IEEE International Conference on
              Program Comprhension},
 year = {2006},
 location = {Athens, Greece},
}

@Misc{SourceAgainURL,
  key = "SourceAgain",
  title = "{Source Again - A Java Decompiler}",
  howpublished = {Available on: \url{http://www.ahpah.com/}}
}

@Misc{MochaURL,
  key = "Mocha",
  title = "{Mocha, the Java Decompiler}",
  howpublished = {Available on: \url{http://www.brouhaha.com/~eric/computers/mocha.html}}
}

@Misc{KlassMasterURL,
  key = "KlassMaster",
  title = "{Zelix KlassMaster - The second generation Java Obfuscator}",
  howpublished = {Available on: \url{http://www.zelix.com/klassmaster}}
}

@Misc{JadURL,
  key = "Jad",
  title = "{Jad - the fast Java Decompiler}",
  howpublished = {Available on: \url{http://www.kpdus.com/jad.html}}
} 

@Misc{WingdisURL,
  key = "Wingdis",
  title = "{WingDis - A Java Decompiler}",
  howpublished = {Available on: \url{http://www.wingsoft.com/wingdis.html}}
} 

@inproceedings{SosonkinObfusOOD03,
 author = {Mikhail Sosonkin and Gleb Naumovich and Nasir Memon},
 title = {Obfuscation of design intent in object-oriented applications},
 booktitle = {DRM '03: Proceedings of the 3rd ACM workshop on Digital rights management},
 year = {2003},
 isbn = {1-58113-786-9},
 pages = {142--153},
 location = {Washington, DC, USA},
 doi = {http://doi.acm.org/10.1145/947380.947399},
 publisher = {ACM Press},
 address = {New York, NY, USA},
}


@misc{RudysEnforcing02,
  author = "A. Rudys and D. Wallach",
  title = "Enforcing Java Run-Time Properties Using Bytecode Rewriting",
  text = "A. Rudys and D.S. Wallach, Enforcing Java Run-Time Properties Using Bytecode
    Rewriting, In Proceedings of the International Symposium on Software Security.
    Tokyo, Japan, November 2002.",
  year = "2002",
  url = "citeseer.ist.psu.edu/rudys02enforcing.html" 
}


@article{ LeroyJava01,
    author = "Xavier Leroy",
    title = "Java Bytecode Verification: An Overview",
    journal = "Lecture Notes in Computer Science",
    volume = "2102",
    pages = "265+",
    year = "2001",
    url = "citeseer.ist.psu.edu/leroy01java.html" 
}


@techreport{WangSoftware00,
    author = "Chenxi Wang and Jonathan Hill and John Knight and Jack Davidson",
    title = "Software Tamper Resistance: Obstructing Static Analysis of Programs",
    institution = "University of Virginia",
    number = "CS-2000-12",
    month = dec,
    year = "2000",
    url = "citeseer.ist.psu.edu/wang00software.html" 
}


@techreport{DeanWholeprogram96,
    author = "J. Dean",
    title = "Whole-Program Optimization of Object-Oriented Languages",
    number = "TR-96-11-05",
    year = "1996",
    url = "citeseer.ist.psu.edu/article/dean96wholeprogram.html" 
}


@article{TipSurvey95,
    author = "F. Tip",
    title = "A survey of program slicing techniques",
    journal = "Journal of programming languages",
    volume = "3",
    pages = "121--189",
    year = "1995",
    url = "citeseer.ist.psu.edu/tip95survey.html" 
}


@article{ChidamberMetrics94,
 author = {S. R. Chidamber and C. F. Kemerer},
 title = {A Metrics Suite for Object Oriented Design},
 journal = {IEEE Trans. Softw. Eng.},
 volume = {20},
 number = {6},
 year = {1994},
 issn = {0098-5589},
 pages = {476--493},
 doi = {http://dx.doi.org/10.1109/32.295895},
 publisher = {IEEE Press},
 address = {Piscataway, NJ, USA},
}


@article{MunsonMeasurement93,
 author = {John C. Munson and Taghi M. Khoshgoftaar},
 title = {Measurement of data structure complexity},
 journal = {J. Syst. Softw.},
 volume = {20},
 number = {3},
 year = {1993},
 issn = {0164-1212},
 pages = {217--225},
 doi = {http://dx.doi.org/10.1016/0164-1212(93)90065-6},
 publisher = {Elsevier Science Inc.},
 address = {New York, NY, USA},
 }


@article{HenrySoftware81,
   author = {Henry,S and Kafura,K},
   year = {1981},
   title = {Software Structure Metrics based on Information Flow},
   journal = {IEEE Transactions on Software Engineering},
   volume = {7(5)},
   pages = {510-518}
}

@article{BenanderEmpirical90,
 author = {B. A. Benander and N. Gorla and A. C. Benander},
 title = {An empirical study of the use of the GOTO statement},
 journal = {J. Syst. Softw.},
 volume = {11},
 number = {3},
 year = {1990},
 issn = {0164-1212},
 pages = {217--223},
 doi = {http://dx.doi.org/10.1016/0164-1212(90)90088-4},
 publisher = {Elsevier Science Inc.},
 address = {New York, NY, USA},
}

@inproceedings{BurdyJava06,
  author    = {Lilian Burdy and
               Mariela Pavlova},
  title     = {Java bytecode specification and verification.},
  booktitle = {SAC},
  year      = {2006},
  pages     = {1835-1839},
  ee        = {http://doi.acm.org/10.1145/1141277.1141708},
  crossref  = {DBLP:conf/sac/2006},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@article{ColemanMetrics94,
author = {Don Coleman and Dan Ash and Bruce Lowther and Paul Oman},
title = {Using Metrics to Evaluate Software System Maintainability},
journal = {Computer},
volume = {27},
number = {8},
year = {1994},
issn = {0018-9162},
pages = {44-49},
doi = {http://doi.ieeecomputersociety.org/10.1109/2.303623},
publisher = {IEEE Computer Society},
address = {Los Alamitos, CA, USA},
}

@inproceedings{MiecznikowskiHendren01,
     title = "Decompiling {Java} Using Staged Encapsulation",
        author = "Jerome Miecznikowski and Laurie Hendren",
	  booktitle =   "Proceedings of the Working Conference on
	    Reverse Engineering",
	    month =       "October",
	      year =        "2001",
	        pages =       "368--374"
}

@inproceedings{miecznikowski02,
    title = "Decompiling {Java} bytecode: problems, traps and pitfalls",
      year = "2002",
        booktitle = "Compiler Construction",
	  pages = "111--127",
	    editor = "R. N. Horspool",
	      publisher = "Springer Verlag",
	        author = "Miecnikowski, J. and Hendren, L. J.",
		  series = {Lecture {N}otes in {C}omputer {S}cience},
		    volume = "2304"}

