CN103440457B - Based on the binary program analytic system of process simulation - Google Patents
Based on the binary program analytic system of process simulation Download PDFInfo
- Publication number
- CN103440457B CN103440457B CN201310426028.7A CN201310426028A CN103440457B CN 103440457 B CN103440457 B CN 103440457B CN 201310426028 A CN201310426028 A CN 201310426028A CN 103440457 B CN103440457 B CN 103440457B
- Authority
- CN
- China
- Prior art keywords
- thread
- information
- management module
- module
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 146
- 230000008569 process Effects 0.000 title claims abstract description 134
- 238000004088 simulation Methods 0.000 title claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 15
- 230000006399 behavior Effects 0.000 claims description 11
- 230000006378 damage Effects 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000004064 recycling Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000011084 recovery Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000007613 environmental effect Effects 0.000 claims description 2
- 238000013507 mapping Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 11
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 description 6
- 230000007812 deficiency Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013101 initial test Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种电子数据监控技术领域的基于进程模拟的二进制程序分析系统,包括:模拟器引擎模块、内存管理模块、进程管理模块、系统调用接口、线程管理模块、中央处理模块和提供应用程序接口的分析组件接口,其中:模拟器引擎模块分别连接内存管理模块、进程管理模块、系统调用接口和分析组件接口,进程管理模块分别与内存管理模块、中央处理模块和系统调用接口相连,线程管理模块分别与内存管理模块、进程管理模块和中央处理模块相连;本发明不依赖于对程序的静态逆向分析,而采用完全动态分析的方法,能够避免大部分程序保护技术造成的影响。
A binary program analysis system based on process simulation in the field of electronic data monitoring technology, including: a simulator engine module, a memory management module, a process management module, a system call interface, a thread management module, a central processing module, and an analysis that provides an application program interface Component interface, wherein: the simulator engine module is connected to the memory management module, process management module, system call interface and analysis component interface respectively, the process management module is connected to the memory management module, the central processing module and the system call interface respectively, and the thread management module is connected to the The memory management module, the process management module and the central processing module are connected; the present invention does not depend on the static reverse analysis of the program, but adopts a completely dynamic analysis method, which can avoid the influence caused by most program protection technologies.
Description
技术领域technical field
本发明涉及的是一种电子数据监控技术领域的系统,具体是一种基于进程模拟的二进制程序分析系统。The invention relates to a system in the technical field of electronic data monitoring, in particular to a binary program analysis system based on process simulation.
背景技术Background technique
在计算机安全领域中,对各类软件尤其是恶意程序的逆向分析是程序安全分析的基础工作。由于缺少了相关的语义信息,针对二进制程序的逆向分析往往十分困难,需要消耗大量的人力物力。因此,为了辅助分析人员进行逆向分析,相应的自动化程序分析方法和分析平台也应运而生。In the field of computer security, the reverse analysis of various software, especially malicious programs, is the basic work of program security analysis. Due to the lack of relevant semantic information, the reverse analysis of binary programs is often very difficult and requires a lot of manpower and material resources. Therefore, in order to assist analysts in reverse analysis, corresponding automated program analysis methods and analysis platforms have emerged as the times require.
为了实现自动化的程序分析,需要对程序运行时的指令流、控制流和数据流进行细粒度地监视,同时需要获取程序运行中的处理器、内存等相关信息。目前对程序运行时信息的获取主要采用进程调试、全系统模拟以及动态二进制插桩等技术来实现。但是,目前的分析技术均存在若干问题,其中进程调试采用操作系统的调试API实现,对目前恶意程序常用的反调试手段往往无能为力;全系统模拟技术对整个计算机平台进行模拟,与分析无关的大量指令如操作系统内核占用了大部分的模拟时间,导致分析效率很低;而动态二进制插桩由于改变了程序的指令流和控制流,对于一些经过保护的程序如被加壳或混淆后的程序往往无法进行分析。因此,目前的分析方案在面对当前日益复杂的程序时常常无法满足分析要求。In order to realize automatic program analysis, it is necessary to monitor the instruction flow, control flow and data flow of the program in a fine-grained manner, and at the same time, it is necessary to obtain relevant information such as the processor and memory in which the program is running. At present, the acquisition of program runtime information is mainly achieved by process debugging, system-wide simulation, and dynamic binary instrumentation. However, there are several problems in the current analysis techniques. The process debugging is implemented by the debugging API of the operating system, and the anti-debugging methods commonly used for malicious programs are often powerless; the whole system simulation technology simulates the entire computer platform, and a large number of Instructions such as the operating system kernel take up most of the simulation time, resulting in low analysis efficiency; and dynamic binary instrumentation changes the instruction flow and control flow of the program, for some protected programs such as packed or obfuscated programs Analysis is often not possible. As a result, current analysis solutions often fall short of analysis requirements in the face of today's increasingly complex procedures.
经过对现有技术的检索发现,中国专利文献号CN101814053,公开日2010-08-25,记载了一种基于功能模型的二进制代码漏洞发现方法,首先基于静态逆向分析系统建立代码功能模型,并基于所述代码功能模型构造初始测试用例集;其次,通过动态测试与回放分析系统依据覆盖率控制和选路策略在动态测试平台上加载测试用例集,并采用动态路径约束优化和约束求解、基于代的路径遍历算法进行测试用例集的调整,以及根据回放分析进行异常的精细分析及漏洞定位;第三,静态逆向分析系统和动态测试与回放分析系统均将各自分析得到的程序属性存入功能模型中,并以功能模型中的程序属性来指导各自的分析测试工作。但该技术与本发明相比的缺陷及不足在于:第一,该技术依赖于静态逆向分析,而目前软件保护技术的广泛使用使得分析人员往往无法进行有效的静态分析,因此从目前的很多程序尤其是恶意程序中提取静态分析结果是比较困难的;第二,该技术的分析方法仅能对程序的异常运行情况加以检测并分析可能的漏洞,而无法检测程序的潜在恶意攻击行为,尤其是目前的各类攻击方法如ROP(Return-OrientedProgramming)层出不穷,该技术无法对程序中存在的能够被这类攻击所利用的漏洞进行检测;第三,在目前各类动态代码执行被广泛使用的情况下,如插件(Plugin)、用户脚本(UserScripting)、即时编译(Just-in-timeCompilation)等等,该技术无法对这类动态生成或加载的代码进行有效分析,因此进一步限定了其分析范围。After searching the existing technology, it was found that Chinese Patent Document No. CN101814053, published on 2010-08-25, records a binary code vulnerability discovery method based on a function model. First, a code function model is established based on a static reverse analysis system, and based on The code function model constructs an initial test case set; secondly, the dynamic test and playback analysis system loads the test case set on the dynamic test platform according to the coverage control and routing strategy, and adopts dynamic path constraint optimization and constraint solving, generation-based The path traversal algorithm is used to adjust the test case set, as well as the fine analysis of exceptions and vulnerability location based on playback analysis; third, both the static reverse analysis system and the dynamic test and playback analysis system store the program attributes obtained by their respective analysis into the function model , and use the program attributes in the functional model to guide their respective analysis and testing work. But the defect and deficiency of this technology compared with the present invention are: first, this technology relies on static reverse analysis, and the widespread use of current software protection technology makes analysts often unable to carry out effective static analysis, so from many current programs In particular, it is difficult to extract static analysis results from malicious programs; second, the analysis method of this technology can only detect the abnormal operation of the program and analyze possible vulnerabilities, but cannot detect the potential malicious attacks of the program, especially At present, various attack methods such as ROP (Return-Oriented Programming) emerge in an endless stream. This technology cannot detect the vulnerabilities in the program that can be exploited by this type of attack; third, in the current situation where various types of dynamic code execution are widely used Under the circumstances, such as plug-ins (Plugin), user scripts (UserScripting), just-in-time compilation (Just-in-time Compilation), etc., this technology cannot effectively analyze this type of dynamically generated or loaded code, thus further limiting its analysis scope.
发明内容Contents of the invention
本发明针对现有技术存在的上述不足,提供一种基于进程模拟的二进制程序分析系统,针对现有技术的不足之处,从程序的底层即系统硬件结构和操作系统的级别对程序进行运行环境的模拟,不干涉程序的正常运行,而对程序的运行过程如数据流向等内容进行监控。本发明不依赖于对程序的静态逆向分析,而采用完全动态分析的方法,能够避免大部分程序保护技术造成的影响。通过对分析系统进行扩展并自定义攻击行为,本发明能够在攻击代码被执行前进行检测和拦截;并且通过引入动态污点分析等手段,能够对敏感数据流向进行分析和跟踪,避免造成数据和隐私的泄露。并且,本发明不依赖于程序的静态分析结果,能够对动态生成代码进行完整分析。Aiming at the above-mentioned deficiencies in the prior art, the present invention provides a binary program analysis system based on process simulation. Aiming at the deficiencies of the prior art, the program is analyzed from the bottom layer of the program, that is, the system hardware structure and the operating system level. It does not interfere with the normal operation of the program, but monitors the running process of the program, such as data flow, etc. The present invention does not rely on the static reverse analysis of the program, but adopts a completely dynamic analysis method, which can avoid the influence caused by most program protection technologies. By extending the analysis system and customizing the attack behavior, the present invention can detect and intercept the attack code before it is executed; and by introducing dynamic taint analysis and other means, it can analyze and track the flow of sensitive data, avoiding data and privacy violations. leak. Moreover, the present invention does not depend on the static analysis result of the program, and can perform a complete analysis on the dynamically generated code.
本发明是通过以下技术方案实现的,本发明包括:模拟器引擎模块、内存管理模块、进程管理模块、系统调用接口、线程管理模块、中央处理模块和提供应用程序接口的分析组件接口,其中:模拟器引擎模块分别连接内存管理模块、进程管理模块、系统调用接口和分析组件接口,分别传输运行状态信息和运行指令、进程管理和线程调度信息、系统API调用数据、调试信息和分析组件事件等,控制、协调各个模块并降低不同模块之间的耦合度;进程管理模块分别与中央处理模块、内存管理模块和系统调用接口相连,分别传输处理器调度信息和运行状态信息、内存管理数据以及系统调用参数转换及封装等信息,线程管理模块分别与进程管理模块、内存管理模块和中央处理模块相连,分别传输线程运行状态及调度信息、线程内存数据访问以及处理器运行状态;The present invention is realized through the following technical solutions, and the present invention comprises: simulator engine module, memory management module, process management module, system call interface, thread management module, central processing module and the analysis component interface that provides application program interface, wherein: The simulator engine module is connected to the memory management module, process management module, system call interface and analysis component interface respectively, and transmits running status information and running instructions, process management and thread scheduling information, system API call data, debugging information and analysis component events, etc. , control and coordinate each module and reduce the coupling between different modules; the process management module is connected with the central processing module, the memory management module and the system call interface respectively, and transmits processor scheduling information and running status information, memory management data and system Information such as call parameter conversion and encapsulation, the thread management module is connected with the process management module, the memory management module and the central processing module respectively, and respectively transmits the thread running status and scheduling information, thread memory data access and processor running status;
所述的模拟器引擎模块为各个组件提供统一的协调控制,并驱动各个组件运行完成被模拟进程的加载、初始化、运行和清除,该模拟器引擎模块包括:驱动单元、操作系统挂钩单元和调试单元,其中:驱动单元与内存管理模块和进程管理模块相连,接收运行状态信息,发送运行指令;操作系统挂钩单元与进程管理模块相连,接收进程管理模块的系统API调用并传递给底层操作系统,返回API调用结果;调试单元连接系统调用接口和分析组件接口进行应用程序调试;The simulator engine module provides unified coordinated control for each component, and drives each component to run to complete the loading, initialization, operation and removal of the simulated process. The simulator engine module includes: a drive unit, an operating system hook unit and a debugging unit. unit, wherein: the drive unit is connected with the memory management module and the process management module, receives the running state information, and sends the running command; the operating system hook unit is connected with the process management module, receives the system API call of the process management module and passes it to the underlying operating system, Return the API call result; the debugging unit connects the system call interface and the analysis component interface for application debugging;
所述的内存管理模块包括:虚拟内存管理单元、堆管理单元和栈管理单元,其中:虚拟内存管理单元向线程管理模块传输内存访问数据,并与模拟器引擎模块的驱动单元相连以传输运行状态信息;堆管理单元从进程管理模块接收堆管理指令,完成进程中堆内存的管理;栈管理单元从线程管理模块接收线程运行状态,完成所有线程中栈内存的管理。The memory management module includes: a virtual memory management unit, a heap management unit and a stack management unit, wherein: the virtual memory management unit transmits memory access data to the thread management module, and is connected with the driver unit of the simulator engine module to transmit the running state Information; the heap management unit receives heap management instructions from the process management module to complete the management of the heap memory in the process; the stack management unit receives the thread running status from the thread management module to complete the management of the stack memory in all threads.
所述的虚拟内存管理单元采用分页方案对4GB虚拟内存进行管理;同时模拟Windows的虚拟内存管理行为,完成操作系统级别的内存分配、回收及访问权限控制。The virtual memory management unit uses a paging scheme to manage 4GB of virtual memory; at the same time, it simulates the virtual memory management behavior of Windows to complete memory allocation, recovery and access control at the operating system level.
所述的堆管理单元和栈管理单元分别传输的进程中堆的管理信息、进程中各线程栈内存的管理,全局虚拟内存页分配与回收等。The heap management unit and the stack management unit respectively transmit the management information of the heap in the process, the management of the stack memory of each thread in the process, the allocation and recycling of global virtual memory pages, and the like.
所述的进程中堆的管理信息包括:堆的建立销毁和内存分配;堆内存权限设置;堆容量调整与重分配等。The management information of the heap in the process includes: heap creation and destruction and memory allocation; heap memory permission setting; heap capacity adjustment and reallocation, etc.
所述的进程管理模块包括:线程调度管理单元、状态驱动单元和系统API封装单元,其中:线程调度管理单元与中央处理模块相连接收进程中所有线程的调度信息,完成线程的调度以及创建和销毁;状态驱动单元与模拟器引擎模块相连,接收模拟器引擎模块的运行指令,完成主线程及其他线程的运行驱动并传输运行状态信息;系统API封装单元与系统调用接口相连接收线程管理模块的系统API调用,封装参数并传输至模拟器引擎模块进行调用。The process management module includes: a thread scheduling management unit, a state driver unit and a system API encapsulation unit, wherein: the thread scheduling management unit is connected with the central processing module to receive scheduling information of all threads in the process, and completes the scheduling and creation and destruction of threads ; The state drive unit is connected to the simulator engine module, receives the operation instructions of the simulator engine module, completes the operation drive of the main thread and other threads and transmits the operation status information; the system API encapsulation unit is connected with the system call interface to receive the system of the thread management module API call, encapsulate parameters and transfer to the simulator engine module for calling.
所述的进程管理模块用于对进程的完整执行流程进行驱动;维护该进程所包含的所有线程及其调度;进程中系统句柄(Handle)维护及内存地址分配;以及进程PEB(ProcessEnvironmentBlock)等数据结构的创建及维护。The process management module is used to drive the complete execution process of the process; maintain all threads contained in the process and their scheduling; maintain system handles (Handle) in the process and allocate memory addresses; and process PEB (ProcessEnvironmentBlock) and other data Creation and maintenance of structures.
所述的线程管理模块包括:环境信息模拟单元、驱动线程单元和执行单元,其中:环境信息模拟单元与进程管理单元相连,接收线程的运行时状态信息并建立模拟运行时环境供线程使用;驱动线程单元与进程管理单元相连,接收线程运行指令并传输线程运行状态;执行单元与中央处理模块的线程状态单元相连用于完成处理器指令循环并在结束时终止线程。The thread management module includes: an environment information simulation unit, a driving thread unit and an execution unit, wherein: the environment information simulation unit is connected with the process management unit, receives the runtime state information of the thread and establishes a simulated runtime environment for use by the thread; The thread unit is connected with the process management unit, receives the thread operation instruction and transmits the thread operation state; the execution unit is connected with the thread state unit of the central processing module to complete the processor instruction cycle and terminate the thread at the end.
所述的环境信息模拟模块建立的供线程使用的模拟运行时环境包括:入口点、参数、标志位、堆栈地址和大小及TEB(ThreadEnvironmentBlock);The simulated runtime environment for threads established by the environment information simulation module includes: entry points, parameters, flags, stack addresses and sizes, and TEB (ThreadEnvironmentBlock);
所述的线程管理模块维护模拟进程中单个线程的环境信息,并驱动线程从入口点开始的执行过程,同时判断终止条件并结束线程;同时用于由该线程动态加载的其他模块(DLL)的载入和初始化;The thread management module maintains the environment information of a single thread in the simulation process, and drives the execution process of the thread from the entry point, and at the same time judges the termination condition and ends the thread; at the same time, it is used for other modules (DLL) dynamically loaded by the thread loading and initialization;
所述的中央处理模块内置有分别与进程管理模块和线程管理模块相连的寄存器和状态单元且分别传输处理器调度信息和线程运行状态及调度信息。The central processing module has built-in registers and status units respectively connected to the process management module and the thread management module, and transmits processor scheduling information, thread running status and scheduling information respectively.
所述的传输处理器调度信息和线程运行状态及调度信息包括:处理器标志位(eflags)、运行状态信息;并对x86指令集、x87FPU指令集、MMX指令集和SSE指令集提供了解释模拟函数,从而实现完整处理器功能的模拟。The transmission processor scheduling information and thread running status and scheduling information include: processor flags (eflags), running status information; and provide explanation and simulation for x86 instruction set, x87FPU instruction set, MMX instruction set and SSE instruction set function, enabling simulation of the full processor functionality.
所述的中央处理模块上设有异常管理器,用于传递处理器异常信息及异常处理结果,该异常管理器构造异常的环境信息并执行异常处理函数。The central processing module is provided with an exception manager for transmitting processor exception information and exception processing results. The exception manager constructs abnormal environment information and executes exception processing functions.
所述的分析组件接口为系统提供API接口,使得分析人员能够很容易地编写分析组件,完成自动化程序分析;The analysis component interface provides an API interface for the system, so that analysts can easily write analysis components to complete automated program analysis;
所述的模拟器引擎模块分别连接加载器、反汇编引擎和与附加的调试组件相连、用于进行应用程序调试的调试接口,其中:加载器解析待分析进程的可执行PE文件并将解析结果通过模拟器引擎模块加载至内存管理模块,反汇编引擎对单条x86指令进行反汇编,解析出指令的操作码、源操作数、目的操作数等信息;调试接口用于传递调试信息,可进行应用程序及模拟器自身的调试;The emulator engine module is respectively connected to a loader, a disassembly engine, and an additional debugging component to be connected to a debugging interface for debugging an application program, wherein: the loader parses the executable PE file of the process to be analyzed and parses the result Load the simulator engine module to the memory management module, and the disassembly engine disassembles a single x86 instruction, and parses out information such as the instruction's opcode, source operand, and destination operand; the debugging interface is used to transmit debugging information and can be used for applications Debugging of the program and the simulator itself;
所述的待分析进程的可执行PE文件是指:Windows中的可执行程序以PE格式存在,模拟器加载并解析PE文件使其能够被模拟执行;The executable PE file of the process to be analyzed refers to: the executable program in Windows exists in PE format, and the emulator loads and parses the PE file so that it can be simulated and executed;
本发明涉及一种基于上述系统的进程优化方法,包括以下步骤:The present invention relates to a process optimization method based on the above system, comprising the following steps:
步骤一、对待分析进程进行轻量级x86指令集模拟,即以程序运行效率损失在两个数量级以内的前提下进行x86指令集的模拟处理和虚拟内存环境,Step 1. Perform lightweight x86 instruction set simulation on the process to be analyzed, that is, perform x86 instruction set simulation processing and virtual memory environment on the premise that the program running efficiency loss is within two orders of magnitude.
所述的步骤一具体包括:Described step one specifically includes:
1.1使用启发式递归反汇编算法对于每条处理器指令提供静态的反汇编信息;1.1 Use a heuristic recursive disassembly algorithm to provide static disassembly information for each processor instruction;
所述的启发式递归反汇编算法包括以下步骤:The described heuristic recursive disassembly algorithm comprises the following steps:
1.1.1针对PE文件中的各条指令进行以下步骤的判断。1.1.1 Perform the following steps to judge each instruction in the PE file.
1.1.2定位入口点指令E,当该指令E为有效指令则对其进行反汇编处理后执行步骤1.1.3,否则跳过该条指令并重新执行步骤1.1.2。1.1.2 Locate the entry point instruction E. When the instruction E is a valid instruction, perform step 1.1.3 after disassembling it, otherwise skip this instruction and re-execute step 1.1.2.
1.1.3当反汇编处理后的指令E为跳转指令,则对指令E的跳转目标进行反汇编处理。1.1.3 When the disassembled instruction E is a jump instruction, disassemble the jump target of the instruction E.
1.1.4在指令E的尾部添加该指令的长度信息并返回步骤1.1.2处理下一条指令,直至完成所有指令的处理后返回反汇编处理得到的指令集合S。1.1.4 Add the length information of the instruction at the end of the instruction E and return to step 1.1.2 to process the next instruction until the processing of all instructions is completed and return to the instruction set S obtained by the disassembly process.
1.2利用反汇编信息模拟各条指令的执行流程,包括寄存器、内存数据以及标志位的值。1.2 Use disassembly information to simulate the execution flow of each instruction, including the value of registers, memory data and flag bits.
1.3提取内存访问数据、寄存器值变化信息用于程序分析。1.3 Extract memory access data and register value change information for program analysis.
所述的内存访问数据包括:内存地址和内存数据、寄存器值、标志位改变信息以及异常信息。The memory access data includes: memory address and memory data, register value, flag bit change information and exception information.
步骤二、模拟若干操作系统行为保证待分析进程运行在可控的环境中,具体包括:Step 2. Simulate several operating system behaviors to ensure that the process to be analyzed runs in a controllable environment, including:
2.1进程初始化阶段对被模拟的程序进行加载和初始化,确定进程中各模块中各段(section)的内存分布情况,并确定入口点以及终止条件。2.1 The process initialization stage loads and initializes the simulated program, determines the memory distribution of each section (section) in each module in the process, and determines the entry point and termination condition.
2.2内存管理使用分页式的内存管理机制,包括:以页为单位的虚拟内存分配、回收和访问权限控制。2.2 Memory management Use a paged memory management mechanism, including: virtual memory allocation, recycling and access control in units of pages.
2.3线程管理模块用于维护多线程程序中的线程建立、销毁以及线程调度,使多线程程序在共享内存的模型下能够被正常执行。2.3 The thread management module is used to maintain the thread creation, destruction and thread scheduling in the multi-thread program, so that the multi-thread program can be executed normally under the shared memory model.
2.4异常处理用于在处理器发生异常时的操作系统异常处理机制,使程序的异常处理例程能够运行在模拟环境中。2.4 Exception Handling It is used for the exception handling mechanism of the operating system when the processor is abnormal, so that the exception handling routine of the program can run in the simulation environment.
步骤三、对进程中的操作系统API调用进行封装,交由操作系统直接执行;Step 3, encapsulating the operating system API call in the process, and handing it over to the operating system for direct execution;
所述的操作系统API是指:操作系统提供给用户进程的应用程序接口,使用户程序能够利用操作系统功能。The operating system API refers to: the application program interface provided by the operating system to the user process, so that the user program can use the function of the operating system.
3.1拦截所有模拟进程的API调用,核心API由模拟器引擎模块直接模拟执行,其他API发送至操作系统执行;3.1 Intercept API calls of all simulated processes, the core API is directly simulated and executed by the simulator engine module, and other APIs are sent to the operating system for execution;
所述的核心API包括:内存管理API、线程管理API、调试API、操作系统参数获取API等。The core API includes: a memory management API, a thread management API, a debugging API, an operating system parameter acquisition API, and the like.
3.2完成API调用时的参数转换,包括:模拟内存地址和真实地址的映射。3.2 Complete the parameter conversion when calling the API, including: the mapping between the simulated memory address and the real address.
3.3操作系统在API执行完毕后返回模拟器引擎模块,处理执行结果。3.3 After the API is executed, the operating system returns to the simulator engine module to process the execution result.
步骤四、为模拟执行过程中的动态运行时信息提供应用程序接口,并将模拟器各组件的执行过程封装为事件,以事件处理的方式提供应用程序接口,最终使得分析程序能够利用这些信息进行程序优化。Step 4: Provide APIs for the dynamic runtime information in the simulation execution process, encapsulate the execution process of each component of the simulator as events, and provide APIs in the form of event processing, so that the analysis program can use these information to perform Program optimization.
所述的动态运行时信息包括:指令流、数据流和控制流。The dynamic runtime information includes: instruction flow, data flow and control flow.
所述的事件包括:指令执行事件、内存访问事件、操作系统API调用事件、线程调度事件。The events include: instruction execution events, memory access events, operating system API call events, and thread scheduling events.
技术效果technical effect
1)对被分析程序进行指令级别的模拟执行,使用轻量级x86指令集解释器来提供细粒度的运行时信息;1) Perform instruction-level simulation execution of the analyzed program, using a lightweight x86 instruction set interpreter to provide fine-grained runtime information;
2)对待分析进程中与程序分析无关的内容,如系统调用的执行采用包装或模拟的方式,交由底层操作系统执行,保证分析效率;2) Contents that are not related to program analysis in the analysis process, such as the execution of system calls, are packaged or simulated, and handed over to the underlying operating system for execution to ensure analysis efficiency;
3)模拟若干操作系统行为如内存管理、线程管理及异常处理等,保证被分析程序运行在可控的环境中;3) Simulate several operating system behaviors such as memory management, thread management and exception handling, etc., to ensure that the analyzed program runs in a controllable environment;
4)为程序的自动化分析提供良好的接口,使得程序的模拟执行和分析能够同步高效进行。4) Provide a good interface for the automatic analysis of the program, so that the simulation execution and analysis of the program can be carried out simultaneously and efficiently.
与目前已有的分析方案相比,本发明几乎不受反调试手段的影响,同时不修改待分析进程的原始指令和数据,运行效率比全系统模拟提高了一至二个数量级,同时稳定性和兼容性较二进制插桩有了极大的提高。在该分析系统的基础上,能够高效进行程序的算法及协议分析、漏洞挖掘及检测、程序性能分析、内存调试、程序行为分析以及恶意程序检测等多种自动化分析手段,对程序安全分析提供了可靠的支持。Compared with existing analysis schemes, the present invention is hardly affected by anti-debugging means, and does not modify the original instructions and data of the process to be analyzed. The operating efficiency is one to two orders of magnitude higher than that of the whole system simulation. Compared with binary instrumentation, the compatibility has been greatly improved. On the basis of this analysis system, various automatic analysis methods such as program algorithm and protocol analysis, vulnerability mining and detection, program performance analysis, memory debugging, program behavior analysis, and malicious program detection can be efficiently carried out, which provides a solid foundation for program security analysis. reliable support.
附图说明Description of drawings
图1为本发明系统结构图;Fig. 1 is a system structure diagram of the present invention;
图2为进程管理模块的结构示意图;Fig. 2 is a schematic structural diagram of a process management module;
图3为线程管理模块的结构示意图;Fig. 3 is the structural representation of thread management module;
图4为本发明运行流程图。Fig. 4 is the operation flowchart of the present invention.
具体实施方式Detailed ways
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。The embodiments of the present invention are described in detail below. This embodiment is implemented on the premise of the technical solution of the present invention, and detailed implementation methods and specific operating procedures are provided, but the protection scope of the present invention is not limited to the following implementation example.
实施例1Example 1
以常用多线程网络通信程序curl.exe(http://curl.haxx.se)为例,说明具体的实施过程。Take curl.exe ( http://curl.haxx.se ), a commonly used multi-threaded network communication program, as an example to illustrate the specific implementation process.
如图1所示,包括:模拟器引擎模块、内存管理模块、进程管理模块、系统调用接口、线程管理模块、中央处理模块和提供应用程序接口的分析组件接口,其中:模拟器引擎模块分别连接内存管理模块、进程管理模块、系统调用接口和分析组件接口,分别传输内存访问数据、线程调度和处理器访问数据、系统调用参数及其封装以及模拟器事件和环境信息,控制、协调各个模块并降低不同模块之间的耦合度;进程管理模块分别与内存管理模块、中央处理模块和系统调用接口相连,分别传输内存管理数据如内存分配回收、处理器调度信息以及系统调用参数转换及封装等信息,线程管理模块分别与内存管理模块、进程管理模块和中央处理模块相连,分别传输线程数据在内存中的分布情况、线程运行状态及调度信息、以及处理器运行状态;As shown in Figure 1, it includes: a simulator engine module, a memory management module, a process management module, a system call interface, a thread management module, a central processing module and an analysis component interface that provides an application program interface, wherein: the simulator engine module is connected separately The memory management module, process management module, system call interface and analysis component interface respectively transmit memory access data, thread scheduling and processor access data, system call parameters and their packaging, simulator events and environment information, control and coordinate each module and Reduce the coupling between different modules; the process management module is connected to the memory management module, the central processing module and the system call interface, respectively, and transmits memory management data such as memory allocation and recovery, processor scheduling information, and system call parameter conversion and packaging information. , the thread management module is respectively connected with the memory management module, the process management module and the central processing module, and respectively transmits the distribution of thread data in the memory, the thread running status and scheduling information, and the processor running status;
所述的模拟器引擎模块包括:公用的系统接口,为各个组件提供统一的协调控制,并驱动各个组件运行完成被模拟进程的加载、初始化、运行和清除;The simulator engine module includes: a common system interface, which provides unified coordinated control for each component, and drives each component to run to complete the loading, initialization, operation and removal of the simulated process;
所述的内存管理模块分别与堆和栈相连,分别传输进程中堆的管理信息如堆的建立销毁和内存分配、进程中各线程栈内存的管理,内存管理模块包括:虚拟内存管理单元,采用分页方案对4GB虚拟内存进行管理;同时模拟Windows的虚拟内存管理行为,完成操作系统级别的内存分配、回收及访问权限控制;The memory management module is connected with the heap and the stack respectively, and transmits the management information of the heap in the process such as the establishment and destruction of the heap and memory allocation, the management of each thread stack memory in the process, and the memory management module includes: a virtual memory management unit, using The paging scheme manages 4GB of virtual memory; at the same time, it simulates the virtual memory management behavior of Windows to complete memory allocation, recovery and access control at the operating system level;
内存管理模块:模拟Windows的分页内存管理机制,用于待分析进程的内存分配和回收以及权限管理,为系统的内存管理API提供底层的模拟实现,同时维护待分析进程的堆和栈;Memory management module: Simulates the paging memory management mechanism of Windows, which is used for memory allocation and recycling of the process to be analyzed, as well as rights management, provides the underlying simulation implementation for the system's memory management API, and maintains the heap and stack of the process to be analyzed;
所述的进程管理模块包括:用于对进程的完整执行流程进行驱动;维护该进程所包含的所有线程及其调度;进程中系统句柄(Handle)维护及内存地址分配;以及进程PEB(ProcessEnvironmentBlock)等数据结构的创建及维护;The process management module includes: driving the complete execution process of the process; maintaining all threads contained in the process and their scheduling; system handle (Handle) maintenance and memory address allocation in the process; and process PEB (ProcessEnvironmentBlock) Creation and maintenance of data structures;
进程管理模块:维护待分析进程相关的上下文信息,管理待分析进程的所有线程;Process management module: maintain context information related to the process to be analyzed, and manage all threads of the process to be analyzed;
所述的线程管理模块包括:维护模拟进程中单个线程的环境信息,如入口点、参数、标志位、堆栈地址和大小及TEB等,并驱动线程从入口点开始的执行过程,同时判断终止条件并结束线程;同时用于由该线程动态加载的其他模块(DLL)的载入和初始化;The thread management module includes: maintaining the environmental information of a single thread in the simulation process, such as entry point, parameter, flag, stack address and size, and TEB, etc., and driving the execution process of the thread starting from the entry point, and judging the termination condition at the same time And end the thread; at the same time, it is used for loading and initializing other modules (DLL) dynamically loaded by this thread;
所述的中央处理模块包括:为完整的中央处理模块提供模拟环境、包括寄存器、处理器标志位(eflags)、运行状态信息等;并对x86指令集、x87FPU指令集、MMX指令集和SSE指令集提供了解释模拟函数,从而实现完整处理器功能的模拟;以及子模块异常管理器;其中异常管理器与处理器模块连接,传递处理器异常信息及异常处理结果;The central processing module includes: providing a simulation environment for the complete central processing module, including registers, processor flags (eflags), operating status information, etc.; and x86 instruction set, x87FPU instruction set, MMX instruction set and SSE instruction The set provides an explanation of the simulation function, so as to realize the simulation of the complete processor function; and the exception manager of the sub-module; where the exception manager is connected with the processor module, and transmits the processor exception information and exception handling results;
线程管理模块和中央处理模块:为每个线程维护独立的中央处理模块环境,包括寄存器、处理器标志位及寄存器其它运行时数据,中央处理模块对待分析进程的各条指令进行模拟解释执行;Thread management module and central processing module: maintain an independent central processing module environment for each thread, including registers, processor flags and other runtime data of registers, and the central processing module simulates, interprets and executes each instruction of the process to be analyzed;
系统调用接口:接管待分析进程中的API调用,对核心API,如内存相关,采用模拟执行,其他API则交由操作系统直接运行,保证运行效率;System call interface: take over the API calls in the process to be analyzed, and use simulation execution for core APIs, such as memory-related, while other APIs are handed over to the operating system to run directly to ensure operating efficiency;
分析组件接口为系统提供API接口,使得分析人员能够很容易地编写分析组件,完成自动化程序分析;The analysis component interface provides an API interface for the system, enabling analysts to easily write analysis components and complete automated program analysis;
所述的模拟器引擎模块分别连接加载器、反汇编引擎和与附加的调试组件相连、用于进行应用程序调试的调试接口,其中:加载器解析待分析进程的可执行PE文件并将解析结果通过模拟器引擎模块加载至内存管理模块,反汇编引擎对单条x86指令进行反汇编,解析出指令的操作码、源操作数、目的操作数等信息;调试接口用于传递调试信息,可进行应用程序及模拟器自身的调试;The emulator engine module is respectively connected to a loader, a disassembly engine, and an additional debugging component to be connected to a debugging interface for debugging an application program, wherein: the loader parses the executable PE file of the process to be analyzed and parses the result Load the simulator engine module to the memory management module, and the disassembly engine disassembles a single x86 instruction, and parses out information such as the instruction's opcode, source operand, and destination operand; the debugging interface is used to transmit debugging information and can be used for applications Debugging of the program and the simulator itself;
所述的待分析进程的可执行PE文件是指:Windows中的可执行程序以PE格式存在,模拟器加载并解析PE文件使其能够被模拟执行;The executable PE file of the process to be analyzed refers to: the executable program in Windows exists in PE format, and the emulator loads and parses the PE file so that it can be simulated and executed;
实施例2Example 2
如图2所示,本发明所述系统运行时经历加载、初始化、运行分析、终止等过程。As shown in FIG. 2 , the system of the present invention experiences processes such as loading, initialization, operation analysis, and termination during operation.
步骤一、加载待分析进程的PE文件和依赖的动态链接库,建立完整的Windowsx86虚拟运行时环境;Step 1, load the PE file of the process to be analyzed and the dependent dynamic link library, and establish a complete Windowsx86 virtual runtime environment;
所述的运行时环境包括线性内存地址空间、中央处理模块环境以及相关的操作系统功能;The runtime environment includes a linear memory address space, a central processing module environment, and related operating system functions;
步骤二、对待分析进程进行指令模拟执行,使用轻量级的x86指令集模拟器提供细粒度的运行时信息,并进行后续分析,具体步骤包括:Step 2. Simulate and execute instructions for the process to be analyzed, use a lightweight x86 instruction set simulator to provide fine-grained runtime information, and perform subsequent analysis. The specific steps include:
2.1使用启发式递归反汇编算法尝试反汇编所有指令;2.1 Use a heuristic recursive disassembly algorithm to try to disassemble all instructions;
2.2构造处理器模拟环境,利用反汇编信息精确模拟各条指令的执行流程;2.2 Construct a processor simulation environment, and use the disassembly information to accurately simulate the execution flow of each instruction;
2.3提取内存访问数据、寄存器值等信息用于程序分析;2.3 Extract memory access data, register values and other information for program analysis;
所述的轻量级的x86指令集模拟器是指:高性能的、以低代价运行的x86指令集模拟器,能够在对程序正常执行不造成显著影响的情况下对x86指令集进行模拟执行;The lightweight x86 instruction set simulator refers to: a high-performance, low-cost x86 instruction set simulator that can simulate the execution of the x86 instruction set without significantly affecting the normal execution of the program ;
所述的细粒度的划分具体是:精确到对操作系统可见的最细粒度,即指令、寄存器这一级别,而非诸如动态二进制插桩等方案常采用的基本块或函数这一级别;The fine-grained division is specifically: accurate to the finest granularity visible to the operating system, that is, the level of instructions and registers, rather than the level of basic blocks or functions commonly used in solutions such as dynamic binary instrumentation;
所述的运行时信息具体是指:内存访问信息如内存地址和内存数据、寄存器值、标志位改变信息以及可能产生的异常信息等;The runtime information specifically refers to: memory access information such as memory address and memory data, register value, flag bit change information, and possible exception information;
步骤三、模拟若干操作系统行为保证待分析进程运行在可控的环境中,具体步骤包括:Step 3. Simulate several operating system behaviors to ensure that the process to be analyzed runs in a controllable environment. The specific steps include:
3.1加载curl.exe的程序主体和依赖的系统模块(DLL),使用地址空间随机化(ASLR)分配各组件的基地址,确定内存布局;同时确定程序入口点以及终止条件;3.1 Load the program body and dependent system module (DLL) of curl.exe, use address space randomization (ASLR) to allocate the base address of each component, determine the memory layout; at the same time determine the program entry point and termination conditions;
3.2对进程虚拟内存空间采用分页管理,其中页面大小为4KB;对每个页面维护其状态信息(空闲、保留或提交)以及访问控制权限(可读、可写、可执行)等,并由虚拟内存管理单元统一管理内存页面的分配和回收;3.2 Paging management is adopted for the process virtual memory space, where the page size is 4KB; each page maintains its state information (idle, reserved or submitted) and access control permissions (readable, writable, executable), etc., and is controlled by the virtual The memory management unit uniformly manages the allocation and recycling of memory pages;
3.3线程管理模块用于管理进程中的所有线程,包括在程序初始化时的主线程、执行过程中的线程建立和销毁;3.3 The thread management module is used to manage all threads in the process, including the main thread when the program is initialized, and the establishment and destruction of threads during execution;
3.4异常处理器接管在处理器发生异常时的操作系统异常处理机制,在模拟器环境中运行程序的异常处理例程;3.4 The exception handler takes over the exception handling mechanism of the operating system when the processor is abnormal, and runs the exception handling routine of the program in the simulator environment;
所述的操作系统行为具体是指:进程初始化、内存管理、线程管理、异常处理等;The operating system behavior specifically refers to: process initialization, memory management, thread management, exception handling, etc.;
步骤四、对进程中的所有操作系统API进行封装,并部分交由操作系统直接执行,具体步骤包括:Step 4. Encapsulate all operating system APIs in the process, and hand them over to the operating system for direct execution. The specific steps include:
4.1拦截所有模拟进程的API调用,对核心API(如内存分配APIVirtualAlloc())由模拟器直接模拟执行,其他API(如网络APIsocket())发送至操作系统执行;4.1 Intercept all API calls of the simulated process, and directly simulate and execute the core API (such as memory allocation APIVirtualAlloc()) by the simulator, and send other APIs (such as network APIsocket()) to the operating system for execution;
4.2完成API调用时的参数转换,对其中的指针类型参数进行模拟内存地址和真实地址的映射,对于复杂结构体和新分配的堆数据进行深度拷贝映射至模拟内存空间;4.2 Complete the parameter conversion when calling the API, map the pointer type parameters between the simulated memory address and the real address, and deeply copy and map the complex structure and newly allocated heap data to the simulated memory space;
4.3API执行完毕后返回模拟器控制,清除堆栈并解析API返回结果;4.3 After the API is executed, return to the emulator control, clear the stack and analyze the API return result;
所述的操作系统API是指操作系统提供给用户进程的应用程序接口,使用户程序能够利用操作系统功能。The operating system API refers to the application program interface provided by the operating system to the user process, so that the user program can use the functions of the operating system.
步骤五、为模拟执行过程中的动态运行时信息如指令流、数据里和控制流提供应用程序接口,使得分析程序能够利用这些信息进行程序分析,具体为:将模拟器的执行过程封装为事件,以事件处理的方式提供应用程序接口;主要包括指令执行事件、内存访问事件、操作系统API调用事件、线程调度事件等等;针对curl.exe的执行流程,能够获取到其中的所有指令执行事件,包括寄存器和标志位改变等参数;能够获取诸如网络API调用事件,并能够从中解析网络数据;同时能够重建程序运行时环境用于描述程序行为等。Step 5. Provide APIs for dynamic runtime information in the simulation execution process, such as instruction flow, data and control flow, so that the analysis program can use these information for program analysis, specifically: encapsulate the execution process of the simulator as an event , providing APIs in the form of event processing; mainly including instruction execution events, memory access events, operating system API call events, thread scheduling events, etc.; for the execution process of curl.exe, all instruction execution events can be obtained , including parameters such as changes in registers and flags; it can obtain events such as network API calls, and can parse network data from them; at the same time, it can rebuild the program runtime environment to describe program behavior, etc.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310426028.7A CN103440457B (en) | 2013-08-20 | 2013-09-18 | Based on the binary program analytic system of process simulation |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310364984.7 | 2013-08-20 | ||
CN201310364984 | 2013-08-20 | ||
CN201310426028.7A CN103440457B (en) | 2013-08-20 | 2013-09-18 | Based on the binary program analytic system of process simulation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103440457A CN103440457A (en) | 2013-12-11 |
CN103440457B true CN103440457B (en) | 2015-12-09 |
Family
ID=49694150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310426028.7A Active CN103440457B (en) | 2013-08-20 | 2013-09-18 | Based on the binary program analytic system of process simulation |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103440457B (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886251B (en) * | 2014-04-08 | 2017-10-24 | 北京奇虎科技有限公司 | The method and device of system reinforcement |
US9509708B2 (en) * | 2014-12-02 | 2016-11-29 | Wontok Inc. | Security information and event management |
SG10201500921QA (en) * | 2015-02-06 | 2016-09-29 | Huawei Internat Pte Ltd | Method for obfuscation of code using return oriented programming |
CN105094825B (en) * | 2015-07-21 | 2018-11-06 | 中国科学院信息工程研究所 | A kind of memory variable distribution dynamic discovery method |
US9753745B1 (en) * | 2016-08-17 | 2017-09-05 | TCL Research America Inc. | System and method for system function-flow optimization utilizing application programming interface (API) profiling |
CN107239410B (en) * | 2017-05-31 | 2020-06-09 | 上海交通大学 | Large-block memory allocation system and method based on dynamic instrumentation |
CN109783363A (en) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | A kind of anomalous event analogy method and device and computer equipment |
CN109614294A (en) * | 2018-12-14 | 2019-04-12 | 河南飙风信息科技有限公司 | Enterprise's log analysis access system |
CN113722020B (en) * | 2020-05-26 | 2024-06-11 | 腾讯科技(深圳)有限公司 | Interface calling method, device and computer readable storage medium |
CN113918950A (en) * | 2021-12-14 | 2022-01-11 | 成都无糖信息技术有限公司 | Sandbox construction method based on simulation execution |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154258A (en) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | Malicious program dynamic behavior automatic analysis system and method |
CN101814053A (en) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | Method for discovering binary code vulnerability based on function model |
CN102622536A (en) * | 2011-01-26 | 2012-08-01 | 中国科学院软件研究所 | Method for catching malicious codes |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108562A1 (en) * | 2003-06-18 | 2005-05-19 | Khazan Roger I. | Technique for detecting executable malicious code using a combination of static and dynamic analyses |
-
2013
- 2013-09-18 CN CN201310426028.7A patent/CN103440457B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154258A (en) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | Malicious program dynamic behavior automatic analysis system and method |
CN101814053A (en) * | 2010-03-29 | 2010-08-25 | 中国人民解放军信息工程大学 | Method for discovering binary code vulnerability based on function model |
CN102622536A (en) * | 2011-01-26 | 2012-08-01 | 中国科学院软件研究所 | Method for catching malicious codes |
Non-Patent Citations (2)
Title |
---|
Detecting and Analysis of Cryptographic Data Inside Software;Ruoxu Zhao;《14th International Conference, ISC 2011》;20111029;论文第252-263页 * |
Detecting Encryption Functions via Process Emulation and IL-Based Program Analysis;Ruoxu Zhao;《14th International Conference, ICICS 2012》;20121031;论文第182-196页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103440457A (en) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103440457B (en) | Based on the binary program analytic system of process simulation | |
KR102255767B1 (en) | Systems and methods for virtual machine auditing | |
Srinivasan et al. | Process out-grafting: an efficient" out-of-vm" approach for fine-grained process execution monitoring | |
CN110059453B (en) | Container virtualization security reinforcing device and method | |
Tsai et al. | Cooperation and security isolation of library OSes for multi-process applications | |
US8504703B2 (en) | Systems and methods for instruction sequence compounding in a virtual machine environment | |
JP5172879B2 (en) | Virtualization event processing in a layered virtualization architecture | |
US7886293B2 (en) | Optimizing system behavior in a virtual machine environment | |
US8151264B2 (en) | Injecting virtualization events in a layered virtualization architecture | |
CN102938035B (en) | Driving separation system inside virtual machine and method | |
TW201935306A (en) | Systems and methods for policy linking and/or loading for secure initialization | |
Lu et al. | Research on intelligent detection of command level stack pollution for binary program analysis | |
CN102651062B (en) | System and method for tracking malicious behavior based on virtual machine architecture | |
US11709716B2 (en) | Hardware offload support for an operating system offload interface using operation code verification | |
JP2013109777A (en) | Virtualizing performance counters | |
CN106201872A (en) | A kind of running environment detection method of android system | |
TW201339971A (en) | Virtual machine control structure shadowing | |
US10129275B2 (en) | Information processing system and information processing method | |
Bulekov et al. | {HYPERPILL}: Fuzzing for Hypervisor-bugs by Leveraging the Hardware Virtualization Interface | |
Wang et al. | Raft: Hardware-assisted dynamic information flow tracking for runtime protection on RISC-V | |
Roessler et al. | Scalpel: Exploring the limits of tag-enforced compartmentalization | |
Xing et al. | OB‐IMA: out‐of‐the‐box integrity measurement approach for guest virtual machines | |
Niu et al. | Enforcing user-space privilege separation with declarative architectures | |
CN113849397A (en) | Execution engine, virtual machine, related apparatus and related method | |
CN102779250B (en) | The detection method of file controllable execution and virtual machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190327 Address after: Room 105G, No. 199 GuoShoujing Road (Biological and Medical Innovation Building), Pudong New Area Free Trade Pilot Area, Shanghai, 201203 Patentee after: Shanghai Jiaotong University Intellectual Property Management Co., Ltd. Address before: 200240 No. 800, Dongchuan Road, Shanghai, Minhang District Patentee before: Shanghai Jiao Tong University |
|
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200113 Address after: 201601 Shanghai city Songjiang District Sijing Town Cultural Road No. 298 Patentee after: Zhixun password (Shanghai) Testing Technology Co., Ltd Address before: Room 105G, No. 199 GuoShoujing Road (Biological and Medical Innovation Building), Pudong New Area Free Trade Pilot Area, Shanghai, 201203 Patentee before: Shanghai Jiaotong University Intellectual Property Management Co., Ltd. |