Binary program instrumentation and debugging

US9817745B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9817745-B2
Application numberUS-201514595901-A
CountryUS
Kind codeB2
Filing dateJan 13, 2015
Priority dateJan 13, 2014
Publication dateNov 14, 2017
Grant dateNov 14, 2017

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.

Disclosed is a system and method for setting breakpoints (BPs) that cannot be detected by code being debugged, e.g., to trap transparently at any instruction. The disclosed system and method permits execution tracing and instrumentation of binaries, including malware. The system and method can be used to analyze benign software also, e.g., software obfuscated for anti-reverse-engineering. An invisible breakpoint (IBP) is not detectable by the “guest,” the program being debugged. Hardware virtualization is used to split the code and data views of the program's text segment(s).

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of setting a breakpoint at an address in a guest software program in a memory of a virtualized data-processing system, the method comprising automatically performing the following steps using a processor: a) locating a division of memory corresponding to the address; b) creating a copy of at least part of the contents of the division; c) modifying the contents of an instruction set of the division to set a breakpoint at the address; d) configuring an environment of the guest software program to permit executable but not readable access to the division; and e) installing an access violation handler so that: i) when the guest software program attempts to read at least some of the contents of the modified division, the processor will provide a data view using the copy of the division and configure the environment to permit readable but not executable access to the data view in place of the division; and ii) when the guest software program attempts to execute at least some of the contents of the division, the processor will configure the environment to provide a code view using the division having the modified contents which grants executable but not readable access. 2. The method according to claim 1 , wherein the permission settings of the division is not visible to the guest software program. 3. The method according to claim 2 , wherein a permission setting feature of the processor running the software is used to configure the permissions settings. 4. The method according to claim 1 , further comprising: a) using the processor, intercepting at least one breakpoint event, said interception is invisible to the guest software program. 5. The method of claim 4 , further comprising: a) using the processor, executing at least one breakpoint handler in the host, said executing invisible to the guest software program. 6. The method of claim 1 , wherein the guest software program is a malware program. 7. A system, comprising: a) a computer processor; b) a memory storage device coupled to the processor and comprising computer readable instructions for executing a method of setting a breakpoint at an address in a guest software program in the memory, the method comprising: i) locating a division of memory corresponding to the address; ii) creating a copy of at least part of the contents of the division; iii) modifying the contents of an instruction set of the division to set a breakpoint at the address; iv) configuring an environment of the guest software program to permit executable but not readable access to the division; and v) installing an access violation handler so that: A) when the guest software program attempts to read at least some of the contents of the modified division, the processor will provide a data view using the copy of the division and configure the environment to permit readable but not executable access to the data view in place of the division; and B) when the guest software program attempts to execute at least some of the contents of the division, the processor will configure the environment to provide a code view using the division having the modified contents which grants executable but not readable access. 8. The system of claim 7 , wherein the permission settings of the division is not visible to the guest software program. 9. The system of claim 8 , wherein a permission setting feature of the processor running the software is used to configure the permissions settings. 10. The system of claim 7 , the method further comprising: a) using the processor, intercepting at least one breakpoint event, said interception is invisible to the guest software program. 11. The system of claim 10 , the method further comprising: a) using the processor, executing at least one breakpoint handler in the host, said executing invisible to the guest software program. 12. The system of claim 7 , wherein the guest software program is a malware program.

Assignees

Inventors

Classifications

  • by tracing the execution of the program · CPC title

  • Test or assess software · CPC title

  • G06F11/362Primary

    Debugging of software · CPC title

  • G06F21/566Primary

    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 US9817745B2 cover?
Disclosed is a system and method for setting breakpoints (BPs) that cannot be detected by code being debugged, e.g., to trap transparently at any instruction. The disclosed system and method permits execution tracing and instrumentation of binaries, including malware. The system and method can be used to analyze benign software also, e.g., software obfuscated for anti-reverse-engineering. An in…
Who is the assignee on this patent?
Purdue Research Foundation
What technology area does this patent fall under?
Primary CPC classification G06F11/362. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 14 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).