Patents by Inventor Aaron Goldsmid

Aaron Goldsmid 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: 8522015
    Abstract: Presented is an anti-tampering method that validates and protects specific sections of a binary file. In one embodiment, this method permits a proxy engine to execute (via emulation by a virtual machine) the protected code on behalf of the binary in kernel mode upon successful completion of an integrity check. The integrity check can optionally check only the specific parts of code that the developer wishes to validate. The integrity check can cross binary boundaries. Moreover, the integrity check can be done on a hard drive or in memory. Furthermore, since the encrypted code is executed by the proxy engine in kernel mode, hackers are further deterred from modifying the code. Additionally, a method of creating a protected binary file is described herein.
    Type: Grant
    Filed: June 27, 2008
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventors: Aaron Goldsmid, Ping Xie, Scott Miller, Nir Ben Zvi, Nathan Jeffrey Ide, Manoj R. Mehta
  • Patent number: 8001596
    Abstract: A method to apply a protection mechanism to a binary object includes using operating system resources to load a binary object from a storage medium along with a manifest and a digital signature. Authentication of the binary object is performed using the digital signature and the manifest is read to determine a category of protection for the binary object. The operating system selects a protection mechanism corresponding to the protection category and injects protection mechanism code, along with the binary object into a binary image on computer RAM. When the binary image is accessed, the protection mechanism executes and either allows full access and functionality to the binary object or prevents proper access and operation of the binary object. The protection mechanisms may be updated independently from the information on the storage medium.
    Type: Grant
    Filed: May 3, 2007
    Date of Patent: August 16, 2011
    Assignee: Microsoft Corporation
    Inventors: Matthias Wollnik, Nir Ben Zvi, Hakki Tunc Bostanci, John Richard McDowell, Aaron Goldsmid
  • Publication number: 20090327711
    Abstract: Presented is an anti-tampering method that validates and protects specific sections of a binary file. In one embodiment, this method permits a proxy engine to execute (via emulation by a virtual machine) the protected code on behalf of the binary in kernel mode upon successful completion of an integrity check. The integrity check can optionally check only the specific parts of code that the developer wishes to validate. The integrity check can cross binary boundaries. Moreover, the integrity check can be done on a hard drive or in memory. Furthermore, since the encrypted code is executed by the proxy engine in kernel mode, hackers are further deterred from modifying the code. Additionally, a method of creating a protected binary file is described herein.
    Type: Application
    Filed: June 27, 2008
    Publication date: December 31, 2009
    Applicant: Microsoft Corporation
    Inventors: Aaron Goldsmid, Ping Xie, Scott Miller, Nir Ben Zvi, Nathan Jeffrey Ide, Manoj R. Mehta
  • Publication number: 20080276314
    Abstract: A method to apply a protection mechanism to a binary object includes using operating system resources to load a binary object from a storage medium along with a manifest and a digital signature. Authentication of the binary object is performed using the digital signature and the manifest is read to determine a category of protection for the binary object. The operating system selects a protection mechanism corresponding to the protection category and injects protection mechanism code, along with the binary object into a binary image on computer RAM. When the binary image is accessed, the protection mechanism executes and either allows full access and functionality to the binary object or prevents proper access and operation of the binary object. The protection mechanisms may be updated independently from the information on the storage medium.
    Type: Application
    Filed: May 3, 2007
    Publication date: November 6, 2008
    Applicant: Microsoft Corporation
    Inventors: MATTHIAS WOLLNIK, Nir Ben-Zvi, Hakki Tunc Bostanci, John Richard McDowell, Aaron Goldsmid
  • 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
  • Publication number: 20070234430
    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: Application
    Filed: May 25, 2007
    Publication date: October 4, 2007
    Applicant: Microsoft Corporation
    Inventors: Aaron Goldsmid, Nir Ben-Zvi, Sekhar Chintalapati, Karan Dhillon, Nathan Ide, David Linsley, Ping Xie
  • Publication number: 20070101131
    Abstract: A security flag stored in a trusted store is utilized to determine if the trusted store has been subjected to tampering. The security flag is indicative of a globally unique identifier (GUID), the version of the trusted store, and a counter. The security flag is created when the trusted store is created. Each time a critical event occurs, the security flag is updated to indicate the occurrence thereof. The security flag also is stored in a write-once portion of the system registry. At appropriate times, the security flag stored in the trusted store is compared with the corresponding security flag stored in the write-once registry. If the security flags match within a predetermined tolerance, it is determined that the trusted store has not been subjected to tampering. If the security flags do not match, or if a security flag is missing, it is determined that the trusted store has been subjected to tampering.
    Type: Application
    Filed: November 1, 2005
    Publication date: May 3, 2007
    Applicant: Microsoft Corporation
    Inventors: Ivan Davtchev, Karan Dhillon, Nir Zvi, Aaron Goldsmid, Ping Xie, Yifat Sagiv