IP Library Patent Application 18701946
Patent Application
App. No. 18/701,946

ANALYSIS FUNCTION IMPARTING METHOD, ANALYSIS FUNCTION IMPARTING DEVICE, AND ANALYSIS FUNCTION IMPARTING PROGRAM

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
18/701,946
Abstract

An analysis function providing method executed by an analysis function providing device includes first analyzing a virtual machine of a script engine, and acquiring a hook point that is a part where an analysis code is inserted by applying a hook, and a virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next, second analyzing an instruction set architecture that is a system of instructions of the virtual machine and acquiring a branch virtual machine instruction that is a virtual machine instruction that causes branch, and providing an analysis function by applying a hook, to the hook point of the script engine, the hook including processing of, when an exception has occurred, changing a destination pointed by the virtual program counter to a head of a basic block immediately after a basic block in which the exception has occurred.

Claims (33)

1 . An analysis function providing method executed by an analysis function providing device, the analysis function providing method comprising:

first analyzing a virtual machine of a script engine, and acquiring a hook point that is a part where an analysis code is inserted by applying a hook, and a virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next;

second analyzing an instruction set architecture that is a system of instructions of the virtual machine and acquiring a branch virtual machine instruction that is a virtual machine instruction that causes branch; and

providing an analysis function by applying a hook, to the hook point of the script engine, the hook including processing of, when an exception has occurred, changing a destination pointed by the virtual program counter to a head of a basic block immediately after a basic block in which the exception has occurred on a basis of the virtual program counter and the branch virtual machine instruction that are architecture information obtained by analysis.

2 . The analysis function providing method according to claim 1 , wherein

the providing includes:

first inserting, into a script to be analyzed, an exception handler having a function of transferring processing to a virtual machine area when occurrence of an exception is caught, and

second inserting a hook into the hook point of the script engine by using a hook handler including processing of changing the destination pointed by the virtual program counter to the head of the basic block immediately after the basic block in which the exception has occurred in the virtual machine area.

3 . The analysis function providing method according to claim 2 , wherein

the second analyzing includes:

first acquiring a virtual machine execution trace that is an execution trace executed in the virtual machine, the virtual machine execution trace recording a pointer of an executed virtual machine instruction handler in which a virtual machine opcode is virtually allocated as an identifier, and the virtual program counter, and

first detecting the branch virtual machine instruction by a variation in an amount of change in a virtual program counter for each virtual machine opcode of the virtual machine execution trace, and

the hook handler includes:

first processing of referring to a list of branch virtual machine instructions detected, detecting a branch virtual machine instruction from the virtual machine execution trace, and constructing a virtual machine branch trace associated with the virtual program counter before and after execution of the detected branch virtual machine instruction,

second processing of constructing a control flow graph in which the basic block is a node and a branch of the virtual machine branch trace is an edge using the virtual machine branch trace, and

third processing of, when the exception has occurred, determining which part of the control flow graph the exception corresponds to, and changing the destination pointed by the virtual program counter to the head of the basic block immediately after the basic block in which the exception has occurred.

4 . The analysis function providing method according to claim 3 , wherein

the first analyzing includes:

acquiring a plurality of execution traces while changing a condition at a time of execution,

analyzing the execution trace and detecting the hook point,

clustering the execution traces to detect a boundary of each virtual machine instruction,

analyzing the plurality of execution traces using differential execution analysis focusing on a number of times of reading a memory and a boundary of each virtual machine instruction detected and detecting the virtual program counter, and

analyzing a binary of a script engine and detecting a dispatcher on a basis of a boundary of each virtual instruction detected.

5 . The analysis function providing method according to claim 1 , wherein the first analyzing and the second analyzing include performing analysis using a test script.

6 . An analysis function providing device comprising:

processing circuitry configured to:

analyze a virtual machine of a script engine, and acquire a hook point that is a part where an analysis code is inserted by applying a hook, and a virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next;

analyze an instruction set architecture that is a system of instructions of the virtual machine and acquire a branch virtual machine instruction that is a virtual machine instruction that causes branch; and

provide an analysis function by applying a hook, to the hook point of the script engine, the hook including processing of, when an exception has occurred, changing a destination pointed by the virtual program counter to a head of a basic block immediately after a basic block in which the exception has occurred on a basis of the virtual program counter and the branch virtual machine instruction that are architecture information obtained by analysis.

7 . A non-transitory computer-readable recording medium storing therein an analysis function providing program that causes a computer to execute a process comprising:

first analyzing a virtual machine of a script engine, and acquiring a hook point that is a part where an analysis code is inserted by applying a hook, and a virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next;

second analyzing an instruction set architecture that is a system of instructions of the virtual machine and acquiring a branch virtual machine instruction that is a virtual machine instruction that causes branch; and

providing an analysis function by applying a hook, to the hook point of the script engine, the hook including processing of, when an exception has occurred, changing a destination pointed by the virtual program counter to a head of a basic block immediately after a basic block in which the exception has occurred on a basis of the virtual program counter and the branch virtual machine instruction that are architecture information obtained by analysis.

Assignments (2)
CHANGE OF NAME Recorded Aug 20, 2025
From: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
To: NTT, INC.
Reel/Frame 072556/0180 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2024
From: USUI, TOSHINORI; IKUSE, TOMONORI; KAWAKOYA, YUHEI; IWAMURA, MAKOTO
To: NIPPON TELEGRAPH AND TELEPHONE CORPORATION
Reel/Frame 067131/0907 →