HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
“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
Visit www.SAFE-corp.biz to download a free trial version of CodeSuite®, the #1 tool for detecting software copying.
Bob Zeidman on Intellectual Property Issues, Source Code Correlation, and Testifying in Court
How Do I Infringe Thee? Let Me Count the Ways
Go to the author's web site.
The Software IP Detective's Handbook: About This Book
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