RU2013147291A - Система и способ сохранения состояния эмулятора и его последующего восстановления - Google Patents

Система и способ сохранения состояния эмулятора и его последующего восстановления Download PDF

Info

Publication number
RU2013147291A
RU2013147291A RU2013147291/08A RU2013147291A RU2013147291A RU 2013147291 A RU2013147291 A RU 2013147291A RU 2013147291/08 A RU2013147291/08 A RU 2013147291/08A RU 2013147291 A RU2013147291 A RU 2013147291A RU 2013147291 A RU2013147291 A RU 2013147291A
Authority
RU
Russia
Prior art keywords
emulation
file
emulator
images
necessary
Prior art date
Application number
RU2013147291/08A
Other languages
English (en)
Other versions
RU2553056C2 (ru
Inventor
Владислав Валерьевич Пинтийский
Сергей Юрьевич Белов
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2013147291/08A priority Critical patent/RU2553056C2/ru
Priority to US14/221,488 priority patent/US9111096B2/en
Priority to DE202014011116.2U priority patent/DE202014011116U1/de
Priority to EP20140163292 priority patent/EP2866167A1/en
Publication of RU2013147291A publication Critical patent/RU2013147291A/ru
Application granted granted Critical
Publication of RU2553056C2 publication Critical patent/RU2553056C2/ru
Priority to US14/748,418 priority patent/US9740864B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

1. Способ для эмуляции файлов, содержащий этапы на которых:а) получают файл на эмуляцию;б) проверяют, выполняется ли эмуляция в первый раз;в) определяют образ состояния эмулятора, который загружается в эмулятор для последующей эмуляции файла;г) производят эмуляцию файла;д) создают образы состояния эмулятора;е) проверяют некорректное завершение эмуляции файла;ж) выбирают необходимый образ для продолжения эмуляции в случае некорректного завершения эмуляции файла;з) загружают выбранный образ для продолжения эмуляции файла.2. Способ по п.1, в котором получают файл на эмуляцию по крайней мере в одном из следующих случаев:- файл является неизвестным и требуется провести его эмуляцию для определения его возможной вредоносности;- эмуляция необходима для определения всех возможных кодов ошибок;- эмуляция необходима для исследования функционала приложения, когда необходимо определить, какие используются системные вызовы, список необходимых сторонних библиотек.3. Способ по п.1, в котором необходимым условием создания новых образов состояния эмулятора является, по меньшей мере, одно из следующих условий:- ветвление в коде;- применение антиэмуляционного приема;- эмуляция определенного количества инструкций;- периодическое создание образов через заданные промежутки времени.4. Способ по п.1, в котором некорректное завершение эмуляции файла может быть, по меньшей мере, одним из:- слишком быстрое завершение эмулируемого процесса;- отсутствие необходимых библиотек;- необработанное исключение.5. Способ по п.1, в котором образы состояния эмулятора создаются в виде древовидной структуры, при этом переходы между образами строятся �

Claims (14)

1. Способ для эмуляции файлов, содержащий этапы на которых:
а) получают файл на эмуляцию;
б) проверяют, выполняется ли эмуляция в первый раз;
в) определяют образ состояния эмулятора, который загружается в эмулятор для последующей эмуляции файла;
г) производят эмуляцию файла;
д) создают образы состояния эмулятора;
е) проверяют некорректное завершение эмуляции файла;
ж) выбирают необходимый образ для продолжения эмуляции в случае некорректного завершения эмуляции файла;
з) загружают выбранный образ для продолжения эмуляции файла.
2. Способ по п.1, в котором получают файл на эмуляцию по крайней мере в одном из следующих случаев:
- файл является неизвестным и требуется провести его эмуляцию для определения его возможной вредоносности;
- эмуляция необходима для определения всех возможных кодов ошибок;
- эмуляция необходима для исследования функционала приложения, когда необходимо определить, какие используются системные вызовы, список необходимых сторонних библиотек.
3. Способ по п.1, в котором необходимым условием создания новых образов состояния эмулятора является, по меньшей мере, одно из следующих условий:
- ветвление в коде;
- применение антиэмуляционного приема;
- эмуляция определенного количества инструкций;
- периодическое создание образов через заданные промежутки времени.
4. Способ по п.1, в котором некорректное завершение эмуляции файла может быть, по меньшей мере, одним из:
- слишком быстрое завершение эмулируемого процесса;
- отсутствие необходимых библиотек;
- необработанное исключение.
5. Способ по п.1, в котором образы состояния эмулятора создаются в виде древовидной структуры, при этом переходы между образами строятся на основании условий созданий новых образов состояния эмулятора.
6. Способ по п.1, в котором загружают выбранный образ для продолжения эмуляции файла с изменениям состояния эмулятора.
7. Способ по п.6, в котором изменением состояния эмулятора может быть, по меньшей мере, одно из:
- переход в другую ветку кода при условном переходе;
- изменение статуса описателей ресурсов;
- откат сделанных ранее изменений;
- изменение значения выполненной функции.
8. Система для эмуляции файлов, содержащая средства:
а) эмулятор, связанный со средство загрузки образов и средством создания образов, при этом эмулятор предназначен для получения файла, последующей эмуляции файла и проверки некорректного завершения эмуляции файла;
б) средство загрузки образов, связанное с базой данных образов, при этом средство загрузки образов предназначено для определения и загрузки образа состояния эмулятора, который загружается в эмулятор для последующей эмуляции файла, в том числе и при некорректном завершении эмуляции файла;
в) средство создания образов, связанное с базой данных образов, при этом средство создания образов предназначено для создания образов состояния эмулятора;
г) база данных образов, предназначенная для хранения образов состояния эмулятора.
9. Система по п.8, в которой эмулятор получает файл на эмуляцию по крайней мере в одном из следующих случаев:
- файл является неизвестным и требуется провести его эмуляцию для определения его возможной вредоносности;
- эмуляция необходима для определения всех возможных кодов ошибок;
- эмуляция необходима для исследования функционала приложения, когда необходимо определить, какие используются системные вызовы, список необходимых сторонних библиотек.
10. Система по п.8, в которой необходимыми условиями создания новых образов состояния эмулятора является по меньшей мере одно из следующих условий:
- ветвление в коде;
- применение антиэмуляционного приема;
- эмуляция определенного количества инструкций;
- периодическое создание образов через заданные промежутки времени.
11. Система по п.8, в которой некорректное завершение эмуляции файла может быть по меньшей мере одним из:
- слишком быстрое завершение эмулируемого процесса;
- отсутствие необходимых библиотек;
- необработанное исключение.
12. Система по п.8, в которой образы состояния эмулятора создаются в виде древовидной структуры, при этом переходы между образами строятся на основании условий созданий новых образов состояния эмулятора.
13. Система по п.8, в которой загружают выбранный образ для продолжения эмуляции файла с изменениям состояния эмулятора.
14. Система по п.13, в которой изменением состояния эмулятора может быть по меньшей мере одно из:
- переход в другую ветку кода при условном переходе;
- изменение статуса описателей ресурсов;
- откат сделанных ранее изменений;
- изменение значения выполненной функции.
RU2013147291/08A 2013-10-24 2013-10-24 Система и способ сохранения состояния эмулятора и его последующего восстановления RU2553056C2 (ru)

Priority Applications (5)

Application Number Priority Date Filing Date Title
RU2013147291/08A RU2553056C2 (ru) 2013-10-24 2013-10-24 Система и способ сохранения состояния эмулятора и его последующего восстановления
US14/221,488 US9111096B2 (en) 2013-10-24 2014-03-21 System and method for preserving and subsequently restoring emulator state
DE202014011116.2U DE202014011116U1 (de) 2013-10-24 2014-04-03 System zum Bewahren und nachfolgenden Wiederherstellen eines Emulatorzustands
EP20140163292 EP2866167A1 (en) 2013-10-24 2014-04-03 System and method for preserving and subsequently restoring emulator state
US14/748,418 US9740864B2 (en) 2013-10-24 2015-06-24 System and method for emulation of files using multiple images of the emulator state

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013147291/08A RU2553056C2 (ru) 2013-10-24 2013-10-24 Система и способ сохранения состояния эмулятора и его последующего восстановления

Publications (2)

Publication Number Publication Date
RU2013147291A true RU2013147291A (ru) 2015-04-27
RU2553056C2 RU2553056C2 (ru) 2015-06-10

Family

ID=52997074

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013147291/08A RU2553056C2 (ru) 2013-10-24 2013-10-24 Система и способ сохранения состояния эмулятора и его последующего восстановления

Country Status (3)

Country Link
US (2) US9111096B2 (ru)
DE (1) DE202014011116U1 (ru)
RU (1) RU2553056C2 (ru)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2553056C2 (ru) * 2013-10-24 2015-06-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ сохранения состояния эмулятора и его последующего восстановления
WO2016203759A1 (ja) * 2015-06-16 2016-12-22 日本電気株式会社 分析システム、分析方法、分析装置及び、コンピュータ・プログラムが記憶された記録媒体
RU2634171C1 (ru) * 2016-12-12 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ выполнения кода интерпретатором
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US9817675B1 (en) * 2017-01-31 2017-11-14 Hytrust, Inc. Methods and systems for attaching an encrypted data partition during the startup of an operating system
RU2659742C1 (ru) * 2017-08-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных
US10691800B2 (en) * 2017-09-29 2020-06-23 AO Kaspersky Lab System and method for detection of malicious code in the address space of processes
EP3926470B1 (en) 2020-06-19 2023-08-16 AO Kaspersky Lab Emulator and emulation method

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933956A (en) 1983-04-14 1990-06-12 Codex Corporation Simplified decoding of lattices and codes
US6067410A (en) 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US6795966B1 (en) * 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6338147B1 (en) * 1998-10-29 2002-01-08 International Business Machines Corporation Program products for performing checkpoint/restart of a parallel program
US6415436B1 (en) * 1998-12-11 2002-07-02 Hewlett-Packard Company Mechanism for cross validating emulated states between different emulation technologies in a dynamic compiler
US6374207B1 (en) * 1999-02-10 2002-04-16 International Business Machines Corporation Methods, data structures, and computer program products for representing states of interaction in automatic host access and terminal emulation using scripts
US8805664B1 (en) * 2003-08-11 2014-08-12 The Mathworks, Inc. System and method for simulating branching behavior
US7849297B2 (en) * 2003-08-28 2010-12-07 Mips Technologies, Inc. Software emulation of directed exceptions in a multithreading processor
US7403887B1 (en) * 2004-01-14 2008-07-22 Microsoft Corporation Emulated memory management
US20060155525A1 (en) * 2005-01-10 2006-07-13 Aguilar Maximino Jr System and method for improved software simulation using a plurality of simulator checkpoints
US7328145B2 (en) * 2005-04-05 2008-02-05 Cisco Technology, Inc. Method and system for emulation of an internetwork operating system device
JP2007058731A (ja) * 2005-08-26 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、及び並列命令実行対応デバッグ装置
US7664626B1 (en) * 2006-03-24 2010-02-16 Symantec Corporation Ambiguous-state support in virtual machine emulators
US7962798B2 (en) * 2006-04-17 2011-06-14 The Trustees Of Columbia University In The City Of New York Methods, systems and media for software self-healing
US20080127114A1 (en) * 2006-11-28 2008-05-29 Amit Vasudevan Framework for stealth dynamic coarse and fine-grained malware analysis
US20080320594A1 (en) 2007-03-19 2008-12-25 Xuxian Jiang Malware Detector
US8011010B2 (en) 2007-04-17 2011-08-30 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
US8296119B2 (en) * 2007-11-05 2012-10-23 Cadence Design Systems, Inc. Saving and restarting discrete event simulations
US8370932B2 (en) * 2008-09-23 2013-02-05 Webroot Inc. Method and apparatus for detecting malware in network traffic
US9177144B2 (en) * 2008-10-30 2015-11-03 Mcafee, Inc. Structural recognition of malicious code patterns
US7673201B1 (en) * 2009-03-12 2010-03-02 Xilinx, Inc. Recovering a prior state of a circuit design within a programmable integrated circuit
US7603713B1 (en) 2009-03-30 2009-10-13 Kaspersky Lab, Zao Method for accelerating hardware emulator used for malware detection and analysis
US20110041179A1 (en) 2009-08-11 2011-02-17 F-Secure Oyj Malware detection
US8635395B2 (en) * 2009-09-14 2014-01-21 Vmware, Inc. Method of suspending and resuming virtual machines
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
RU101235U1 (ru) * 2010-03-02 2011-01-10 Закрытое акционерное общество "Лаборатория Касперского" Система проверки на присутствие вредоносного программного обеспечения с изменяемыми настройками проверки
US20110219449A1 (en) * 2010-03-04 2011-09-08 St Neitzel Michael Malware detection method, system and computer program product
US8898509B2 (en) * 2010-05-18 2014-11-25 Vmware, Inc. Policy-based checkpointing fault tolerance across remote virtual machines
US8832836B2 (en) 2010-12-30 2014-09-09 Verisign, Inc. Systems and methods for malware detection and scanning
US8418099B2 (en) 2011-03-08 2013-04-09 Oracle International Corporation Performance counters for integrated circuits
US20120246630A1 (en) * 2011-03-23 2012-09-27 Secure By Design System and Method for Automating Installation and Updating of Third Party Software
US9665266B2 (en) 2011-10-27 2017-05-30 Blackberry Limited Setting reminders from an instant messaging application
US9015025B2 (en) 2011-10-31 2015-04-21 International Business Machines Corporation Verifying processor-sparing functionality in a simulation environment
US9514507B2 (en) * 2011-11-29 2016-12-06 Citrix Systems, Inc. Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware
JP5991211B2 (ja) * 2012-05-25 2016-09-14 富士通株式会社 シミュレーション方法、およびシミュレーションプログラム
RU2514141C1 (ru) 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
RU2553056C2 (ru) * 2013-10-24 2015-06-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ сохранения состояния эмулятора и его последующего восстановления

Also Published As

Publication number Publication date
US20150121531A1 (en) 2015-04-30
RU2553056C2 (ru) 2015-06-10
DE202014011116U1 (de) 2017-12-07
US9111096B2 (en) 2015-08-18
US9740864B2 (en) 2017-08-22
US20150294112A1 (en) 2015-10-15

Similar Documents

Publication Publication Date Title
RU2013147291A (ru) Система и способ сохранения состояния эмулятора и его последующего восстановления
US9355017B2 (en) Automated error checking system for a software application and method therefor
KR102317833B1 (ko) 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
CN110347085B (zh) 自动化测试系统、方法、车辆以及计算机可读介质
CN103279418B (zh) 一种组态控制信息的测试方法和装置
US9952855B2 (en) Software test automation
JP2015508549A5 (ja) モバイル環境用のトロイの木馬化されたアプリケーション(アプリ)を特定するためのコンピュータ実装方法、非一時コンピュータ読み取り可能な媒体およびコンピュータシステム
US10042744B2 (en) Adopting an existing automation script to a new framework
JP2015524126A5 (ru)
CN105573915B (zh) 一种基于代码覆盖率的测试方法和装置
RU2011144144A (ru) Способ и устройство для проверки исполняемой программы с использованием модели
US8910148B2 (en) Packaging an application with plurality of libraries
US9058427B2 (en) Iterative generation of symbolic test drivers for object-oriented languages
RU2017120292A (ru) Обновление встроенного программного обеспечения
WO2016162075A1 (en) Removing library objects from a static library
RU2014145739A (ru) Способ и система регрессионного тестирования функциональности веб-страницы, машиночитаемый носитель информации
CN108108169B (zh) 一种基于Jenkins的多分支的构建方法及系统
CN106487602B (zh) 应用程序发布版本监控方法与监控装置
CN110990051B (zh) 软件包依赖关系的维护方法、装置、介质和设备
GB2569756A (en) Loader and method for processing a resource bundle
KR20160050634A (ko) 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버
CN108874656A (zh) 代码测试方法、装置、可读存储介质及计算机设备
CN109471799A (zh) 一种需求环境的部署方法、装置、存储介质及终端
CN105550575A (zh) 一种未导出的函数地址和数据结构偏移的获取方法及装置
CN109144524B (zh) 一种教育平台上学科游戏的版本发布方法及电子设备