Home > Store

Software IP Detective's Handbook, The: Measurement, Comparison, and Infringement Detection

Register your product to gain access to bonus material or receive a coupon.

Software IP Detective's Handbook, The: Measurement, Comparison, and Infringement Detection


  • Sorry, this book is no longer in print.
Not for Sale


  • Copyright 2011
  • Dimensions: 7" x 9-1/8"
  • Pages: 480
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-703533-0
  • ISBN-13: 978-0-13-703533-5

“Intellectual property, software plagiarism, patents, and copyrights are complicated subjects. This book explains the key elements better than anything else I have seen. I highly recommend it to anyone who develops software or needs to protect proprietary software algorithms, and to all attorneys involved with IP litigation.”

–Capers Jones, President, Capers Jones & Associates LLC


“Intellectual property is an engine of growth for our high tech world and a valuable commodity traded in its own right. Bob Zeidman is a leading authority on software intellectual property, and in this book he shares his expertise with us. The book is comprehensive. It contains clear explanations of many difficult subjects. Business people who study it will learn how to protect their IP. Lawyers will use it to understand the specifics of how software embodies IP. Judges will cite it in their decisions on IP litigation.”

–Abraham Sofaer, George P. Shultz Senior Fellow in Foreign Policy and National Security Affairs, Hoover Institution, Stanford University

The Definitive Software IP Guide for Developers, Managers, Entrepreneurs, Attorneys, and Consultants


In The Software IP Detective’s Handbook, pioneering expert Bob Zeidman–creator of CodeSuite®, the world’s #1 software IP analysis tool–thoroughly covers all technical and legal aspects of IP theft detection. Using his rigorous framework and practical examples, you can accurately determine whether software copying, theft, or infringement has occurred, and fully support your findings in any venue. This book will help you 

  • Understand the key concepts that underlie software IP analysis
  • Compare and correlate source code for signs of theft or infringement
  • Uncover signs of copying in object code when source code is inaccessible
  • Track malware and third-party code in applications
  • Use software clean rooms to avoid IP infringement
  • Understand IP issues associated with open source and DMCA

Visit www.SAFE-corp.biz to download a free trial version of CodeSuite®, the #1 tool for detecting software copying.

Sample Content

Online Sample Chapter

The Software IP Detective's Handbook: About This Book

Table of Contents

Preface xxi

Acknowledgments xxiii

About the Author xxv

Part I: Introduction 1

Objectives 2

Intended Audience 2

Chapter 1: About this Book 5

Part I: Introduction 6

Part II: Software 6

Part III: Intellectual Property 6

Part IV: Source Code Differentiation 9

Part V: Source Code Correlation 9

Part VI: Object and Source/Object Code Correlation 10

Part VII: Source Code Cross-Correlation 10

Part VIII: Detecting Software IP Theft and Infringement 11

Part IX: Miscellaneous Topics 11

Part X: Past, Present, and Future 11

Chapter 2: Intellectual Property Crime 13

2.1 The Extent of IP Theft 14

Part II: Software 21

Objectives 22

Intended Audience 22

Chapter 3: Source Code 23

3.1 Programming Languages 24

3.2 Functions, Methods, Procedures, Routines, and Subroutines 26

3.3 Files 32

3.4 Programs 35

3.5 Executing Source Code 36

Chapter 4: Object Code and Assembly Code 39

4.1 Object Code 39

4.2 Assembly Code 40

4.3 Files 43

4.4 Programs 44

Chapter 5: Scripts, Intermediate Code, Macros, and Synthesis Primitives 45

5.1 Scripts 45

5.2 Intermediate Code 47

5.3 Macros 48

5.4 Synthesis Primitives 49

Part III: Intellectual Property 53

Objectives 55

Intended Audience 55

Chapter 6: Copyrights 57

6.1 The History of Copyrights 57

6.2 Copyright Protections 60

6.3 Software Copyrights 63

6.4 Allowable and Nonallowable Uses of Copyrighted Code 72

Chapter 7: Patents 79

7.1 The History of Patents 80

7.2 Types of Patents 81

7.3 Parts of a Patent 82

7.4 Patenting an Invention 85

7.5 Special Types of Patent Applications 86

7.6 Software Patents 90

7.7 Software Patent Controversy 91

7.8 Patent Infringement 95

7.9 NPEs and Trolls 99

Chapter 8: Trade Secrets 103

8.1 The History of Trade Secrets 103

8.2 Uniform Trade Secrets Act (UTSA) 104

8.3 Economic Espionage Act 105

8.4 Aspects of a Trade Secret 106

8.5 Trade Secret Theft 111

8.6 Patent or Trade Secret? 112

Chapter 9: Software Forensics 113

9.1 Forensic Science 115

9.2 Forensic Engineering 116

9.3 Digital Forensics 119

9.4 Software Forensics 120

9.5 Thoughts on Requirements for Testifying 121

Part IV: Source Code Differentiation 125

Objectives 126

Intended Audience 126

Chapter 10: Theory 127

10.1 Diff 128

10.2 Differentiation 133

10.3 Types of Similarity 135

10.4 Measuring Similar Lines 136

10.5 Measuring File Similarity 140

10.6 Measuring Similar Programs 142

Chapter 11: Implementation 147

11.1 Creating and Comparing Arrays 147

11.2 Number of Optimal Match Score Combinations 151

11.3 Choosing Optimal Match Scores for Calculating File Similarity 153

11.4 Choosing File Similarity Scores for Reporting Program Similarity 161

Chapter 12: Applications 165

12.1 Finding Similar Code 165

12.2 Measuring Source Code Evolution 168

Part V: Source Code Correlation 183

Objectives 185

Intended Audience 185

Chapter 13: Software Plagiarism Detection 187

13.1 The History of Plagiarism Detection 187

13.2 Problems with Previous Algorithms 189

13.3 Requirements for Good Algorithms 192

Chapter 14: Source Code Characterization 197

14.1 Statements 199

14.2 Comments 206

14.3 Strings 207

Chapter 15: Theory 209

15.1 Practical Definition 210

15.2 Comparing Different Programming Languages 213

15.3 Mathematical Definitions 214

15.4 Source Code Correlation Mathematics 215

15.5 Source Code Examples 216

15.6 Unique Elements 218

15.7 Statement Correlation 219

15.8 Comment/String Correlation 223

15.9 Identifier Correlation 225

15.10 Instruction Sequence Correlation 227

15.11 Overall Correlation 228

Chapter 16: Implementation 233

16.1 Creating Arrays from Source Code 234

16.2 Statement Correlation 239

16.3 Comment/String Correlation 240

16.4 Identifier Correlation 241

16.5 Instruction Sequence Correlation 243

16.6 Overall Correlation 245

16.7 Comparing Programs in Different Programming Languages 246

16.8 Comparing Sections of Code Other than Files 246

Chapter 17: Applications 247

17.1 Functional Correlation 248

17.2 Identifying Authorship 249

17.3 Identifying Origin 251

17.4 Detecting Copyright Infringement (Plagiarism) 252

17.5 Detecting Trade Secret Theft 252

17.6 Locating Third-Party Code (Open Source) 253

17.7 Compiler Optimization 254

17.8 Refactoring 254

17.9 Detecting Patent Infringement 255

Part VI: Object and Source/Object Code Correlation 257

Objectives 258

Intended Audience 259

Chapter 18: Theory 261

18.1 Practical Definition 266

18.2 Extracting Elements 268

18.3 Comparing Different Programming Languages 270

18.4 Mathematical Definitions 270

18.5 Object and Source/Object Code Correlation Mathematics 272

18.6 Comment/String Correlation 273

18.7 Identifier Correlation 274

18.8 Overall Correlation 275

18.9 False Negatives 276

Chapter 19: Implementation 279

19.1 Creating Text Substring Arrays from Object Code 279

19.2 Creating Arrays from Source Code 283

19.3 Identifier Correlation 287

19.4 Comment/String Correlation 287

19.5 Overall Correlation 287

Chapter 20: Applications 289

20.1 Pre-Litigation Detective Work 289

20.2 Tracking Malware 293

20.3 Locating Third-Party Code 293

20.4 Detecting Open Source Code License Violations 294

Part VII: Source Code Cross-Correlation 295

Objectives 296

Intended Audience 296

Chapter 21: Theory, Implementation, and Applications 299

21.1 Comparing Different Programming Languages 300

21.2 Mathematical Definitions 300

21.3 Source Code Cross-Correlation Mathematics 301

21.4 Source Code Examples 303

21.5 Statement-to-Comment/String Correlation 307

21.6 Comment/String-to-Statement Correlation 308

21.7 Overall Correlation 308

21.8 Implementation and Applications 310

Part VIII: Detecting Software IP Theft and Infringement 313

Objectives 315

Intended Audience 315

Chapter 22: Detecting Copyright Infringement 317

22.1 Reasons for Correlation 318

22.2 Steps to Find Correlation Due to Copying 326

22.3 Abstraction Filtration Comparison Test 331

22.4 Copyright Infringement Checklist 338

Chapter 23: Detecting Patent Infringement 341

23.1 Interpreting the Claims 341

23.2 Examining the Software 348

23.3 Tools 350

23.4 Determining Patent Validity 352

Chapter 24: Detecting Trade Secret Theft 359

24.1 Identifying Trade Secrets 360

24.2 Tools 367

Part IX: Miscellaneous Topics 369

Objectives 370

Intended Audience 370

Chapter 25: Implementing a Software Clean Room 371

25.1 Background 372

25.2 The Setup 374

25.3 The Procedure 376

Chapter 26: Open Source Software 383

26.1 Definition 383

26.2 Free Software 386

26.3 Open Source Licenses 388

26.4 Open Source Lawsuits 390

26.5 The Pervasiveness of Open Source Software 396

Chapter 27: Digital Millennium Copyright Act 399

27.1 What Is the DMCA? 399

27.2 For and Against the DMCA 400

27.3 Noteworthy Lawsuits 403

Part X: Conclusion: Past, Present, and Future 407

Glossary 409

References 423

Index 435


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020