Patents by Inventor Karan Singh Dhillon

Karan Singh Dhillon 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: 8800048
    Abstract: Methods and a tool or instrument for performing the methods of protecting a computer program with a parameter cloud are disclosed. A parameter cloud comprising a plurality of elements may be created. Called functions of a computer program may have defined expected parameter cloud states so that proper behavior of the called function is achieved when the parameter cloud state is the expected parameter cloud state. An expected parameter cloud state may include a selected set of elements of the parameter cloud having assigned values. Static portions of the called functions may depend on a current parameter cloud state, and calling functions may transform the parameter cloud state prior to calling their respective called functions. The methods and instrument may operate on original source code or post-binary targets of the computer program. A fingerprint may be used to identify a specific computer program from a sequence of state transitions.
    Type: Grant
    Filed: May 20, 2008
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Matthias Wollnik, Nathan Ide, Andrey Lelikov, John Richard McDowell, Aaron Payne Goldsmid, Karan Singh Dhillon
  • Patent number: 8271803
    Abstract: A first process operating on a computer comprises code to be executed in connection therewith, where the code includes at least one triggering device. A digital license corresponds to the first process and sets forth terms and conditions for operating the first process. A second process operating on the computer proxy-executes code corresponding to each triggering device of the first process on behalf of such first process. The second process includes a selection of options to thwart reverse engineering by a debugger if a debugger is detected. The options include execution by a proxy engine of a re-routed call, crashing the first process, detection ad elimination of a debugger related interrupt a call to an arbitrary function.
    Type: Grant
    Filed: May 25, 2007
    Date of Patent: September 18, 2012
    Assignee: Microsoft Corporation
    Inventors: Aaron Payne Goldsmid, Nir Ben-Zvi, Sekhar P. Chintalapati, Karan Singh Dhillon, Nathan Ide, David John Linsley, Ping Xie
  • Patent number: 8010773
    Abstract: Restricting execution by a computing device of instructions within an application program. The application program is modified such that execution of the selected instructions is dependent upon a corresponding expected state of one or more hardware components in the computing device. In an embodiment, the application program is modified to place the hardware components in the expected states prior to execution of the corresponding selected instructions. Creating the dependency on the hardware components prevents the unintended or malicious execution of the selected instructions.
    Type: Grant
    Filed: June 24, 2008
    Date of Patent: August 30, 2011
    Assignee: Microsoft Corporation
    Inventors: Hakki Tunc Bostanci, Nathan Jeffrey Ide, Matthias Hermann Wollnik, John Richard McDowell, Karan Singh Dhillon, Aaron Payne Goldsmid
  • Publication number: 20090319761
    Abstract: Restricting execution by a computing device of instructions within an application program. The application program is modified such that execution of the selected instructions is dependent upon a corresponding expected state of one or more hardware components in the computing device. In an embodiment, the application program is modified to place the hardware components in the expected states prior to execution of the corresponding selected instructions. Creating the dependency on the hardware components prevents the unintended or malicious execution of the selected instructions.
    Type: Application
    Filed: June 24, 2008
    Publication date: December 24, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Hakki Tunc Bostanci, Nathan Jeffrey Ide, Matthias Hermann Wollnik, John Richard McDowell, Karan Singh Dhillon, Aaron Payne Goldsmid
  • Publication number: 20090293041
    Abstract: Methods and a tool or instrument for performing the methods of protecting a computer program with a parameter cloud are disclosed. A parameter cloud comprising a plurality of elements may be created. Called functions of a computer program may have defined expected parameter cloud states so that proper behavior of the called function is achieved when the parameter cloud state is the expected parameter cloud state. An expected parameter cloud state may include a selected set of elements of the parameter cloud having assigned values. Static portions of the called functions may depend on a current parameter cloud state, and calling functions may transform the parameter cloud state prior to calling their respective called functions. The methods and instrument may operate on original source code or post-binary targets of the computer program. A fingerprint may be used to identify a specific computer program from a sequence of state transitions.
    Type: Application
    Filed: May 20, 2008
    Publication date: November 26, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Matthias Wollnik, Nathan Ide, Andrey Lelikov, John Richard McDowell, Aaron Payne Goldsmid, Karan Singh Dhillon
  • Publication number: 20080229115
    Abstract: In an example embodiment, executable files are individually encrypted utilizing a symmetric cryptographic key. For each user to be given access to the obfuscated file, the symmetric cryptographic key is encrypted utilizing a public key of a respective public/private key pair. A different public key/private key pair is utilized for each user. Obfuscated files are formed comprising the encrypted executable files and a respective encrypted symmetric cryptographic key. The private keys of the public/private key pairs are stored on respective smart cards. The smart cards are distributed to the users. When a user wants to invoke the functionality of an obfuscated file, the user provides the private key via his/her smart card. The private key is retrieved and is utilized to decrypt the appropriate portion of the obfuscated file. The symmetric cryptographic key obtained therefrom is utilized to decrypt the encrypted executable file.
    Type: Application
    Filed: March 16, 2007
    Publication date: September 18, 2008
    Applicant: Microsoft Corporation
    Inventors: Matthias Hermann Wollnik, Nir Ben-Zvi, Aaron Goldsmid, Hakki Tunc Bostanci, Karan Singh Dhillon, Nathan Jeffrey Ide, John Richard McDowell, David John Linsley