CN101154259A - 通用自动化脱壳引擎与方法 - Google Patents
通用自动化脱壳引擎与方法 Download PDFInfo
- Publication number
- CN101154259A CN101154259A CNA2007100498553A CN200710049855A CN101154259A CN 101154259 A CN101154259 A CN 101154259A CN A2007100498553 A CNA2007100498553 A CN A2007100498553A CN 200710049855 A CN200710049855 A CN 200710049855A CN 101154259 A CN101154259 A CN 101154259A
- Authority
- CN
- China
- Prior art keywords
- program
- shelling
- instruction
- fundamental block
- code
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机二进制加壳程序的通用自动化脱壳引擎和方法。该***由反汇编部件、虚拟执行部件、脱壳监控部件和程序重构部件组成。该方法是:调试方式启动目标程序,反汇编部件获取目标程序的汇编指令,虚拟执行部件切片生成相应的基本块并虚拟执行指令。脱壳监控部件检测目标程序的写内存行为,记录所有的写内存区域。监控目标程序控制流跳转到新写内存区域的行为,以此判定脱壳过程结束。程序重构部件搜集所有新写内存区域的数据,采用内存转储、输入表重构等技术,生成原始二进制程序。本发明适用于对未知加壳程序的快速通用脱壳,辅助特征码检测方法。无需加壳程序的特征,同时具有很小的运行负载。
Description
技术领域
本发明涉及加壳二进制程序的通用自动化脱壳引擎与方法。本发明用于对已知和未知二进制加壳程序的动态细粒度自动化分析,辅助专业安全人员的分析和特征码检测工作。
背景技术
目前,Internet上流传的各类恶意程序中,具调查有90%以上的均采用了加壳的方式来抵抗传统特征码扫描的检测,在国内广泛流传的″灰鸽子″木马程序的变种,几乎都是通过多态/变形加壳产生的。加壳程序就是针对原始二进制程序进行压缩、加密、反追踪等手段来防止正常的检测。由于特征码扫描属于误用检测,其具有非常高的准确率,但因为需要大量的样本,使得该方法却具有较大的漏报率,原因在于使用不同的加壳程序对用一个二进制程序进行加密,得到新的二进制程序的特征将完全不同。
世界各大反恶意代码厂商也纷纷投入大量的资金进行相关工作的研究,目前比较流行的方法有硬编码脱壳、虚拟机脱壳和启发式扫描三类。硬编码脱壳就是搜集大量加壳程序的特征码,当扫描发现二进制程序是经过加壳处理过的,就匹配相应的特征码,进而用固定的方法将其脱壳,得到原始的二进制程序。该方法具有较高的准确率,但同样也面临着漏报等问题,因为只要加壳程序经过细微的改变后,其原始的特征码将随之而改变。
虚拟机脱壳是当前最前沿的技术,它支持对绝大部分加壳程序的通用脱壳方式,只要加壳程序的基本原理时一致的。但由于涉及到x86CPU指令集的模拟,PE装载等问题,所以目前仅有极少数的安全公司掌握了该技术。目前国内的各大反恶意代码厂商提出的虚拟机脱壳解决方案,其本质往往是结合了硬编码脱壳的方式,从它们支持加壳程序的类型和数量就可以分析得出。同时,由于虚拟机脱壳方式需要模拟CPU指令集,所以效率非常的低,在处理大批量文件时运行负载较大。
启发式扫描方式属于行为检测方式,它能够大致判定程序是否经过加壳处理,但往往不能准确得判定原始二进制程序的类型,并且也无法将原始二进制程序解压出来。所以,启发式扫描在大多数情况下只能猜测该二进制程序包含恶意行为,适应范围较广,但准确率较低。
因此,迫切需要一种能有效模拟通用自生成代码运行的环境,并支持高效快速脱壳的方法。该方法应该能针对各类加壳程序工作,采用运行时监控机制,捕获加壳程序的通用脱壳行为,在内存中高速重构原始二进制程序,有效辅助恶意二进制程序的细粒度分析,进一步加强特征码扫描检测的功效。
发明内容
有鉴于此,本发明的目的是提供一种能有效模拟通用自生成代码运行的环境,并支持高效快速脱壳的方法。该方法应该能针对各类加壳程序工作,采用运行时监控机制,捕获加壳程序的通用脱壳行为,在内存中高速重构原始二进制程序。通用自动化脱壳引擎不仅能有效辅助恶意二进制程序的细粒度分析,还能够加强在网络终端用户特征码扫描检测方法的检测能力,减小恶意代码特征库,适应大量变种的不断涌现。
为了达到上述目的,本发明提供了一种通用自动化脱壳引擎和方法,其特征在于:该引擎包括了下述组成部件:
反汇编部件:虚拟执行***获取目标二进制程序的代码流,由反汇编部件生成对应的汇编代码,逐条分析得到的汇编指令。虚拟执行部件将目标代码流分解成多个指令集,以模拟代码流正常执行的方式执行基本块中的每条指令,该过程实现局部代码执行,而指令集则组成了虚拟执行的基本块。每个基本块是没有包含分支语句的指令序列,在满足以下条件时结束代码流切片:无条件控制转移指令;条件控制转移指令;指定数量的非控制转移指令。反汇编部件用于动态构建与目标代码流相一致的虚拟执行基本块。
虚拟执行部件:虚拟执行部件的结构组成包括:基本块生成模块,基本块缓存模块,基本块预处理模块和虚拟执行模块。基本块生成模块调用反汇编部件,对获取的二进制代码流进行分析,生成不包含控制转移指令的基本块。这就使得目标代码流的所有执行都能够保持在虚拟执行***的控制范围内。为提高运行效率进行相应的执行预处理,生成的基本块经过执行预处理后存放在基本块缓存内。只有存在于基本块缓存内的代码指令才能执行,原始的目标代码流不能直接执行。基本块预处理模块为了提升***的运行性能,采用了基本块结合技术和标准代码忽略技术,以此减小运行时的延迟。
脱壳监控部件:脱壳监控部件的结构组成包括:内存写监控模块和控制流转移监控模块。加壳程序在脱壳过程中,必然需要在内存空间中重新生成新的代码和数据,所以通过内存写操作的监控就能够得到原始二进制程序在内存中的代码和数据。当加壳程序在内存中解压直到脱壳过程完成后,将在内存中保存有原始二进制程序的全部指令和数据,这时加壳程序就会通过控制流转移指令将执行权转移到新生成的指令代码,进而执行原始二进制程序的指令。
程序重构部件:程序重构部件的结构组成包括:代码数据转储模块、输入表重构模块。加壳程序的内存写操作会在内存中产生原始二进制程序的执行指令和数据,如程序的堆、栈等。内存写操作在内存中的操作范围可以通过计算得到,在整个范围之中的代码和数据就是原始可执行二进制程序的拷贝。在脱壳监控部件终止的指令位置,就是原始二进制程序的入口点位置。通过重构原始可执行二进制程序的代码和数据,还无法生成一个完整的程序。同时,还需要对原始二进制程序的输入表进行构建,以产生可执行的二进制程序。
为了达到上述目的,本发明还提供了一种通用自动化脱壳方法,其特征在于:该方法包括了下述操作步骤:
步骤(1),以调试方式启动二进制程序;
步骤(2),反汇编部件获取目标程序的汇编指令;
步骤(3),虚拟执行部件切片生成相应的基本块并虚拟执行指令;
步骤(4),脱壳监控部件检测目标程序的写内存行为;
步骤(5),记录所有的被写内存区域;
步骤(6),监控目标程序控制流跳转到新写内存区域的行为;
步骤(7),程序重构部件搜集所有新写内存区域的数据,采用内存转储得到原始程序的执行指令和数据;
步骤(8),利用输入表重构技术,生成原始的二进制程序。
总之,本发明***与方法的优点简述如下:基于代码切片虚拟执行引擎的通用自动化脱壳引擎将提供一个加壳二进制程序动态执行监控的平台,通过分析目标二进制程序的动态程序行为,主要包括代码生成与执行相关的指令序列,模拟并捕获加壳二进制程序的通用脱壳过程,并获取在内存中生成的原始二进制程序指令。由于采用了基于代码切片的虚拟执行引擎,具有可变粒度的快速模拟执行优势,运行时的负载相比于传统的CPU指令集虚拟方法要小很多。通过抽象出加壳程序的基本脱壳流程,使得该脱壳引擎支持各类加壳程序,包括压缩壳和加密壳,相比其他的硬编码脱壳方法具有更强的能力,适应范围更广。通用自动化脱壳引擎不仅能有效辅助恶意二进制程序的细粒度分析,还能够加强在网络终端用户特征码扫描检测方法的检测能力,减小恶意代码特征库,适应大量变种的不断涌现。
附图说明
图1是本发明通用自动化脱壳方法的流程图。
图2是本发明通用自动化引擎的总体结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
首先,通用自动化脱壳引擎将初始化,加载对应的虚拟执行部件、反汇编部件、脱壳监控部件和程序重构部件。以调试方式启动目标二进制加壳程序,进而监控并分析二进制程序的每条指令执行。通过反汇编部件获取目标二进制程序指令流的汇编指令,将提供易于分析的代码指令。通过确定目标二进制程序指令流中的控制流转移指令,为后续的代码切片提供条件。虚拟执行部件根据反汇编部件提供的汇编指令流,切片生成相应的基本块,并将基本块放入到虚拟执行缓存中,提供虚拟执行预处理。通过预处理,代码切片将进行性能优化处理,最后虚拟执行代码切片中的每条指令。
在虚拟执行目标代码流时,脱壳监控部件将时时检测目标程序的写内存行为。因为经过加壳处理的二进制程序必须通过解压缩解密来得到原始二进制程序的指令序列,新生成的指令序列则必须通过写内存,以保存在新分配的内存区域。通过监视整个写内存过程,可以搜集得到新生成的原始二进制程序的指令和数据。脱壳监控部件记录所有的被写内存区域,并标识该内存区域。脱壳监控部件同时还要监控目标程序控制流跳转到新写内存区域的行为。因为当解压缩解密完原始二进制程序后,加壳程序必须将控制权转移给新生成的内存代码区域,才能执行原始二进制程序的指令序列。因此,通过监控控制流从加壳程序到新生成目标程序的行为,可以判定脱壳过程的结束,同时也意味着原始二进制程序已经完全解压缩解密成功。
程序重构部件搜集所有新写内存区域的数据,采用内存转储得到原始程序的执行指令和数据,并利用输入表重构技术,生成原始的二进制程序。
图2为通用自动化脱壳引擎的总体结构框图。下面将结合附图2,具体介绍本发明引擎的各个组成部件:
反汇编部件
反汇编部件分析虚拟执行***获取目标二进制程序的代码流,生成对应的每一条汇编指令,逐条分析得到的汇编指令。当遇到控制转移指令,或基本块的累计指令数目超出用户定义的范围时,设置为该基本块的结束。反汇编部件用于动态构建与目标代码流相一致的虚拟执行基本块。
虚拟执行部件将目标代码流分解成多个指令集,以模拟代码流正常执行的方式执行基本块中的指令。这个过程称之为局部执行,而指令集被称为基本块。一个基本块是没有包含分支的指令序列,在满足以下条件发生时结束代码流切片:无条件控制转移指令;条件控制转移指令;规定数量的非控制转移指令。
基本块生成模块
虚拟执行部件在目标代码流上采用特殊体系的反汇编部件,每次分析一条指令,并创建相应的基本块。每个基本块以***指定的特殊指令集结束,称为基本块结束标志,然后由它将控制权转移到虚拟执行部件。基本块结束标志确保被分析的目标代码流始终处于虚拟执行***的控制之下。当一个基本块执行时,通过基本块的基本块结束标志在其执行完时获得控制权,决定创建新基本块的目标内存起始地址,动态创建一个相应的新基本块,并重新执行新建的基本块。在没有虚拟执行***的控制下,目标代码流的执行将按照其原始正常的执行方式运行。基本块生成模块针对控制流转换指令采取了特殊处理,以支持自变异/自校验代码和其它任何形式的迷惑代码。它不必重编译目标代码指令流就能很好的工作,完全支持在用户和内核模式下的多线程监控,允许根据需要要求调节细粒度分析级别。基本块结束标志是虚拟执行***终止每个基本块的特殊代码结构,它可被抽象成仅有一个参数的函数。该参数是指向基本块结束标志的索引,它允许虚拟执行***获取监控代码流的运行时信息,包含创建新块需要的目标代码的地址。一个基本块结束标志替换终止基本块的控制流的条件或非条件转换指令。在某些情况下,由于达到预定的非控制流转换指令数,终止创建基本块。
基本块预处理模块
一个基本块中可能包含了一条指令,它将控制转移到一个标准执行语义处的代码流,如***调用、标准库函数。局部执行这类标准代码流将导致更多的运行延迟,并且在绝大多数环境下是不允许的。代码切片虚拟执行***能够动态识别这类标准代码流,并将它们从代码切片处理中排除掉,因此将免去因执行一个操作***或标准函数代码时可能带来的延迟。该技术称之为基本块忽略。基本块忽略技术同样能够用来排除那些在代码切片过程中,已经被分析过的代码流部分,以此提高运行效率。代码切片虚拟执行***基本块的执行涉及到进入/离开虚拟执行引擎的控制权转移。这些转移将导致因***对处理器寄存器状态的保存和恢复带来的延迟。这种情况在代码流循环执行过程中特别明显,因为每次循环都将调用虚拟执行部件。***基本块组合技术可以减少因代码切片引起的延迟。该技术将一组基本块组合成一个基本块,避免对虚拟执行部件的多次控制转移。基本块组合技术是一个强大的处理机制,它将产生类似于原始代码流的基本块,同时可以确保代码切片虚拟执行***对执行代码流的完全控制,并达到最小的运行延迟。通过用户定义的回调函数实现基本块组合技术,该函数选择需要的基本块进行基本块组合。
虚拟执行模块
局部执行开始于一个用户定义的目标代码流起始点,在此称之为触发点。触发点是一个需要进行细粒度分析的内存地址,通常为操作***或库函数地址。代码切片虚拟执行***中的触发点通过动态监控部件来定义。只要执行到一个触发点,就将调用虚拟执行部件进行细粒度分析,直到遇到一个释放点。释放点是在目标代码流中,虚拟执行部件放弃监控并让其代码流返回到正常执行的内存地址。触发点和对应的释放点确定了在代码切片虚拟执行***下对目标代码流细粒度分析的范围,同时也让其它的代码流正常执行,称之为选择性隔离执行。在代码切片虚拟执行***下,可以对目标代码流指定多个重叠或非重叠的触发点和释放点。构架***触发点和释放点的嵌套,允许释放点为无限数量。在这种情况下,包含目标代码流的整个线程都在代码切片虚拟执行***的监控下运行,直到线程终止或者监控***停止局部执行。虚拟执行部件在忽略目标代码流执行优先级的情况下,以无优先级模式运行单独的基本块。这将确保代码切片虚拟执行***对执行的指令有完全的控制权。虚拟执行***可以监视任何对指定内存区域的访问:操作***内核、资源和动态链接库等。代码切片虚拟执行***采用虚拟内存机制结合巧妙的技术来监控内存访问。在虚拟执行部件中不使用任何特定的操作***函数。虚拟执行***使用的反汇编器是完全重用的。构架***为每个线程维持了一个针对基本块结束标志的参数信息块,它不会破坏执行堆栈,采用精巧的技术保持隐蔽。这些特性使得虚拟执行***支持多线程环境。无论基本块结束标志是否存在,执行线程的寄存器看起来都是没有差异的。基本块结束标志支持进程或操作***内核的自动线程监视。这是一个自动将目标进程中代码流切片的特性。因此,通过将指定进程创建API作为初始触发点,允许虚拟执行***在每个父进程下的新线程或新进程处,自动***触发点,整个进程环境都能在基本块结束标志的控制下运行。
脱壳监控部件
脱壳监控部件包含了内存写监控模块和控制流转移监控模块。加壳程序在脱壳过程中,必然需要在内存空间中重新生成新的代码和数据,所以通过内存写操作的监控就能够得到原始二进制程序在内存中的代码和数据。由于整个加壳程序的执行都是在我们的虚拟执行引擎Ghost之上的,所以能够掌握整个控制权,并且能完全监视所有的代码执行行为。通过监视在内存中新生成的指令和数据,为后期重构原始二进制程序作好了准备。当加壳程序在内存中解压直到脱壳过程完成后,将在内存中保存有原始二进制程序的全部指令和数据,这时加壳程序就会通过控制流转移指令将执行权转移到新生成的指令代码,进而执行原始二进制程序的指令。通过控制流转移监控,可以确定虚拟脱壳过程的结束,也就意味这可以开始重构原始二进制程序。此时,停止加壳程序的执行。
程序重构部件
程序重构部件的结构组成包括代码数据转储模块、输入表重构模块。加壳程序的内存写操作会在内存中产生原始二进制程序的指令和执行数据,如程序的堆、栈等。内存写操作在内存中的操作范围可以通过计算得到,在整个范围之中的代码和数据就是原始可执行二进制程序的拷贝。在脱壳监控部件终止的指令位置,就是原始二进制程序的入口点位置。通过重构原始可执行二进制程序的代码和数据,还无法生成一个完整的程序。同时,还需要对原始二进制程序的输入、输出表等进行构建,以产生可执行的二进制程序。
Claims (5)
1.通用自动化脱壳引擎,其特征在于包括如下组成部件:
反汇编部件:虚拟执行部件获取目标二进制程序的代码流,由反汇编部件生成对应的汇编代码,逐条分析得到的汇编指令。当遇到控制转移指令,或基本块的累计指令数目超出用户定义的范围时,设置为该基本块的结束。反汇编部件用于动态构建与目标代码流相一致的虚拟执行基本块。
虚拟执行部件:虚拟执行部件针对反汇编部件生成的不包含控制转移指令的基本块,为提高运行效率进行相应的执行预处理,并将基本块存放于内部的执行缓存内,最终虚拟执行基本块中的每条指令。用户停止监控分析后,虚拟执行部件将控制权返回给目标二进制程序,按正常执行模式继续运行。
脱壳监控部件:加壳程序在脱壳过程中,必然包含原始数据的解压缩和解密,在内存中生成新的指令和数据,最后也必然会将控制权转移给原始二进制程序。通过对这两类行为的分析和监控,可以得到通用的脱壳算法和流程,以适应各种未知加壳程序的环境。
程序重构部件:在内存中解压缩解密后的指令和数据,通过转储可以生成得到对应的二进制文件。但还需要对原始PE文件结构的重新构建,其中主要包括对应的输入表信息。
2.根据权利要求1所述的通用自动化脱壳引擎,其特征在于:虚拟执行部件的结构组成包括:基本块生成模块,基本块缓存模块,基本块预处理模块和虚拟执行模块。基本块生成模块调用反汇编部件,对获取的二进制代码流进行分析,生成不包含控制转移指令的基本块。这就使得目标代码流的所有执行都能够保持在虚拟执行***的控制范围内。生成的基本块经过执行预处理后,存放在基本块缓存内。只有存在于基本块缓存内的代码指令才能执行,原始的目标代码流不能直接执行。基本块预处理模块为了提升***的运行性能,采用了基本块结合技术和标准代码忽略技术,以此减小运行时的延迟。
3.根据权利要求1所述的通用自动化脱壳引擎,其特征在于:脱壳监控部件的结构组成包括:内存写监控模块和控制流转移监控模块。加壳程序在脱壳过程中,必然需要在内存空间中重新生成新的代码和数据,所以通过内存写操作的监控就能够得到原始二进制程序在内存中的代码和数据。当加壳程序在内存中解压直到脱壳过程完成后,将在内存中保存有原始二进制程序的全部指令和数据,这时加壳程序就会通过控制流转移指令将执行权转移到新生成的指令代码,进而执行原始二进制程序的指令。
4.根据权利要求1所述的通用自动化脱壳引擎,其特征在于:程序重构部件的结构组成包括:执行代码与数据转储模块、输入表重构模块。加壳程序的内存写操作会在内存中产生原始二进制程序的执行指令和数据,如程序的堆、栈等。内存写操作在内存中的操作范围可以通过计算得到,在整个范围之中的代码和数据就是原始可执行二进制程序的拷贝。在脱壳行为监控部件终止的指令位置,就是原始二进制程序的入口点位置。通过重构原始可执行二进制程序的代码和数据,还无法生成一个完整的程序。同时,还需要对原始二进制程序的输入表进行构建,以产生可执行的二进制程序。
5.根据权利要求1所述的通用自动化脱壳方法,其特征在于:
步骤(1),以调试方式启动二进制程序;
步骤(2),反汇编部件获取目标程序的汇编指令;
步骤(3),虚拟执行部件切片生成相应的基本块并虚拟执行指令;
步骤(4),脱壳监控部件检测目标程序的写内存行为;
步骤(5),记录所有的被写内存区域;
步骤(6),监控目标程序控制流跳转到新写内存区域的行为;
步骤(7),程序重构部件搜集所有新写内存区域的数据,采用内存转储得到原始程序的执行指令和数据;
步骤(8),利用输入表重构技术,生成原始的二进制程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100498553A CN101154259A (zh) | 2007-08-27 | 2007-08-27 | 通用自动化脱壳引擎与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100498553A CN101154259A (zh) | 2007-08-27 | 2007-08-27 | 通用自动化脱壳引擎与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101154259A true CN101154259A (zh) | 2008-04-02 |
Family
ID=39255909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100498553A Pending CN101154259A (zh) | 2007-08-27 | 2007-08-27 | 通用自动化脱壳引擎与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101154259A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023842A (zh) * | 2010-12-16 | 2011-04-20 | 北京安天电子设备有限公司 | 去除花指令的方法及装置 |
CN102184363A (zh) * | 2011-05-21 | 2011-09-14 | 电子科技大学 | 基于综合处理的软件壳自动脱壳方法 |
CN102831343A (zh) * | 2012-07-27 | 2012-12-19 | 北京奇虎科技有限公司 | 一种目标程序处理方法、处理装置及云端服务设备 |
CN103019739A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN103019828A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN102004884B (zh) * | 2009-08-28 | 2013-04-17 | 华为技术有限公司 | 一种获取可执行文件输入表的方法及装置 |
CN103064718A (zh) * | 2013-01-23 | 2013-04-24 | 北京伸得纬科技有限公司 | 一种虚拟机载入器 |
CN103077332A (zh) * | 2012-12-28 | 2013-05-01 | 飞天诚信科技股份有限公司 | 一种运行含有自校验的加壳程序的方法和装置 |
CN103077029A (zh) * | 2012-12-28 | 2013-05-01 | 北京神州绿盟信息安全科技股份有限公司 | 一种导入表的修复方法及装置 |
CN103268441A (zh) * | 2013-05-20 | 2013-08-28 | 李贵林 | 一种计算机程序进行指令级监控和分析***及方法 |
CN104506495A (zh) * | 2014-12-11 | 2015-04-08 | 国家电网公司 | 一种智能化网络apt攻击威胁分析方法 |
CN104700003A (zh) * | 2013-12-04 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 一种文件加壳及脱壳方法、装置及*** |
CN108846280A (zh) * | 2018-06-29 | 2018-11-20 | 江苏通付盾信息安全技术有限公司 | 应用文件的脱壳方法及装置 |
CN107798241B (zh) * | 2016-09-07 | 2020-01-31 | 龙芯中科技术有限公司 | 攻击检测装置、***及方法 |
CN111309308A (zh) * | 2020-02-27 | 2020-06-19 | 思客云(北京)软件技术有限公司 | 一种对c和c++编译器加壳的方法、设备和计算机可读存储介质 |
CN112580035A (zh) * | 2019-09-30 | 2021-03-30 | 奇安信安全技术(珠海)有限公司 | 程序脱壳方法及装置、存储介质、计算机设备 |
-
2007
- 2007-08-27 CN CNA2007100498553A patent/CN101154259A/zh active Pending
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004884B (zh) * | 2009-08-28 | 2013-04-17 | 华为技术有限公司 | 一种获取可执行文件输入表的方法及装置 |
CN102023842B (zh) * | 2010-12-16 | 2013-09-11 | 北京安天电子设备有限公司 | 去除花指令的方法及装置 |
CN102023842A (zh) * | 2010-12-16 | 2011-04-20 | 北京安天电子设备有限公司 | 去除花指令的方法及装置 |
CN102184363A (zh) * | 2011-05-21 | 2011-09-14 | 电子科技大学 | 基于综合处理的软件壳自动脱壳方法 |
CN102184363B (zh) * | 2011-05-21 | 2013-09-25 | 电子科技大学 | 基于综合处理的软件壳自动脱壳方法 |
CN102831343A (zh) * | 2012-07-27 | 2012-12-19 | 北京奇虎科技有限公司 | 一种目标程序处理方法、处理装置及云端服务设备 |
CN102831343B (zh) * | 2012-07-27 | 2015-06-17 | 北京奇虎科技有限公司 | 一种目标程序处理方法、处理装置及云端服务设备 |
CN103019739A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN103077029A (zh) * | 2012-12-28 | 2013-05-01 | 北京神州绿盟信息安全科技股份有限公司 | 一种导入表的修复方法及装置 |
CN103077029B (zh) * | 2012-12-28 | 2016-07-13 | 北京神州绿盟信息安全科技股份有限公司 | 一种导入表的修复方法及装置 |
CN103077332A (zh) * | 2012-12-28 | 2013-05-01 | 飞天诚信科技股份有限公司 | 一种运行含有自校验的加壳程序的方法和装置 |
CN103019828A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN103077332B (zh) * | 2012-12-28 | 2015-08-26 | 飞天诚信科技股份有限公司 | 一种运行含有自校验的加壳程序的方法和装置 |
CN103019739B (zh) * | 2012-12-28 | 2015-07-29 | 北京神州绿盟信息安全科技股份有限公司 | 重定位表的修复方法、程序脱壳方法及相关装置 |
CN103019828B (zh) * | 2012-12-28 | 2015-06-17 | 北京神州绿盟信息安全科技股份有限公司 | 一种基于加壳程序的辅助脱壳方法及装置 |
CN103064718A (zh) * | 2013-01-23 | 2013-04-24 | 北京伸得纬科技有限公司 | 一种虚拟机载入器 |
CN103268441A (zh) * | 2013-05-20 | 2013-08-28 | 李贵林 | 一种计算机程序进行指令级监控和分析***及方法 |
WO2015081856A1 (en) * | 2013-12-04 | 2015-06-11 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus and system for file encryption and decryption |
CN104700003A (zh) * | 2013-12-04 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 一种文件加壳及脱壳方法、装置及*** |
CN104700003B (zh) * | 2013-12-04 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 一种文件加壳及脱壳方法、装置及*** |
CN104506495A (zh) * | 2014-12-11 | 2015-04-08 | 国家电网公司 | 一种智能化网络apt攻击威胁分析方法 |
CN107798241B (zh) * | 2016-09-07 | 2020-01-31 | 龙芯中科技术有限公司 | 攻击检测装置、***及方法 |
CN108846280A (zh) * | 2018-06-29 | 2018-11-20 | 江苏通付盾信息安全技术有限公司 | 应用文件的脱壳方法及装置 |
CN112580035A (zh) * | 2019-09-30 | 2021-03-30 | 奇安信安全技术(珠海)有限公司 | 程序脱壳方法及装置、存储介质、计算机设备 |
CN112580035B (zh) * | 2019-09-30 | 2024-02-06 | 奇安信安全技术(珠海)有限公司 | 程序脱壳方法及装置、存储介质、计算机设备 |
CN111309308A (zh) * | 2020-02-27 | 2020-06-19 | 思客云(北京)软件技术有限公司 | 一种对c和c++编译器加壳的方法、设备和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101154259A (zh) | 通用自动化脱壳引擎与方法 | |
CN102930210B (zh) | 恶意程序行为自动化分析、检测与分类***及方法 | |
Wang et al. | A systematic review of fuzzing based on machine learning techniques | |
US8225291B2 (en) | Automated detection of application performance bottlenecks | |
CN109739755B (zh) | 一种基于程序追踪和混合执行的模糊测试*** | |
US9594754B2 (en) | Purity analysis using white list/black list analysis | |
CA2801573C (en) | Dynamically loading graph-based computations | |
CN100501757C (zh) | 基于代码切片的虚拟执行***与方法 | |
KR101715759B1 (ko) | 멀티코어 환경에서의 악성코드 분석 장치 및 방법 | |
Nguyen et al. | Towards automatic tuning of apache spark configuration | |
CN109145534A (zh) | 针对软件虚拟机保护的反混淆***及方法 | |
CN111813672B (zh) | 一种针对多种处理器架构的非侵入式覆盖率统计方法 | |
CN103246566A (zh) | 应用程序的资源监控方法及装置 | |
CN113885879A (zh) | 字节码插桩方法、***和字节码插桩插件框架 | |
AU2014262225A1 (en) | Dynamically loading graph-based computations | |
CN105183629A (zh) | 分析php应用软件性能的诊断***及其方法和性能管理平台 | |
Cunha et al. | Context-aware execution migration tool for data science Jupyter Notebooks on hybrid clouds | |
Theelen et al. | Model checking of scenario-aware dataflow with CADP | |
CN114337920A (zh) | 编码解析方法、装置及电子设备 | |
CN103019865B (zh) | 虚拟机监控方法和*** | |
CN113419960B (zh) | 用于可信操作***内核模糊测试的种子生成方法及*** | |
AU2016200107B2 (en) | Dynamically loading graph-based computations | |
Bluemke et al. | Usage of UML Combined Fragments in Automatic Function Point Analysis. | |
Liu et al. | ConFL: Constraint-guided Fuzzing for Machine Learning Framework | |
CN109656543A (zh) | 一种基于文件关键字替换的自动代码生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |