Books and articles on software patent litigation, source code analysis, pre-filing investigation, reverse engineering, infringement analysis, claim charts, and related topics

Lydia Pallas Loren & Andy Johnson-Laird, Computer Software-Related Litigation: Discovery and the Overly-Protective Order, 2012 Fed. Cts. L. Rev. 1

Andy Johnson-Laird, Discovery in Computer Software Patent Litigation, 2006 Fed. Cts. L. Rev. 93 [almost identical to 1998 article, Andy Johnson-Laird, Discovery in Computer Software Patent Litigation, 1998 Fed. Cts. L. Rev. 1]

Andrea Gothing & Peter Routhier, Source-Code Discovery in Patent Infringement Cases, National Law Journal, May 7, 2012

Trevor Foster & Seth Northrup, A Lawyer’s Guide to Source Code Discovery, 58 Federal Lawyer [Fed. Bar Assoc.] 42-46 (Nov. 2011)

David Prange & Esam Sharafuddin, 5 Avoidable Pitfalls in Source Code Discovery and 4 Discovery Strategies in Cases Involving Source Code, Corporate Counsel, Oct. 2013

Andrew P. MacArthur, Discovery of Source Code in Patent Litigation, IP Law Alert (Gibbons), Jan. 30, 2013

Gareth Loy and Tom Gafford, Guidelines for Effective Software Discovery, Feb. 2011

Robert A. Matthews et al., Annotated Patent Digest [ANPATDIG] [ch. 2 on infringement contentions (2:33.80 Cases finding patentee’s infringement contentions sufficient; 2:33.81 Cases finding patentee’s infringement contentions insufficient); ch. 11 on non-infringement; ch. 12 on proving literal infringement; ch. 41 on discovery (especially 41:63.50 Production of Computer Code)]

Andrew Schulman, Hiding in Plain Sight: Using Reverse Engineering to Uncover Software Patent Infringement, IP Today, November 2010

Darryl M. Woo, Before You File – Obtain the Product, PLI, July 2006

Esther H. Lim, Reasonable Prefiling Investigation and the Test for Rule 11: The “I Would Have if I Could Have Test”, IP Litigator, July/August 2006

James G. McEwen, Performing a Pre-Filing Investigation When Samples Are Not Available: The Adequacy of a Pre-Filing Investigation After Intamin, June 2007

John R. Emerson, Phillip B. Philbin, and Jacob G. Hodges, Pre-Filing Considerations in Patent Cases, May 2008

Sid Leach, Patent Trolls Beware: Ethics and Consequences in Filing Patent Suits Without a Sufficient Pre-Filing Investigation, April 2007

Scott P. McBride and Michael J. Carrozza, How ‘Exceptional’ is Your Patent Case?, IP Today, Nov. 2013 [use of ‘exceptional’ standard for fee awards under 35 USC 285, for ‘objectively baseless’ infringement contentions brought in bad faith]

Jeffrey Lewis & Art Cody, Unscrambling the Egg: Pre-Suit Infringement Investigations of Process and Method Patents, 84 J. Pat & Trademark Off. Soc’y 5 (2002)

Aaron Rabinowitz, Keeping Your Eye on Your Ball: Patent Holders’ Evolving Duty to Patrol the Marketplace for Infringement, NW J. of Tech & IP, Spring 2007

Tait Graves, Bad Faith and the Public Domain: Requiring a Pre-Lawsuit Investigation of Potential Trade Secret Claims, 8 Va.J.L.&Tech 2 (2004)

Tim Holbrook, Patents, Presumptions, and Public Notice, 86 Ind.L.J. 779 (2011)

Marc Friedman & Andrew Siegel, From Flour Barrel to Computer Systems: The Applicability of Theories of Alternative Liability to Shift the Burdens of Proof in Cases of Intermingled Causation and Damages Within a Modern Computer Scenario, 14 Rutgers Computer and Technology Law Journal 289 (1988) [older article maintaining that computers are sufficiently complex that a res ipsa loquitur (flour barrels) approach is warranted]

Robert P. Merges, Rent Control in the Patent Districts: Observations on the Grady-Alexander Thesis, 78 VA. L. REV. 359, 376-77 (1992) [noting that trade secret protection is preferable to patent protection for processes because it is difficult to detect infringement of a process]

J. Jonas Anderson, Secret Inventions, 26 Berkeley Tech.L.J. 917 (2011) [‘Whenever secrecy enables an inventor to hide her inventions from the public, secrecy is also likely to prevent the inventor from detecting infringing use of her invention’]

David Hricik, Patent Ethics: Litigation (2010) [ch.5 Pre-Pleading Investigation, especially Application of Claims to Accused Product or Process, at 99-101; ch.6 Ethical and Other Constraints on Pre-Suit Investigations and Pre-Suit Enforcement Efforts, including undercover investigations at 121-131; ch.8 Expert Witnesses; ch.9 on discovery and spoliation]

Brian S. Faughnan, The Ethics of Working with the I.P., P.I., Landslide (ABA IP), March/April 2012 [‘IP,’ ‘PI’: intellectual property, private investigators; pretexting, straw purchases of suspected products, etc.]

John Kenyon, Investigation Needed Before Bringing Suit, in Laurence Petty, ed., Patent Litigation [PLI] (2004), ch. 2

Andrew Schulman, Open to Inspection: Using Reverse Engineering to Uncover Software Prior Art, New Matter [Calif. State Bar IP Section], Summer 2011 (Part 1), Fall 2011 (Part 2)

Emily A. Evans and Diana B. Kruze, Experimental Testing in Patent Litigation, Landslide (ABA IP), July/August 2009 [Daubert applied to technical experts testing of accused products in patent cases]

Lee Hollaar, Requesting and Examining Computer Source Code, 4 Expert Evidence Report [BNA] 238 (May 10, 2004)

Mark Koehn, Producing Source Code in Litigation, 8 Digital Discovery & E-Evidence [BNA] 1 (March 1, 2008)

Dan Raffle, Lois Thomas, and Craig Motta, Surviving Source Code Reviews (webinar, Oct. 26, 2012)

Aviel D. Rubin, Seth J. Nielson, Sam Small, Christopher K. Monson, Guidelines for Source Code Review in Hi-Tech Litigation (Harbor Labs)

Bob Zeidman, The Software IP Detective’s Handbook: Measurement, Comparison, and Infringement Detection (2011) [detecting patent infringement on pp.341-356, focusing on use of comments, instrumentation, tools such as Understand]

Sheila McShane & Ira Hammer, Protecting Source Code, New Jersey Law Journal, July 18, 2005

Tom Schaumberg, ed., A Lawyer’s Guide to Section 337 Investigations Before the US International Trade Commission (2010) [Production of Highly-Confidential Source Code, at 127-130]

Ashish Prasad, The Importance of Keeping Secrets: The Use of Protective Orders During Patent Litigation, 29 Computer & Internet Lawyer 25 (Aug. 2012)

David Axtell & Stephen Davidson, The DMCA and the Reverse Engineering of Suspected Infringing Products, 23 Computer & Internet Lawyer 1 (Feb. 2006)

Jeffrey Sullivan & Thomas Morrow, Practicing Reverse Engineering in an Era of Growing Constraints under the Digital Millennium Copyright Act and Other Provisions, 14 Alb. L.J. Sci. & Tech. 1, 38-48 (2003) [impact of DMCA on reverse engineering to meet Rule 11 obligations]

Billy Raska, Sniffing for Patent Infringement, U. of Richmond JOLT, Dec. 3, 2013 [Discussion of In re Innovatio re: use of Wireshark packet sniffer to detect patent infringement; see also article by Alexander M. Noble on In re Innovatio]

Kenneth Canfield, The Disclosure of Source Code in Software Patents: Should Software Patents be Open Source?, 7 Colum. Sci. & Tech. L.Rev. 6 (2006)

E. Robert Yoches & Terry Callaghan, The Next Battle: New Forms of Software Prior Art, 2 U. Balt. Intell. Prop. L.J. 115 (1994)

Mark Flagel & Steven Weiner, Existing Programs Could be Considered Prior Art; Publicly Available Software with a Ban on Reverse Engineering May Invalidate Future Registrations, National Law Journal (May 8, 1995)

Mark Flagel & Steven Weiner, Trade Secret Software as Prior Art: Litigation Strategies, 11 Computer Lawyer 8 (Dec. 1994)

George Gates, Trade Secret Software: Is it Prior Art?, 6 Computer Lawyer 11 (Aug. 1989)

Lisa Larrimore Ouelette, Do Patents Disclose Useful Information?, 25 Harv. J. Law & Tech. 531 [year]

Hon. John Love et al., Complex Patent Cases: Observations from the Bench, 13 SMU Sci. & Tech. L.Rev. 121 [year] [includes source code as ‘Catch-22’]

Bryan Blumenkopf, Exposing Latent Patent Infringement, 19 Richmond J. Law & Tech. 7 (2013) [covers ‘latent code’ cases e.g. Telemac, Finjan]

James Ware & Brian Davy, The History, Content, Application and Influence of the Northern District of California’s Patent Local Rules, 25 Santa Clara Computer & High Tech. L.J. 965 (2009)

Stacy Stitham & David Swetnam-Burland, Fractious Form 18, 45 Conn. L.Rev. (CONNtemplations) 1 (2012) [re: minimal pleading requirements, Iqbal/Twombly]

Jonathan L. Moore, Particularizing Patent Pleading: Pleading Patent Infringement in a Post-Twombly World, 18 Tex. Intell. Prop. L.J. 451

Scott Dodson, New Pleading in the Twenty-First Century: Slamming the Federal Courthouse Doors? (2013) [not specifically on heightened pleading in patent infringement; extensive coverage of Twombly and Iqbal; covers PSLRA]

Colin T. Reardon, Pleading in the Information Age, 85 NYU xxx (2010) [lowered search costs, and reduced information asymmetry, because internet and increased disclosure make pre-filing investigation more feasible than in the past]

Julie Zink, Shifting the Burden: Proving Infringement and Damages in Patent Cases Involving Inconsistent Manufacturing Techniques, 2 Hastings Sci. & Tech. L.J. 81

Michael Libertin & Mike Mester, Source Code: A Solution to the Software Patent Problem? (2006)

Greg Vetter, Patent Law’s Unpredictability Doctrine and the Software Arts, 76 Missouri L.Rev. 763 (2011) [another paper on the question, should software patent disclosure require source code?]

William Heinze, A Risk-Balancing Approach to Best Mode Disclosure in Software Patent Applications, 84 J. Pat. & Trademark Off. Soc’y 40 (2002)

Neil Pierotti, Does Internet Information Count as a Printed Publication?, 42 IDEA 249 (2002)

Eric Guttag, Applying the Printed Publication Bar in the Internet Age: Is It as Simple as Googling for Prior Art?, 16 Va. J. L. & Tech. (2011)

Lee Hollaar, The Form of a Software Claim Makes a Big Difference, 73 Patent, Trademark, and Copyright Journal [BNA] 1 (Nov. 17, 2006)

Lee Hollaar, The Use of Neutral Experts, 4 Expert Evidence Report 660 (Dec. 20, 2004)

Michael Rader, Recent Patent Litigation Trends Affecting Non-Practicing Entities, 18 IP Litigator 24 (March-April 2012)

Pamela Samuelson & Suzanne Scotchmer, The Law and Economics of Reverse Engineering, 111 Yale L.J. 1575 (2001-2)

Geoff Chappell, Software Analysis by Reverse Engineering [the entire site stands as a superb example of what it is possible to learn, and the information which can generated, from publicly-accessible software, in this case Microsoft Windows]

Cem Kaner, The Problem of Reverse Engineering, Software QA (1998) [see other articles at, e.g. discussions of embedded software]

Andrew Johnson-Laird, Software Reverse Engineering in the Real World, 19 U. Dayton L.Rev. 843 (1994) [relevant to Rule 11 investigation obligations; article tends to downplay what can be learned from reverse engineering]

Julie Cohen, Reverse Engineering and the Rise of Electronic Vigilantism: Intellectual Property Implications of ‘Lock-Out’ Programs, 68 S.Cal. L.Rev. 1091 (1995) [problems of software prior art]

Ami Patel, Advocating a Totality of the Circumstances Test to Analyze a Non-Informing Use of an Invention, 48 Wayne L.Rev. 1287 (2002-3)

F. Andrew Ubel, Who’s on First? – The Trade-Secret Prior User or a Subsequent Patentee, 76 J. Pat. & TM Off. Soc’y 401 (1994)

Mark Lemley & Julie Cohen, Patent Scope and Innovation in the Software Industry, 89 Cal. L.Rev. 1091 (1995) [problem of software prior art]

Mark Lemley, Software Patents and the Return of Functional Claiming (2012)

John Allison & Ronald Mann, The Disputed Quality of Software Patents, 85 Wash.U. L.Rev. 297 (2007) [section on how to define software patent]

Mark Lemley, Rational Ignorance at the Patent Office, 95 NW U.L.Rev. 1495 (2001) [does presumption of patent validity make sense, given failure/inability/undesirability of searching prior-art software?]

Dan Burk, The Role of Patent Law in Knowledge Codification, 23 Berk. Tech. L.J. 1009 (2008) [relevant to adequate disclosure (e.g. source code) of software patents; role of patent system in classifying technology]

Steven J. Rothschild and Thomas P. White, Printed Publication: What is it Now?, 70 J. Pat. & Trademark Off. Soc’y 42 at 48-49 (1988) [provides useful background to question of software itself (vs. descriptions of software) as prior art]

Anne Brown and Mark Polyakov, The Accidental and Inherent Anticipation Doctrines, 4 J. Marshall Rev. Intell. Prop. L. 63 (2004)

Gerald Rose, Do You Have a “Printed Publication”? If Not, Do You Have Evidence of Prior “Knowledge or Use”?, 61 J. Pat. Off. Soc’y 643 at 661-662 (1979)

James R. Barney, Prior User Defense: A Reprieve for Trade Secret Owners or a Disaster for the Patent Law, 82 J. Pat. & Trademark Off. Soc’y 261 (2000) [relationship between earlier trade secret and later patent; patent law generally rewards first discloser (“inventor” is a term of art meaning first to disclose invention)]

Athena Johns, Computer Science and the Reference Manual for Scientific Evidence: Defining the Judge’s Role as a Firewall, 14 Washington & Lee Law School IP Law Bulletin 23 (2009) [proposing a Computer Science Reference Guide; section 4: “Do the Daubert Factors Apply to Computer Science Cases?”]

Walter Denson, The Source Code Escrow: A Worthwhile or Worthless Investment? [cite]

Henry Heines, “Determining Infringement by X-Ray Diffraction,” Chemical Engineering Process (Jan. 1999)

Julia Elvidge, “Using Reverse Engineering to Discover Patent Infringement,” Chipworks (Sept. 2010)

Software/internet patents

Steven Lundberg & Stephen Durant, eds., Electronic and Software Patents: Law and Practice (year) [ch.3 on Searching Software Inventions (non-patent prior art), ch.7 on claim interpretation applied to software patents; ch.13 on noninfringement/invalidity opinions; ch.15 on litigation, including “how to determine infringement” and prior art]

Gregory Stobbs, Software Patents (year) [almost entirely on patent prosecution not litigation, but see e.g. 5.10 on software prior art searching; Lowry data structure claims (ch.4); disclosing software prior art (ch.9)]

Gregory Stobbs, Business Method Patents (year) [almost entirely on patent prosecution not litigation, and overlaps Stobbs Software Patents, but see e.g. ch.9 on prior art; “Working with computer source code” in ch.10; software claim-drafting templates for loops, recursion etc.; propagated signal “carrier wave” claims (including PTO “recites self-documenting source code” model); undue experimentation; useful list of internet-related invention types (accounting, agent technology, auction, B2B, etc.)]

Kenneth Nichols, Inventing Software: The Rise of “Computer-Related Patents”, 1998 [largely on old subject-matter issues, but pp.70-1 on infringement detection and reverse engineering; pp.114-118 on reverse engineering compiled code, difficulty of recognizing an independently-created embodiment of invention, auto-generated code, custom/bespoke software (need more on in-house, enterprise; discussion of Rule 11, RE assumes public product for sale)]

Bernard Galler, Software and Intellectual Property Protection (1995) [only partially on patents; discusses e.g. problem of software prior art]

Lewis Lee & J. Scott Davidson, Intellectual Property for the Internet (year) [discussion of claim language for cryptography (ch.3) and server-related inventions (ch.4) is useful for understanding how to turn claim language ‘back into’ algorithms to be matched against source code]

Pal Asija, How to Protect Computer Programs (A Case History of the First Pure Software Patent) (1983) [case study by inventor of US 4,702,182]

Ben Klemens, Math You Can’t Use: Patents, Copyright, and Software, 2006 [ch.8 proposes that software patents be based on source code; ch.3 useful discussion of software as equations]

Josh Lerner & Mark Schankerman, The Comingled Code: Open Source and Economic development, 2010 [on extensive use of software patents outside the software industry; commingling of open source with proprietary commercial code]

Adam Jaffe & Josh Lerner, Innovation and its Discontents (2004) [covers prior-art search problems (e.g. synonyms p.147), patent litigation, etc.]

Elad Harison, Intellectual Property Rights, Innovation and Software Technologies: The Economics of Monopoly Rights and Knowledge Disclosure, 2008 [ch.7 includes correlation between specific open source projects (EMACS, OpenBSD, KDE, GNOME) and patents]

Robert Hahn, ed., Intellectual Property Rights in Frontier Industries: Software & Biotechnology, 2005 [several chapters on software patents, including Burk & Lemley, Designing Optimal Software Patents]

James Bessen & Michael Meurer, Patent Failure (2008) [ch.9 on abstract patents and software; while books on software patents usually focus on validity/prosecution/subject-matter rather than infringement/litigation, see Bessen & Meurer ch.6 on the cost of disputes, based on Bessen & Meurer empirical study of patent litigation]

Dan Burk & Mark Lemley, The Patent Crisis and How the Courts Can Solve It (2009) [discussion throughout of software patents, prior art, reverse engineering; industry-specific ‘levers’; but how do software patents align with software industry?: many software patents reside outside the software industry (see Lerner ‘comingling’ book), but perhaps most software patent litigation is within the software industry?]

Knut Blind et al., Software Patents: Economic Impacts & Policy Implications (2005) [includes e.g. validity & disclosure of source code]

Emanuela Arezzo & Gustavo Ghidini, eds., Biotechnology & Software Patent Law: A Comparative Review of New Developments (2011)

Gene Landy, The IT/Digital Legal Companion (2008) [ch.5 on patents, ch.9 on open source]

Lawrence Lessig, Code 2.0 (xxx) [‘code is law’ based on Mitchell, City of Bits?; replacement of law by contract/tech; see also Easterbrook vs. Lessig on ‘law of the horse’]

Chopra & Dexter, Decoding Liberation: The Promise of Free & Open Software (2007) [‘Software is more than a set of instructions for computers: it enables (and disables) political imperatives and policies.’]

Frank Easterbrook, Cyberspace and the Law of the Horse, 1996 U. Chi. Legal F. 207

Lawrence Lessig, The Law of the Horse: What Cyberlaw Might Teach, xxx Harvard L. Rev. xxx (1999)

Weber, The Success of Open Source (year) [open source as a way to create prior art to block later patents, i.e. open source as a form of defensive publication]

Van Lindberg, Intellectual Property & Open Source (year)

Woods & Guliani, Open Source for the Enterprise (year)

Daniel Cahoy & Lynda Oswald, eds., The Changing Face of US Patent Law and Its Impact on Business Strategy (2013)

G. Peter Albert et al., Intellectual Property Law in Cyberspace (2nd ed., 2012) [ch.10 on internet & patents, including NPEs/trolls]

Margaret Radin et al., Intellectual Property and the Internet (2003)

Kimberly Moore et al., Patent Litigation and Strategy (3rd ed., 2008)

Mark Lemley et al., Software & Internet Law (4th ed., 2011)

Peter Maggs et al., Internet & Computer Law (3rd ed., 2010)

Margaret Radin, Internet Commerce: The Emerging Legal Framework (2e, 2012) [ch.10 on online business method patents]

Ashley Lipson & Robert Brain, Computer and Video Game Law (2009) [ch.6 on video game patent protection]

Daniel Garrie & Francis Allegra, Plugged In: Guidebook to Software and the Law (2013)

Bruce Abramson, The Secret Circuit (2007) [study of CAFC; includes Markman, contradiction between idea of claim construction as legal issue, but patent documents ostensibly written for engineers p.57]

Michael Carrier, Innovation for the 21st Century (2009) [ch. 10 mostly on eBay v. MercExchange, injunctions, NPEs]

Jonathan Band & Masanobu Katoh, Interfaces on Trial 2.0 (2011) [law of reverse engineering, which is relevant to pre-filing investigation obligations under Rule 11; see also 1st edition]

Gerhard Illing & Martin Peitz, Industrial Organization and the Digital Economy (2006) [chapter on software patents, based on citations]

Jaffe & Trajtenberg, Patents, Citations, and Innovations: A Window on the Knowledge Economy (2002) [working with patent cites, which can (with caution, and filtering for noise) be used to generate lists of potential/candidate infringers/targets for infringement investigation]

Peter Yu, ed., Intellectual Property and Information Wealth (4 vol., 2007), vol. 2: Patents and Trade Secrets [chapters on obviousness, on-sale bar, claim interpretation, patent misuse, remedies, empirical research on patent litigation (James Bessen & Michael Meurer; also see their book Patent Failure); ch. on software patents; separate volume has chapter on history of copyleft (open source), with discussions of source code]

Role of source code, software investigation in non-IP litigation & administration/regulation

Danielle Keats Citron, Law in a Networked World: Open Code Governance, 2008 U. Chi. Legal F. 355 (2013) [extensive coverage of source code in administrative law, especially voting implementation]

Andrew Massey, ‘But We Have to Protect Our Source!’: How Electronic Voting Companies’ Proprietary Code Ruins Elections, 27 Hastings Comm. & Ent. L.J. 233 [year; get]

Jennifer Mnookin, Of Black Boxes, Instruments, and Experts: Testing the Validity of Forensic Science, 5 Episteme: A Journal of Social Epistemology 343 (2008), Breath Tests for Alcohol and the Problem of Source Code, at 351-356

Michael Barr, Firmware Forensics: Best Practices in Embedded Software Source-Code Discovery, EE Times (Oct. 27, 2011)

David Liebow, NOTE: DWI Source Code Motions After Underahl, 11 Minn. J.L. Sci. & Tech. 853 [year]

Aurora Wilson, Discovery of Breathalyzer Source Code in DUI Prosections, 7 Wash. J.L. Tech. & Arts 121 [year]

Charles Short, Guilt by Machine: The Problem of Source Code Discovery in Florida DUI Prosecutions, Florida Law Review [cite]

Comprehensive List of Source Code Litigation in DUI Cases (Sept. 7, 2007)

Michael Arkfeld, Electronic Discovery and Evidence (2nd ed., 2007)

Marian Riedy et al., Litigating with Electronically Stored Information (2007)

Non-US materials

Esther Seitz, Fact-Gathering in Patent Infringement Cases: Rule 34 Discovery and the Saisie-Contrefaçon, 4 Munich IP Law Centre Studies (2009) [civil law discovery]

Philip Leither, Software and Patents in Europe (2007) [covers nature of software as machine and as text]

Martin Kohler & Simon Cohen, Disclosure in European Patent Litigation: Towards an Efficient Protection of Patent Owners, 11 IP Litigator 1 (March-April 2005)

J. Park, Evolution of Industry Knowledge in the Public Domain: Prior Art Searching for Software Patents 2:1 SCRIPT-ed 47 (2005)

Peter Drahos, The Global Governance of Knowledge: Patent Offices and their Clients (2010) [discussion of prior-art search for “non-patent literature” (NPL), software patent disclosure]

Tanya Aplin & Jennifer Davis, Intellectual Property Law: Text, Cases, and Materials (2009) [UK; ch. 10 on patent infringement; ss 12.3 on software patents; ch. 13 on IP litigation, including ss 13.4.2 search order (Anton Piller)]

Technical materials

pinterest board on software reverse engineering and source-code exam for litigation (tools and books)

Andrew Schulman et al.,  Undocumented DOS: A Programmer’s Guide to Reserved MS-DOS Functions and Data Structures, 2nd ed. (1994) [pp. 229-341 on general methodology of reverse engineering, applied to mass-market software: a program for exploring DOS, disassembling DOS]

Andrew Schulman et al., Undocumented Windows: A Programmer’s Guide to Reserved Microsoft Windows API Functions  (1992) [pp. 59-188 on general methodology of reverse engineering, applied to mass-market software: examining Windows executables, disassembling Windows, tools for exploring Windows]

Andrew Schulman, Unauthorized Windows 95 (1994) [book-length example of software reverse engineering]

Bob Slate, Software Forensics (2005) [e.g. software plagiarism detection]

Diomidis Spinellis, Code Reading: The Open Source Perspective (2003) [the “bible” of source-code reading, though little on commercial non-open code]

Andy Oram and Greg Wilson, Beautiful Code: Leading Programmers Explain How They Think (2007)

Donald Knuth, Literate Programming (1992)

Steve McConnell, Code Complete: A Practical Handbook of Software Construction, 2nd ed. (2004)

Robert Messler, Reverse Engineering: Mechanisms, Structures, Systems & Materials (2013) [introduction to hardware teardowns, including methodology, goals; little on software reverse engineering]

Eric Lawrence, Debugging with Fiddler: The complete reference from the creator of the Fiddler Web Debugger (2012)

Laura Chappell and Gerald Combs, Wireshark 101: Essential Skills for Network Analysis (2013)

Chris Eagle, The IDA Pro Book: The Unofficial Guide to the World’s Most Popular Disassembler (2011)

Mark E. Russinovich and Aaron Margosis, Windows Sysinternals Administrator’s Reference (2011)

Bruce Dang, Alexandre Gazet, Elias Bachaalany, Sebastien Josse, Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation (2014) [see especially chapter on ARM]

Peter Szor, The Art of Computer Virus Research and Defense (2005)

Tobias Klein, A Bug Hunter’s Diary: A Guided Tour Through the Wilds of Software Security (2011)

Tarik Soulami, Inside Windows Debugging: A Practical Guide to Debugging and Tracing Strategies in Windows (2012)

Godfrey Nolan, Decompiling Android (2012)

Godfrey Nolan, Decompiling Java (2004)

Andrew Huang, Hacking the Xbox (2003) [includes general coverage of law of software reverse engineering]

Michael Ligh, Steven Adair, Blake Hartstein, Malware Analyst’s Cookbook and DVD: Tools and Techniques for Fighting Malicious Code (2010)

Himanshu Dwivedi, Chris Clark and David Thiel, Mobile Application Security (2010)

Source code retrieval, searching, and similarity detection

Silvio Cesare and Yang Xiang, Software Similarity and Classification (2012) [taxonomy of program features; program transformations & obfuscations; formal methods of program analysis; static analysis of binaries; dynamic analysis; feature extraction; software “birthmark” similarity; software similarity searching & classification; applications to malware detection, software theft detection (static & dynamic approaches), plagiarism detection, code clone detection]

Gilad Mishne and Maarten de Rijke, Source Code Retrieval using Conceptual Similarity (2004)

Mohammed Amine Ouddan and Hassane Essafi, A Multilanguage Source Code Retrieval System Using Structural-Semantic Fingerprints (2007)

Michel Chilowicz, Etienne Duris and Giles Roussel, Syntax Tree Fingerprinting: A Foundation for Source Code Similarity Detection (2010)

Warren Toomey, Code Similarity Detection in Multiple Large Source Trees using Token Hashes (2012)

Colin McMillan, Mark Grechanik, and Denys Poshyvanyk, Detecting Similar Software Applications (2012)

Denys Poshyvanyk, Using Information Retrieval to Support Software Maintenance Tasks (2009) [also see Poshyvanyk list of publications, dissertation]

Susan Elliott Sim and Rosalva E. Gallardo-Valencia, Finding Source Code on the Web for Remix and Reuse (2013) [includes methodologies for searching and retrieving source code]

Jason Cohen, Best Kept Secrets of Peer Code Review: Modern Approach, Practical Advice (2006) [very useful overview of studies of source code peer reviews, including studies of error rates in finding known defects; this material is relevant to a consideration of the methodology tacitly employed by source-code examiners in patent litigation]

Print Friendly, PDF & Email