"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 to download a free trial version of CodeSuite®, the #1 tool for detecting software copying.
Autorentext
Bob Zeidman is president and founder of Zeidman Consulting (), a leading Silicon Valley contract R&D firm specializing in engineering consulting on IP disputes. Since 1983, he has designed chips and boards for RISC-based systems, network equipment, and other complex systems. His clients have included Apple, Cisco, Cadence, Facebook, Symantec, Texas Instruments, and Zynga. Zeidman has worked on and testified in cases involving billions of dollars in disputed IP. He is also president and founder of Software Analysis and Forensic Engineering Corporation (). A prolific writer and instructor, he holds multiple patents, an M.S.E.E. from Stanford, and a B.A. in physics and a B.S. in electrical engineering from Cornell.
Inhalt
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 Correla…