Patents by Inventor Harold Joseph Johnson

Harold Joseph Johnson has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10402547
    Abstract: A method for rendering a software program resistant to reverse engineering analysis. At least one first expression in a computational expression or statement of the software program is replaced with a second expression. The first expression being simpler than said second expression and the second expression being based on a value or variables found in said first expression. The second expression produces a value which preserves the value of said first expression. The conversion of the first expression is performed according to a mathematical identity of the form ?i=1k ai ei=E, where ai, are coefficients, ei, are bitwise expressions, whether simple or complex, and E is said first expression.
    Type: Grant
    Filed: April 8, 2015
    Date of Patent: September 3, 2019
    Assignee: IRDETO B.V.
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 9910971
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Grant
    Filed: January 12, 2016
    Date of Patent: March 6, 2018
    Assignee: IRDETO B.V.
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20160239647
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: January 12, 2016
    Publication date: August 18, 2016
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20150213239
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: April 8, 2015
    Publication date: July 30, 2015
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20150074803
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: April 30, 2014
    Publication date: March 12, 2015
    Applicant: IRDETO CANADA CORPORTATION
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 8752032
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: June 10, 2014
    Assignee: Irdeto Canada Corporation
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 8161463
    Abstract: A method for rendering software resistant to reverse engineering. Replace at least one first constant (mathematical expression, etc.) in a computational expression with a second mixed mathematical and bitwise-Boolean expression, the first constant being simpler than the second expression and the second expression being based on the value or the variables found in the first constant (or expression).
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: April 17, 2012
    Assignee: Irdeto Canada Corporation
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20080216051
    Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.
    Type: Application
    Filed: February 23, 2007
    Publication date: September 4, 2008
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Publication number: 20080208560
    Abstract: A method for rendering software resistant to reverse engineering. Replace at least one first constant (mathematical expression, etc.) in a computational expression with a second mixed mathematical and bitwise-Boolean expression, the first constant being simpler than the second expression and the second expression being based on the value or the variables found in the first constant (or expression).
    Type: Application
    Filed: October 31, 2007
    Publication date: August 28, 2008
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 6195792
    Abstract: A semantic-based system is provided to upgrade software written in a high level language of the kind having a type system and being statically compiled in compilers which check types and usages at compile time. The system employs conversion declarations which are inserted into the source code of the software and executed by the compiler. These declarations comprise a list of substitutable parts, with each substitutable part having a list of properties, a set of semantic patterns to be matched using the substitutable parts, and a result pattern showing what will be substituted for each matching portion of source code.
    Type: Grant
    Filed: February 19, 1998
    Date of Patent: February 27, 2001
    Assignee: Nortel Networks Limited
    Inventors: Mark Andrew Turnbull, Harold Joseph Johnson
  • Patent number: 6088452
    Abstract: An encoding technique of the invention protects software programs and hardware designs from being copied, tampered with, and its functions from being exposed. The software programs and hardware designs (collectively called programs) thus encoded still remain executable. The encoding technique employs the concept of complexity of programs and produces proximity inversion in terms of functions contained in the programs, while preserving the behaviors. Various embodiments are possible to achieve this encoding which includes, for example, cascading and intertwining of blocks of the programs.
    Type: Grant
    Filed: March 7, 1996
    Date of Patent: July 11, 2000
    Assignee: Northern Telecom Limited
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Becky Laiping Chang, Stanley Taihai Chow
  • Patent number: 5748741
    Abstract: An encoding technique of the invention protects software programs and hardware designs from being copied, tampered with, and its functions from being exposed. The software programs and hardware designs (collectively called programs) thus encoded still remain executable. The encoding technique employs the concept of complexity of programs and produces proximity inversion in terms of functions contained in the programs, while preserving the behaviors. Various embodiments are possible to achieve this encoding which includes, for example, cascading and intertwining of blocks of the programs.
    Type: Grant
    Filed: March 7, 1996
    Date of Patent: May 5, 1998
    Assignee: Northern Telecom Limited
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Becky Laiping Chan, Stanley Taihai Chow