IP Library Granted Patent US 12,705,059
Granted Patent B2
US 12,705,059 · App. 18/701,944 · Granted Aug 11, 2026

Analysis function imparting method, analysis function imparting device, and analysis function imparting program

Inventors: Toshinori Usui (Musashino, JP); Tomonori Ikuse (Musashino, JP); Yuhei Kawakoya (Musashino, JP); Makoto Iwamura (Musashino, JP)
Assignee: NTT, Inc.
G06F9/321G06F9/30058
View Patent ↗
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 12,705,059
App. No.
18/701,944
Filed
Apr 17, 2024
Granted
Aug 11, 2026
Kind
B2
Art Unit
2493
USPC
726/26
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 virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next and a conditional branch flag that is an area for holding a flag as to whether or not branch is made at a time of conditional branch in an execution state, and providing an analysis function to the script engine by applying a hook including processing of detecting an instruction sequence a number of times of repeated execution of which is greater than or equal to a threshold and stopping execution of the instruction sequence by rewriting a condition related to a conditional branch at an end of the instruction sequence on a basis of the virtual program counter and the conditional branch flag.

Claims (13)

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 virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next and a conditional branch flag that is an area for holding a flag as to whether or not branch is made at a time of conditional branch in an execution state; and

providing an analysis function to the script engine by applying a hook including processing of detecting an instruction sequence a number of times of repeated execution of which is greater than or equal to a threshold and stopping execution of the instruction sequence by rewriting a condition related to a conditional branch at an end of the instruction sequence on a basis of the virtual program counter and the conditional branch flag that are architecture information obtained by the first analyzing.

2 . The analysis-function-providing method according to claim 1 , provides an analysis function by applying a hook including processing of detecting an arrangement of a same VPC repeatedly executed twice or more as the instruction sequence.

3 . 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 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 to the script engine by applying a hook including processing of constructing a virtual machine branch trace associated with the virtual program counter before and after execution of a branch virtual machine instruction, detecting an instruction sequence in which a repetition mode satisfies a predetermined condition, and stopping execution of the instruction sequence by rewriting a condition related to a conditional branch at an end of the instruction sequence on a basis of the virtual program counter that is architecture information obtained by the first analyzing and the second analyzing.

4 . The analysis-function-providing method according to claim 1 , wherein the first analyzing performs analysis using a test script.

5 . An analysis-function-providing device comprising:

processing circuitry configured to:

analyze a virtual machine of a script engine and acquire a virtual program counter that is a variable indicating an instruction of the virtual machine to be executed next and a conditional branch flag that is an area for holding a flag as to whether or not branch is made at a time of conditional branch in an execution state; and

provide an analysis function to the script engine by applying a hook including processing of detecting an instruction sequence a number of times of repeated execution of which is greater than or equal to a threshold and stopping execution of the instruction sequence by rewriting a condition related to a conditional branch at an end of the instruction sequence on a basis of the virtual program counter and the conditional branch flag that are architecture information obtained by analysis of the virtual machine.

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 067134/0906 →
Continuity (1)
Related Publication 20250231768A1 · Jul 17, 2025
References Cited (41)
US 5522053A · Yoshida · 1996 [cited by examiner]
US 5903718A · Marik · 1999 [cited by examiner]
US 6687813B1 · Norman · 2004 [cited by examiner]
US 6889320B1 · Davis · 2005 [cited by examiner]
US 20030212561A1 · Williams · 2003 [cited by examiner]
US 20050055544A1 · Gaertner · 2005 [cited by examiner]
US 20050216712A1 · Butcher · 2005 [cited by examiner]
US 20060155962A1 · Piry · 2006 [cited by examiner]
US 20100205415A1 · Henry · 2010 [cited by examiner]
US 20120084759A1 · Candea · 2012 [cited by examiner]
US 20120204007A1 · Reid · 2012 [cited by examiner]
US 20120260073A1 · Henry · 2012 [cited by examiner]
US 20130339680A1 · Greiner · 2013 [cited by examiner]
US 20130339796A1 · Greiner · 2013 [cited by examiner]
US 20150220344A1 · Siciliani · 2015 [cited by examiner]
US 20150339480A1 · Lutas · 2015 [cited by examiner]
US 20150347147A1 · Gschwind · 2015 [cited by examiner]
US 20150347148A1 · Gschwind · 2015 [cited by examiner]
US 20170116418A1 · Shanmugavelayutham · 2017 [cited by examiner]
US 20170277539A1 · Robinson · 2017 [cited by examiner]
US 20170365237A1 · Koneru · 2017 [cited by examiner]
US 20180189062A1 · Baghsorkhi · 2018 [cited by examiner]
US 20190012174A1 · Grant · 2019 [cited by examiner]
US 20190079770A1 · Grocutt · 2019 [cited by examiner]
US 20190220596A1 · Lie · 2019 [cited by examiner]
US 20190235873A1 · Dundas · 2019 [cited by examiner]
US 20190265976A1 · Goryavskiy · 2019 [cited by examiner]
US 20190370001A1 · Teyssier · 2019 [cited by examiner]
US 20200125364A1 · Österlund · 2020 [cited by examiner]
US 20200210190A1 · Hensley · 2020 [cited by examiner]
US 20200257551A1 · Magklis · 2020 [cited by examiner]
US 20220342673A1 · Wang · 2022 [cited by examiner]
US 20240411557A1 · Usui · 2024 [cited by examiner]
US 20250231768A1 · Usui · 2025 [cited by examiner]
US 20250231786A1 · Usui · 2025 [cited by examiner]
Saxena et al., “A Symbolic Execution Framework for JavaScript”, 2010 IEEE Symposium on Security and Privacy, May 16-19, 2010, pp. 513-528. [cited by applicant]
Kim et al., “J-Force: Forced Execution on JavaScript”, 2017 International World Wide Web Conference Committee (IW3C2), Apr. 3-7, 2017, pp. 897-906. [cited by applicant]
Bucur et al., “Prototyping Symbolic Execution Engines for Interpreted Languages”, School of Computer and Communication Sciences, Feb. 24, 2014, 108 pages. [cited by applicant]
Sharif et al., “Automatic Reverse Engineering of Malware Emulators”, 2009 30th IEEE Symposium on Security and Privacy, May 17-20, 2009, pp. 94-109. [cited by applicant]
Usui et al., “Automatically Appending Multi-Path Execution Functionality to Vanilla Script Engines”, CSS 2019 Conference, 8 pages including English Abstract. [cited by applicant]
Kolbitsch et al., “The Power of Procrastination: Detection and Mitigation of Execution-Stalling Malicious Code”, CSS'11, Oct. 17-21, 2011, pp. 285-296. [cited by applicant]