JP6400794B2 - インタプリタによるコード実行のシステム及び方法 - Google Patents
インタプリタによるコード実行のシステム及び方法 Download PDFInfo
- Publication number
- JP6400794B2 JP6400794B2 JP2017126083A JP2017126083A JP6400794B2 JP 6400794 B2 JP6400794 B2 JP 6400794B2 JP 2017126083 A JP2017126083 A JP 2017126083A JP 2017126083 A JP2017126083 A JP 2017126083A JP 6400794 B2 JP6400794 B2 JP 6400794B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- interpreter
- execution
- program code
- auxiliary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
Claims (20)
- インタプリタによるプログラムコード実行の方法であって、工程A〜Eを含み、
前記工程Aでは、エミュレートされたコンピュータ環境においてインタプリタがプログラムコードの命令を実行し、
前記工程Bでは、前記インタプリタに解釈規則の無い未知のオブジェクトに関連する前記プログラムコードの命令を前記インタプリタが検出したときに、前記インタプリタは前記プログラムコードの命令のさらなる実行を停止し、
前記工程Cでは、前記未知のオブジェクトの実行結果に対応する実行結果を有する補助コードであって、インタプリタが解釈規則を有する既知のオブジェクトを含むものを前記インタプリタが取得し、
前記工程Dでは、前記インタプリタが前記補助コードの命令を実行し、
前記工程Eでは、前記補助コードの実行が完了した後に、前記インタプリタが前記プログラムコードの命令の実行を再開する、
方法。 - 前記オブジェクトは、プロシージャ、クラスのインスタンス、クラスのインスタンスのメソッド又は変数、スクリプト、ファイル、補助コードのうちの1つである、請求項1に記載の方法。
- 前記補助コードは、前記エミュレートされたコンピュータ環境から取得される、請求項1に記載の方法。
- 前記補助コードは、ローカルデータベース又はリモートデータベースから取得される、請求項1に記載の方法。
- 前記インタプリタの実行環境は、前記補助コードのために初期化される、請求項1に記載の方法。
- 前記プログラムコードの実行及び前記補助コードの実行は、前記プログラムコードの字句解析の実行、前記プログラムコードの構文解析の実行、中間コードの生成、解釈規則に従った中間コードの解釈、のうちの1つ以上を含む、請求項1に記載の方法。
- 前記補助コードは、他の補助コードが取得される少なくとも1つの他の未知のオブジェクトをさらに含み、前記他の補助コードの実行結果は、前記他の未知のオブジェクトの実行結果に対応する、請求項1に記載の方法。
- 前記解釈されたプログラムコードのアンチウィルスチェックを実行する工程をさらに含む、請求項1に記載の方法。
- インタプリタによりプログラムコードを実行するシステムであって、エミュレートされたコンピュータ環境においてインタプリタを実行するハードウェアプロセッサを含み、
前記インタプリタは、
前記プログラムコードの命令を実行し、
前記インタプリタに解釈規則の無い未知のオブジェクトに関連する前記プログラムコードの命令を前記インタプリタが検出したときに、前記インタプリタは前記プログラムコードの命令のさらなる実行を停止し、
前記未知のオブジェクトの実行結果に対応する実行結果を有する補助コードであってインタプリタが解釈規則を有する既知のオブジェクトを含むものを前記インタプリタが取得し、
前記インタプリタが前記補助コードの命令を実行し、
前記補助コードの実行が完了した後に、前記インタプリタが前記プログラムコードの命令の実行を再開するように構成されているシステム。 - 前記オブジェクトは、プロシージャ、クラスのインスタンス、クラスのインスタンスのメソッド又は変数、スクリプト、ファイル、補助コードのうちの1つである、請求項9に記載のシステム。
- 前記補助コードは、前記エミュレートされたコンピュータ環境から取得される、請求項9に記載のシステム。
- 前記補助コードは、ローカルデータベース又はリモートデータベースから取得される、請求項9に記載のシステム。
- 前記インタプリタの実行環境は、前記補助コードに対して初期化される、請求項9に記載のシステム。
- 前記プログラムコードの実行及び前記補助コードの実行は、前記プログラムコードの字句解析の実行、前記プログラムコードの構文解析の実行、中間コードの生成、解釈規則に従った中間コードの解釈、のうちの1つ以上を含む、請求項9に記載のシステム。
- 前記補助コードは、他の補助コードが取得される少なくとも1つの他の未知のオブジェクトをさらに含み、前記他の補助コードの実行結果は、前記他の未知のオブジェクトの実行結果に対応する、請求項9に記載のシステム。
- 前記解釈されたプログラムコードのアンチウィルスチェックを実行する工程をさらに含む、請求項9に記載のシステム。
- インタプリタによってプログラムコードを実行するためのコンピュータ実行可能命令を格納する非一過性の記録媒体であって、命令A〜Eを含み、
前記命令Aは、エミュレートされたコンピュータ環境においてインタプリタがプログラムコードの命令を実行させ、
前記命令Bは、前記インタプリタに解釈規則の無い未知のオブジェクトに関連する前記プログラムコードの命令を前記インタプリタが検出したときに、前記インタプリタが前記プログラムコードの命令のさらなる実行を停止させ、
前記命令Cでは、前記未知のオブジェクトの実行結果に対応する実行結果を有する補助コードであってインタプリタが解釈規則を有する既知のオブジェクトを含むものを前記インタプリタが取得させ、
前記命令Dでは、前記インタプリタが前記補助コードの命令を実行させ、
前記命令Eでは、前記補助コードの実行が完了した後に、前記インタプリタが前記プログラムコードの命令の実行を再開させる、
記録媒体。 - 前記補助コードは、前記エミュレートされたコンピュータ環境から取得される、請求項17に記載の記録媒体。
- 前記補助コードは、ローカルデータベース又はリモートデータベースから取得される、請求項17に記載の記録媒体。
- 前記プログラムコードの実行及び前記補助コードの実行は、前記プログラムコードの字句解析の実行、前記プログラムコードの構文解析の実行、中間コードの生成、解釈規則に従った中間コードの解釈、のうちの1つ以上を含む、請求項17に記載の記録媒体。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2016148489A RU2634171C1 (ru) | 2016-12-12 | 2016-12-12 | Способ выполнения кода интерпретатором |
| RU2016148489 | 2016-12-12 | ||
| US15/446,157 | 2017-03-01 | ||
| US15/446,157 US10275597B2 (en) | 2016-12-12 | 2017-03-01 | System and method of execution of code by an interpreter |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018097841A JP2018097841A (ja) | 2018-06-21 |
| JP6400794B2 true JP6400794B2 (ja) | 2018-10-03 |
Family
ID=60153948
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017126083A Active JP6400794B2 (ja) | 2016-12-12 | 2017-06-28 | インタプリタによるコード実行のシステム及び方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US10275597B2 (ja) |
| JP (1) | JP6400794B2 (ja) |
| CN (1) | CN108228312B (ja) |
| RU (1) | RU2634171C1 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110321699A (zh) * | 2019-05-22 | 2019-10-11 | 北京瀚海思创科技有限公司 | 一种基于数据监测保护业务系统安全的系统及方法 |
| CN111198689B (zh) * | 2019-12-30 | 2023-04-28 | 北京明略软件系统有限公司 | 一种代码执行方法、装置及计算机可读存储介质 |
| US20240111555A1 (en) * | 2022-10-04 | 2024-04-04 | International Business Machines Corporation | Unknown object sub-class identification |
| CN115878127A (zh) * | 2022-11-17 | 2023-03-31 | 北京思明启创科技有限公司 | python解释器的输入信号确定方法、装置、设备及介质 |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5930145A (ja) * | 1982-08-12 | 1984-02-17 | Fujitsu Ltd | 動的プログラム修正による再実行処理方式 |
| US5678032A (en) * | 1995-09-06 | 1997-10-14 | Bull Hn Information Systems Inc. | Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units |
| US7058932B1 (en) * | 1999-04-19 | 2006-06-06 | Unisys Corporation | System, computer program product, and methods for emulation of computer programs |
| US7039904B2 (en) * | 2001-08-24 | 2006-05-02 | Sun Microsystems, Inc. | Frameworks for generation of Java macro instructions for storing values into local variables |
| CN100390781C (zh) * | 2002-05-28 | 2008-05-28 | 德罗普莱特科技公司 | 用于堆处理并行处理器的系统及方法 |
| US20040044988A1 (en) | 2002-08-29 | 2004-03-04 | Schene Christopher Robin | Generation of compiled code for simulator speed up |
| US7664626B1 (en) * | 2006-03-24 | 2010-02-16 | Symantec Corporation | Ambiguous-state support in virtual machine emulators |
| US20080083012A1 (en) * | 2006-06-26 | 2008-04-03 | Dachuan Yu | Program instrumentation method and apparatus for constraining the behavior of embedded script in documents |
| US8151352B1 (en) * | 2006-07-14 | 2012-04-03 | Bitdefender IPR Managament Ltd. | Anti-malware emulation systems and methods |
| JP2008027306A (ja) * | 2006-07-24 | 2008-02-07 | Aplix Corp | ユーザ空間仮想化システム |
| US8763125B1 (en) * | 2008-09-26 | 2014-06-24 | Trend Micro, Inc. | Disabling execution of malware having a self-defense mechanism |
| US20110035732A1 (en) * | 2009-08-06 | 2011-02-10 | Wynne Crisman | Method and apparatus for defining and compiling or converting language and user interface system agnostic view definitions to runnable code |
| EP2306356B1 (en) | 2009-10-01 | 2019-02-27 | Kaspersky Lab, ZAO | Asynchronous processing of events for malware detection |
| RU101217U1 (ru) * | 2010-03-02 | 2011-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система ускорения эмуляции процессов |
| US9501644B2 (en) * | 2010-03-15 | 2016-11-22 | F-Secure Oyj | Malware protection |
| RU2454714C1 (ru) * | 2010-12-30 | 2012-06-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов |
| US8997233B2 (en) * | 2011-04-13 | 2015-03-31 | Microsoft Technology Licensing, Llc | Detecting script-based malware using emulation and heuristics |
| CN102262537B (zh) * | 2011-07-21 | 2014-10-29 | 复旦大学 | 一种工作于混合模式执行引擎中的异常处理方法 |
| US9063760B2 (en) * | 2011-10-13 | 2015-06-23 | International Business Machines Corporation | Employing native routines instead of emulated routines in an application being emulated |
| RU2514141C1 (ru) * | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции |
| US9680864B2 (en) * | 2013-06-18 | 2017-06-13 | Empire Technology Development Llc | Remediating rogue applications |
| RU2553056C2 (ru) * | 2013-10-24 | 2015-06-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ сохранения состояния эмулятора и его последующего восстановления |
| US10606965B2 (en) * | 2014-07-18 | 2020-03-31 | Leviathan Security Group, Inc. | System and method for emulation of unprivileged code in a simulated environment |
| US10242190B2 (en) * | 2014-07-23 | 2019-03-26 | Leviathan Security Group, Inc. | System and method for detection of malicious code by iterative emulation of microcode |
-
2016
- 2016-12-12 RU RU2016148489A patent/RU2634171C1/ru active
-
2017
- 2017-03-01 US US15/446,157 patent/US10275597B2/en active Active
- 2017-06-14 CN CN201710447504.1A patent/CN108228312B/zh active Active
- 2017-06-28 JP JP2017126083A patent/JP6400794B2/ja active Active
-
2019
- 2019-03-08 US US16/296,869 patent/US10579799B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN108228312B (zh) | 2021-11-05 |
| CN108228312A (zh) | 2018-06-29 |
| US20190205538A1 (en) | 2019-07-04 |
| JP2018097841A (ja) | 2018-06-21 |
| US10275597B2 (en) | 2019-04-30 |
| US10579799B2 (en) | 2020-03-03 |
| US20180165450A1 (en) | 2018-06-14 |
| RU2634171C1 (ru) | 2017-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2665911C2 (ru) | Система и способ анализа файла на вредоносность в виртуальной машине | |
| EP2420931A1 (en) | Solving hybrid constraints to generate test cases for validating a software module | |
| US9507933B2 (en) | Program execution apparatus and program analysis apparatus | |
| US9710370B2 (en) | Automated testing of shell scripts | |
| US20170192756A1 (en) | Automatic classification of compilers | |
| CN113312618B (zh) | 程序漏洞检测方法、装置、电子设备及介质 | |
| JP6568564B2 (ja) | ファイルのウイルス対策スキャン実行のため仮想マシン上にログを生成するシステム及び方法 | |
| US10579799B2 (en) | System and method for execution of objects lacking rules of interpretation | |
| JP6313384B2 (ja) | アンチウィルス判定の最適化のためのシステム及び方法 | |
| US20190243976A1 (en) | System and method for categorization of .net applications | |
| US9098704B2 (en) | Method for function capture and maintaining parameter stack | |
| WO2025139465A1 (zh) | 反弹shell检测方法、装置、电子设备及存储介质 | |
| US20170090885A1 (en) | Automatic determination of compiler configuration | |
| US11507353B1 (en) | Adapting pre-compiled eBPF programs at runtime for the host kernel by offset inference | |
| KR20210045122A (ko) | 기호 실행을 사용하는 소프트웨어 테스트 입력 생성 장치 및 방법 | |
| RU2649794C1 (ru) | Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла | |
| EP3333746B1 (en) | System and method of execution of code by an interpreter | |
| US10838748B2 (en) | System and method of emulating execution of files based on emulation time | |
| KR102323621B1 (ko) | 펌웨어 퍼징 장치 및 방법 | |
| KR102305386B1 (ko) | 펌웨어 퍼징 장치 및 방법 | |
| JP7355211B2 (ja) | シグネチャ生成装置、シグネチャ生成方法およびシグネチャ生成プログラム | |
| US12417289B2 (en) | Systems and methods for detecting malware in obfuscated scripts | |
| Han et al. | An Effective Docker Image Slimming Approach Based on Source Code Data Dependency Analysis | |
| CN119397544A (zh) | 智能合约静态分析方法及装置 | |
| EP3444737B1 (en) | System and method of emulating execution of files |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180904 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180905 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6400794 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |