Warehouse Stock Clearance Sale

Grab a bargain today!


The Software IP Detective's Handbook,
By

Rating

Product Description
Product Details

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

About the Author

Bob Zeidman is president and founder of Zeidman Consulting (www.ZeidmanConsulting.com), 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 (www.SAFE-corp.biz). 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.

Reviews

“As a frequent expert witness myself, I found Bob’s book to be important and well written. Intellectual property and software plagiarism are complicated subjects, as are patents and copyrights. This book explains the key elements better than anything else I have seen. The book is highly recommended to anyone who develops software and also to those who need to protect proprietary software algorithms. The book should also be useful to attorneys who are involved with intellectual property litigation.”

—Capers Jones, president, Capers Jones & Associates, LLC

 

“Intellectual property [IP] 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 IP, and in this book he shares with us his expertise. The book is comprehensive. It contains clear explanations of many difficult subjects. Businesspeople 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

 

“Bob has done a fantastic job in making computer science forensics understandable to mere mortals: attorneys, engineers, and managers. This is the ultimate handbook for expert witnesses, due diligence execution, and developing a baseline for software valuation. Buy it before your competitors do!”

—Don Shafer, CSDP, chief technology officer, Athens Group, LLC

 

“Bob has considerable experience in dealing with issues associated with unauthorized use of software code. His insights in this book are particularly helpful for those seeking to provide expert analysis with respect to software code.”

—Neel I. Chatterjee, partner, Orrick, Herrington & Sutcliffe, LLC

 

“This readable book perfectly bridges the jargon divide between software engineers and IP attorneys. It helps each group finally understand exactly what the other is talking about. As a software developer and expert witness I will definitely keep a copy handy and recommend it to others on my team.”

—Michael Barr, president, Netrino, LLC

 

“This book makes intellectual property law understandable and accessible to programmers by combining discussions of the law with discussions of computer science, and interweaving case studies to elucidate the intersection of these disciplines.”

—Robert C. Seacord, Secure Coding Manager, Software Engineering Institute

Ask a Question About this Product More...
 
Look for similar items by category
This title is unavailable for purchase as none of our regular suppliers have stock available. If you are the publisher, author or distributor for this item, please visit this link.

Back to top