Detecting program evasion of virtual machines or emulators

US9984231B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9984231-B2
Application numberUS-201514937949-A
CountryUS
Kind codeB2
Filing dateNov 11, 2015
Priority dateNov 11, 2015
Publication dateMay 29, 2018
Grant dateMay 29, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Various embodiments include methods implemented on a computing device for analyzing a program executing within a virtual environment on the computing device. The methods may include determining whether the program is attempting to detect whether it is being executed within the virtual environment, and analyzing the program within a protected mode of the computing device in response to determining that the program is attempting to detect whether it is being executed within the virtual environment.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for analyzing a program executing within a virtual environment on a computing device, comprising: determining whether the program is attempting to detect whether the program is being executed within the virtual environment; and in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment: terminating the program during execution within the virtual environment; re-executing the program in a protected mode of the computing device; and analyzing the program within the protected mode of the computing device. 2. The method of claim 1 , wherein the protected mode is a system management mode. 3. The method of claim 1 , further comprising continuing analysis of the program within the virtual environment in response to determining that the program is not attempting to detect whether the program is being executed within the virtual environment. 4. The method of claim 1 , wherein determining whether the program is attempting to detect whether the program is being executed within the virtual environment comprises: monitoring access of the program to application programming interface (API) properties of the virtual environment. 5. The method of claim 4 , wherein the API properties include at least one member selected from the group consisting of a model specific register, a length of an instruction, a store interrupt descriptor table register, a debugger function, and an instruction for host-guest communication. 6. The method of claim 1 , wherein the virtual environment comprises a virtual machine or an emulator. 7. A computing device, comprising: a hardware processor configured with processor-executable instructions to: determine whether a program executing within a virtual environment on the computing device is attempting to detect whether the program is being executed within the virtual environment; and in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment: terminate the program during execution within the virtual environment; re-execute the program in a protected mode of the computing device; and analyze the program within the protected mode of the computing device. 8. The computing device of claim 7 , wherein the protected mode is a system management mode. 9. The computing device of claim 7 , wherein the hardware processor is further configured with processor-executable instructions to continue analysis of the program within the virtual environment in response to determining that the program is not attempting to detect whether the program is being executed within the virtual environment. 10. The computing device of claim 7 , wherein the hardware processor is configured with processor-executable instructions to determine whether the program is attempting to detect whether the program is being executed within the virtual environment by: monitoring access of the program to application programming interface (API) properties of the virtual environment. 11. The computing device of claim 10 , wherein the API properties include at least one member selected from the group consisting of a model specific register, a length of an instruction, a store interrupt descriptor table register, a debugger function, and an instruction for host-guest communication. 12. The computing device of claim 7 , wherein the virtual environment comprises a virtual machine or an emulator. 13. A non-transitory computer readable storage medium having stored thereon processor-executable software instructions configured to cause a processor of a computing device to perform operations comprising: determining whether a program executing within a virtual environment on the computing device is attempting to detect whether the program is being executed within the virtual environment; and in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment: terminating the program during execution within the virtual environment; re-executing the program in a protected mode of the computing device; and analyzing the program within the protected mode of the computing device. 14. The non-transitory computer readable storage medium of claim 13 , wherein the protected mode is a system management mode. 15. The non-transitory computer readable storage medium of claim 13 , wherein the stored processor-executable software instructions are configured to cause the processor to perform operations further comprising continuing analysis of the program within the virtual environment in response to determining that the program is not attempting to detect whether the program is being executed within the virtual environment. 16. The non-transitory computer readable storage medium of claim 13 , wherein the stored processor-executable software instructions are further configured to cause the processor to perform operations such that determining whether the program is attempting to detect whether the program is being executed within the virtual environment comprises: monitoring access of the program to application programming interface (API) properties of the virtual environment. 17. The non-transitory computer readable storage medium of claim 16 , wherein the API properties include at least one member selected from the group consisting of a model specific register, a length of an instruction, a store interrupt descriptor table register, a debugger function, and an instruction for host-guest communication. 18. The non-transitory computer readable storage medium of claim 13 , wherein the virtual environment comprises a virtual machine or an emulator. 19. A computing device, comprising: means for determining whether a program executing within a virtual environment on the computing device is attempting to detect whether the program is being executed within the virtual environment; means for terminating the program during execution within the virtual environment in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment; means for re-executing the program in a protected mode of the computing device in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment; and means for analyzing the program within the protected mode of the computing device in response to determining that the program is attempting to detect whether the program is being executed within the virtual environment. 20. The computing device of claim 19 , wherein the protected mode is a system management mode. 21. The computing device of claim 19 , further comprising means for continuing analysis of the program within the virtual environment in response to determining that the program is not attempting to detect whether the program is being executed within the virtual environment. 22. The computing device of claim 19 , wherein the means for determining whether the program is attempting to detect whether the program is being executed within the virtual environment comprises: means for monitoring access of the program to application programming interface (API) properties of the virtual environment. 23. The computing device of claim 22 , wherein the API properties include at least one member selected from the group consisting of a model

Assignees

Inventors

Classifications

  • Dual mode as a secondary aspect · CPC title

  • G06F21/53Primary

    by executing in a restricted environment, e.g. sandbox or secure virtual machine · CPC title

  • Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9984231B2 cover?
Various embodiments include methods implemented on a computing device for analyzing a program executing within a virtual environment on the computing device. The methods may include determining whether the program is attempting to detect whether it is being executed within the virtual environment, and analyzing the program within a protected mode of the computing device in response to determini…
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/53. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 29 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).