Controlling execution of binary code
AssigneeInternational Business Machines Corporation
InventorsMotohiro Kawahito, Toshihiko Koju, Xin Tong
Life of this patent
Estimating the term…
Abstract
An apparatus for controlling an execution of a binary code by multiple threads includes a detection unit configured to detect an occurrence of modification of a first part that is a part of a first binary code by a self-modifying code; a specifying unit configured to specify a second part that is a part corresponding to the first part in a second binary code acquired by converting the first binary code, in response to detection of the occurrence of modification of the first part by the self-modifying code; and a correction unit configured to correct the second part such that a specific thread that executes the second part of the second binary code among the multiple threads causes an exception.
Claims9
An apparatus for controlling an execution of a binary code by multiple threads, comprising a central processing unit that is configured to:
- detect an occurrence of modification of a first part that is a part of a first binary code by a self-modifying code;
- specify a second part that is a part corresponding to the first part in a second binary code acquired by converting the first binary code, in response to detection of the occurrence of modification of the first part by the self-modifying code;
- to correct the second part such that a specific thread that executes the second part of the second binary code among the multiple threads causes an exception;
- and
- to maintain a state where a page which is a memory area to store at least part of the first part and include an instruction modified by the self-modifying code is mapped to a virtual page to which page protection is not applied and which is not used, while specifying the second part and correcting the second part.
An apparatus for controlling an execution of a binary code by multiple threads, comprising a central processing unit configured to:
- generate an optimized binary code by optimizing an original binary code;
- detect an occurrence of modification of a first part that is a part of the original binary code by a self-modifying code while multiple threads execute the optimized binary code;
- specify a second part that is a part corresponding to the first part in the optimized binary code, in response to detection of the occurrence of modification of the first part by the self-modifying code;
- correct the second part such that a specific thread that executes the second part of the optimized binary code among the multiple threads causes an exception;
- perform control such that the specific thread executes the first part of the original binary code modified by the self-modifying code when the exception occurs;
- and
- maintain a state where a page which is a memory area to store at least part of the first part and include an instruction modified by the self-modifying code is mapped to a virtual page to which page protection is not applied and which is not used, while specifying the second part and correcting the second part.
A non-transitory, computer readable storage medium having computer readable instructions stored thereon that, when executed by a computer, implement a method of controlling an execution of a binary code by multiple threads, the method comprising:
- detecting an occurrence of modification of a first part that is a part of a first binary code by a self-modifying code;
- specifying a second part that is a part corresponding to the first part in a second binary code acquired by converting the first binary code, in response to detection of the occurrence of modification of the first part by the self-modifying code;
- correcting the second part such that a specific thread that executes the second part of the second binary code among the multiple threads causes an exception;
- and
- maintaining a state where a page which is a memory area to store at least part of the first part and include an instruction modified by the self-modifying code is mapped to a virtual page to which page protection is not applied and which is not used, while specifying the second part and correcting the second part.
Dependencies are inferred from the claim text.