CN114491424A - 基于模糊测试的二进制代码裁剪方法 - Google Patents
基于模糊测试的二进制代码裁剪方法 Download PDFInfo
- Publication number
- CN114491424A CN114491424A CN202111666898.2A CN202111666898A CN114491424A CN 114491424 A CN114491424 A CN 114491424A CN 202111666898 A CN202111666898 A CN 202111666898A CN 114491424 A CN114491424 A CN 114491424A
- Authority
- CN
- China
- Prior art keywords
- binary code
- binary
- test
- code
- cut
- 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.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000010998 test method Methods 0.000 claims abstract description 4
- 230000035772 mutation Effects 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 6
- 239000000523 sample Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 210000000349 chromosome Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Abstract
本发明提出了一种基于模糊测试的二进制代码裁剪方法,用于解决现有技术中存在的攻击面裁剪度低的技术问题,实现步骤为:(1)获取待裁剪的二进制代码及其测试用例集合;(2)基于模糊测试方法构建样本集合;(3)获取待裁剪的二进制代码的裁剪结果。本发明使用基于模糊测试的方法构建待裁剪二进制代码的样本集,避免了现有技术将混淆技术增加的冗余代码加入裁剪后的二进制代码的问题,减小了裁剪得到的二进制代码总量,从而减小了裁剪后二进制代码的攻击面,与现有技术相比,在保证健壮性的前提下,有效提高了攻击面裁剪度。
Description
技术领域
本发明属于信息安全技术领域,涉及一种基于模糊测试的二进制代码裁剪方法,可用于在没有源代码的情况下计算机可执行文件所包含的二进制代码的进行裁剪,减小可执行文件二进制代码的攻击面。
背景技术
计算机程序可以理解为可执行文件,计算机的可执行文件是由二进制代码组成的,二进制代码是指由两个基本字符0,1组成的代码。计算机程序开发过程中,开发者按照需求完成源代码的编写,然后使用编译器和链接器将源代码翻译为二进制代码并生成可执行文件。具体过程为:编译器首先对源代码进行预处理,然后将源代码编译生成汇编代码,再对汇编代码进行优化并生成包含机器代码的对象文件。机器代码是用二进制代码表示的计算机指令的语言。开发者在程序开发过程中通常会调用第三方库函数。而目标文件中的机器代码仅只包含源代码的信息,并不包含第三方库函数的信息,因此目标文件并不能作为计算机可执行文件。最后,链接器将包含第三库信息的机器代码与对象文件所包含的机器代码相结合,生成计算机的可执行文件。
Linux系统上的可执行文件被称为ELF格式文件,Windows系统上的可执行文件被成为PE格式文件。ELF格式文件中的二进制代码由程序头,程序段头表,程序节头表,段区和节头表组成。其中段区由代码段、只读数据段、数据段、块数据段四部分组成。代码段用于存储可以可以被计算机直接执行的二进制代码。只读数据段存储可执行文件二进制代码中使用的复杂常量。数据段存储可执行文件中已经被明确初始化的全局数据。块数据段存储未被明确初始化的全局数据。
随着计算机技术的发展,计算机可执行文件向用户提供的功能越来越丰富,但是用户需要的只是其中的一部分功能。用户不需要的功能所对应的的二进制代码被称为冗余的二进制代码。冗余的二进制代码不仅浪费内存,还会扩大计算机可执行文件二进制代码的攻击表面,存在安全隐患。攻击表面,也称攻击面、攻击层面,它是指可执行文件二进制代码中可以被未授权用户(攻击者)输入或提取数据而受到攻击的点位(攻击矢量)。攻击矢量包括用户输入字段、协议、接口和服务等。攻击面越大,可执行文件被攻击者攻击的风险就越大。解决信息安全问题的方法之一就是减小可执行文件二进制代码的攻击表面。减少攻击表面的基本策略是减少可执行文件二进制代码总量,减少非信任用户可使用的入口点,以及消除用户很少使用的服务。因为关闭不必要的功能,可以避免它们带来的安全风险。减少未授权操作者可调用的代码有助避免安全事故。虽然减少攻击表面有助于防止安全事故,但它不能减少一旦攻击者发现漏洞后可能造成的损害程度。
目前研究者通常采用的裁剪方法为:分析可执行文件的源代码,裁剪掉用户不需要的功能所对应的源代码,然后重新编译链接生成裁剪后的二进制代码,减少二进制代码总量,进而减小攻击面。但是可执行文件的开发者通常不会发布该文件的源代码,因此基于源代码的裁剪方法并不实用,研究直接裁剪二进制代码的方法会更有意义。裁剪计算机可执行文件中二进制代码的主要思想是:获取待裁剪二进制代码的样本集合,然后使用动态二进制插桩方法得到样本集合的执行路径,最后使用二进制重写技术将输入样本集合的执行路径转化为裁剪后的二进制代码。
二进制代码裁剪方法可以从攻击面裁剪度和健壮性两个标准来进行评价。攻击面裁剪度可以用W表示,其中Z是指待裁剪二进制代码的总量,Z'是指裁剪得到的二进制代码的总量。裁剪得到的二进制代码总量越小,二进制代码的攻击面越小,二进制代码裁剪方法的裁剪度就越高。健壮性是指待裁剪二进制代码在执行不正常输入情况下仍能表现正常的程度。样本集的路径覆盖率越高,裁剪得到的二进制代码的健壮性越高。
论文“RAZOR:A Framework for Post-deployment Software Debloating”(InProceedings of the 28th USENIX security symposium,2019,1733-1751)公开了一种二进制代码裁剪方法,该方法首先获取待裁剪二进制代码的样本集合,然后使用静态启发式算法提高样本集合的路径覆盖率,记录样本集合的执行路径,最后使用二进制重写技术将样本集合的执行路径转化为裁剪后的二进制代码。为了保护知识产权,开发者通常使用混淆技术对二进制代码进行混淆。混淆技术中的不透明谓词技术会向二进制代码加入冗余代码,防止二进制代码被静态分析。该方法使用的静态启发式算法会将混淆技术增加的冗余代码加入二进制代码,使裁剪得到的二进制代码总量增大,使裁剪得到的二进制代码攻击面增大,二进制代码裁剪方法的攻击面裁剪度降低。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于模糊测试的二进制代码裁剪方法,用于解决现有技术中存在的可执行文件二进制代码的攻击面较大导致的攻击面裁剪度低的技术问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
1.一种基于模糊测试的二进制代码裁剪方法,其特征在于,包括如下步骤:
(1)获取待裁剪的二进制代码及其测试用例集合:
收集待裁剪二进制代码P的使用说明书,根据使用说明书确定二进制代码P可以执行的计算机文件格式,获取满足格式的N个计算机文件。将裁剪的二进制代码P的text段初始化为图G=(O,E),并将该二进制代码P包含的N个可以执行的计算机文件S={s1,s2,...,sn,...,sN}作为P的测试用例集合,其中,N≥20,sn表示第n个测试用例,O表示包括J个基本块的集合,O={o1,o2,...,oj,...,oJ},J≥2,oj表示第j个基本块,E表示包括T个边的集合,E={<oa,ob>|oa,ob∈O,0≤a≤J,0≤b≤J,a≠b,oa执行过后,可能立即执行ob},<oa,ob>表示第a个基本块与第b个基本块形成的边,T≥1;
(2)基于模糊测试方法构建样本集合I:
(2a)对待裁剪的二进制代码P中text段的每个基本块oj进行动态二进制插桩,并使用插桩后的二进制代码执行每个测试用例,记录测试用例执行过的边,将执行过的边组成测试用例的执行路径,最后将N个测试用例的执行路径合并为执行路径集合L;
(2b)使用具有随机性的变异操作对每个测试用例进行变异,得到变异后的测试用例,共进行Q次,并将Q次变异总共得到的所有M个变异后的测试用例组成集合D={d1,d2,...,dm,...,dM},其中M=N×Q,dm表示第m个变异后的测试用例Q≥30;
(2c)使用插桩后的二进制代码执行每个变异后的测试用例,记录执行过的边,将所有执行过的边作为的执行路径,将M个变异后的测试用例的执行路径与集合S的执行路径集合L做对比,将触发了新的执行路径的K个变异后的测试用例组成样本集合I={I1,I2,...,Ik,...,IK},其中,K<M,Ik表示第k个样本;
(3)获取待裁剪的二进制代码的裁剪结果:
将K个样本的执行路径合并,将合并结果作为样本集合I的执行路径集合,使用RAZOR工具将集合I的执行路径集合转化为机器代码,并用机器代码替换待裁剪二进制代码P的text段,得到裁剪后的二进制代码P'。
本发明与现有技术相比,具有如下优点:
本发明使用基于模糊测试的方法构建待裁剪二进制代码的样本集,避免了现有技术在使用静态启发式算法提高样本集路径覆盖率时,会将混淆技术增加的冗余代码加入裁剪后的二进制代码的问题,减小了裁剪得到的二进制代码总量,从而减小了裁剪后二进制代码的攻击面,与现有技术相比,在保证健壮性的前提下,有效提高了攻击面裁剪度。
附图说明
图1是本发明的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本发明作进一步详细描述:
参照附图1,本发明包括如下步骤:
(1)获取待裁剪的二进制代码及其测试用例:
本发明针对LINUX系统上的64位ELF格式可执行文件的二进制代码进行裁剪,收集待裁剪二进制代码P的使用说明书,根据使用说明书确定二进制代码P可以执行的计算机文件格式,获取满足格式的N个计算机二进制文件。将裁剪的二进制代码P的text段初始化为图G=(O,E),并将该二进制代码P包含的N个可以执行的计算机文件S={s1,s2,...,sn,...,sN}作为P的测试用例集合,其中,N≥20,sn表示第n个测试用例,O表示包括J个基本块的集合,O={o1,o2,...,oj,...,oJ},J≥2,oj表示第j个基本块,E表示包括T个边的集合,E={<oa,ob>|oa,ob∈O,0≤a≤J,0≤b≤J,a≠b,oa执行过后,可能立即执行ob},<oa,ob>表示第a个基本块与第b个基本块形成的边,T≥1;
二进制代码的使用说明书是指该二进制代码所对应的计算机可执行文件的使用说明书,也称软件使用说明书。使用说明书中包含该可执行文件的数据输入格式,如gif,pdf,doc等,获取满足格式的N个计算机文件。
(2)基于模糊测试方法构建样本集合I:
(2a)使用qemu二进制插桩工具将待裁剪的二进制代码P翻译为TCG中间代码,然后在TCG中间代码中每个基本块头部插入探针信息,完成插桩,然后使用插桩后的二进制代码执行每个测试用例,当测试用例在执行过程中,执行了新的基本块时,就将连接新的基本块与上一个执行过的基本块的边记录下来,将执行过的边组成测试用例的执行路径,最后将N个测试用例的执行路径合并,将合并结果作为集合S的执行路径;
(2b)使用具有随机性的变异操作对每个测试用例进行变异,得到变异后的测试用例,共进行Q次,并将Q次变异总共得到的所有M个变异后的测试用例组成集合D={d1,d2,...,dm,...,dM},其中M=N×Q,dm表示第m个变异后的测试用例Q≥30;
该步骤使用基于遗传算法的变异策略对测试用例进行变异。将测试用例集合初始化为种群,将测试用例集合中的测试用例作为种群中的个体,将测试用例视为字节序列,将字节序列作为染色体。跟踪测试用例的路径覆盖率信息,根据该路径覆盖率计算测试用例的适应度。从测试用例集合中选取某一测试用例执行突变操作,然后观察执行过程中是否触发了新的路径覆盖率,将触发了新的路径覆盖率的测试用例继续进行变异,同时将触发新的路径覆盖率的测试用例作为变异后的测试用例。
突变是指:将测试用例视为字节序列,首先随机选取字节序列中某一位置,对该位置的字节值的位翻转,然后随机选取字节序列中某一位置,将该位置的字节值的加上或减去一个随机数,然后用预设的特殊值替换字节序列中的随机位置的字节值,最后向测试用例的字节序列的随机位置中插入一个随机数。
(2c)使用插桩后的二进制代码执行每个变异后的测试用例,记录执行过的边,将所有执行过的边作为的执行路径,将M个变异后的测试用例的执行路径与集合S的执行路径集合L做对比,将触发了新的执行路径的K个变异后的测试用例组成样本集合I={I1,I2,...,Ik,...,IK},其中,K<M,Ik表示第k个样本;
(3)获取待裁剪的二进制代码的裁剪结果:
(3a)将K个样本的执行路径合并,将合并结果作为样本集合I的执行路径。使用RAZOR工具的轨迹收集模块,记录样本集合I的执行路径的控制流信息,控制流信息包括基本块的起始地址与结束地址,条件转移指令的地址与跳转的分支,间接跳转和间接调用的地址和运行时的目标,然后使用RAZOR工具的程序生成模块,根据样本集合I的执行路径的控制流信息,将集合I的执行路径转化为机器代码;
(3b)用集合I的机器代码替换待裁剪二进制代码P的text段,得到裁剪后的二进制代码P'。
本发明使用基于模糊测试的方法构建待裁剪二进制代码的样本集,避免了现有技术在使用静态启发式算法提高样本集路径覆盖率时,会将混淆技术增加的冗余代码加入裁剪后的二进制代码的问题,减小了裁剪得到的二进制代码总量,从而减小了裁剪后二进制代码的攻击面,与现有技术相比,在保证健壮性的前提下,有效提高了攻击面裁剪度。
Claims (2)
1.一种基于模糊测试的二进制代码裁剪方法,其特征在于,包括如下步骤:
(1)获取待裁剪的二进制代码及其测试用例集合:
将裁剪的二进制代码P的text段初始化为图G=(O,E),并将该二进制代码P包含的N个可以执行的计算机文件S={s1,s2,...,sn,...,sN}作为P的测试用例集合,其中,N≥20,sn表示第n个测试用例,O表示包括J个基本块的集合,O={o1,o2,...,oj,...,oJ},J≥2,oj表示第j个基本块,E表示包括T个边的集合,E={<oa,ob>|oa,ob∈O,0≤a≤J,0≤b≤J,a≠b,oa执行过后,可能立即执行ob},<oa,ob>表示第a个基本块与第b个基本块形成的边,T≥1;
(2)基于模糊测试方法构建样本集合I:
(2a)对待裁剪的二进制代码P中text段的每个基本块oj进行动态二进制插桩,并使用插桩后的二进制代码执行每个测试用例,记录测试用例执行过的边,将执行过的边组成测试用例的执行路径,最后将N个测试用例的执行路径合并为执行路径集合L;
(2b)使用具有随机性的变异操作对每个测试用例进行变异,得到变异后的测试用例,共进行Q次,并将Q次变异总共得到的所有M个变异后的测试用例组成集合D={d1,d2,...,dm,...,dM},其中M=N×Q,dm表示第m个变异后的测试用例Q≥30;
(2c)使用插桩后的二进制代码执行每个变异后的测试用例,记录执行过的边,将所有执行过的边作为的执行路径,将M个变异后的测试用例的执行路径与集合S的执行路径集合L做对比,将触发了新的执行路径的K个变异后的测试用例组成样本集合I={I1,I2,...,Ik,...,IK},其中,K<M,Ik表示第k个样本;
(3)获取待裁剪的二进制代码的裁剪结果:
将K个样本的执行路径合并,将合并结果作为样本集合I的执行路径集合,使用RAZOR工具将集合I的执行路径集合转化为机器代码,并用机器代码替换待裁剪二进制代码P的text段,得到裁剪后的二进制代码P'。
2.根据权利要求1所述的一种基于模糊测试的二进制代码裁剪方法,其特征在于,步骤(1)中所述的二进制代码P包含的N个可以执行的计算机文件S={s1,s2,...,sn,...,sN},获取方法为:收集待裁剪二进制代码P的使用说明书,根据使用说明书确定二进制代码P可以执行的计算机文件格式,获取满足格式的N个计算机文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666898.2A CN114491424B (zh) | 2021-12-31 | 基于模糊测试的二进制代码裁剪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111666898.2A CN114491424B (zh) | 2021-12-31 | 基于模糊测试的二进制代码裁剪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114491424A true CN114491424A (zh) | 2022-05-13 |
CN114491424B CN114491424B (zh) | 2024-05-03 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115757077A (zh) * | 2022-12-22 | 2023-03-07 | 深圳国家金融科技测评中心有限公司 | 一种系统裁剪程度及服务组件最小化评估方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050183072A1 (en) * | 1999-07-29 | 2005-08-18 | Intertrust Technologies Corporation | Software self-defense systems and methods |
US20140331206A1 (en) * | 2013-05-06 | 2014-11-06 | Microsoft Corporation | Identifying impacted tests from statically collected data |
CN104573524A (zh) * | 2014-12-19 | 2015-04-29 | 中国航天科工集团第二研究院七〇六所 | 一种基于静态检测的模糊测试方法 |
CN105721230A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种面向Modbus协议的模糊测试方法 |
CN107025175A (zh) * | 2017-05-12 | 2017-08-08 | 北京理工大学 | 一种模糊测试种子用例变长字段修剪方法 |
US20190079754A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Automating Identification of Code Snippets for Library Suggestion Models |
CN109885479A (zh) * | 2019-01-07 | 2019-06-14 | 中国人民解放军战略支援部队信息工程大学 | 基于路径记录截断的软件模糊测试方法及装置 |
US20190317882A1 (en) * | 2018-04-13 | 2019-10-17 | Baidu Usa Llc | Method and apparatus for testing a code file |
WO2019223247A1 (zh) * | 2018-05-23 | 2019-11-28 | 华南理工大学 | 基于路径覆盖测试用例自动生成的单元测试方法 |
CN111259394A (zh) * | 2020-01-15 | 2020-06-09 | 中山大学 | 一种基于图神经网络的细粒度源代码漏洞检测方法 |
CN111723382A (zh) * | 2020-07-24 | 2020-09-29 | 江西师范大学 | 动态Android程序漏洞验证方法和装置 |
CN112328298A (zh) * | 2020-09-29 | 2021-02-05 | 北京迈格威科技有限公司 | 移动端的代码库裁剪方法及装置 |
CN112463581A (zh) * | 2020-08-18 | 2021-03-09 | 清华大学 | 一种对分布式系统进行模糊测试的方法及系统 |
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050183072A1 (en) * | 1999-07-29 | 2005-08-18 | Intertrust Technologies Corporation | Software self-defense systems and methods |
US20140331206A1 (en) * | 2013-05-06 | 2014-11-06 | Microsoft Corporation | Identifying impacted tests from statically collected data |
CN105247493A (zh) * | 2013-05-06 | 2016-01-13 | 微软技术许可有限责任公司 | 从静态收集的数据中标识受影响的测试 |
CN105721230A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种面向Modbus协议的模糊测试方法 |
CN104573524A (zh) * | 2014-12-19 | 2015-04-29 | 中国航天科工集团第二研究院七〇六所 | 一种基于静态检测的模糊测试方法 |
CN107025175A (zh) * | 2017-05-12 | 2017-08-08 | 北京理工大学 | 一种模糊测试种子用例变长字段修剪方法 |
US20190079754A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Automating Identification of Code Snippets for Library Suggestion Models |
US20190317882A1 (en) * | 2018-04-13 | 2019-10-17 | Baidu Usa Llc | Method and apparatus for testing a code file |
WO2019223247A1 (zh) * | 2018-05-23 | 2019-11-28 | 华南理工大学 | 基于路径覆盖测试用例自动生成的单元测试方法 |
CN109885479A (zh) * | 2019-01-07 | 2019-06-14 | 中国人民解放军战略支援部队信息工程大学 | 基于路径记录截断的软件模糊测试方法及装置 |
CN111259394A (zh) * | 2020-01-15 | 2020-06-09 | 中山大学 | 一种基于图神经网络的细粒度源代码漏洞检测方法 |
CN111723382A (zh) * | 2020-07-24 | 2020-09-29 | 江西师范大学 | 动态Android程序漏洞验证方法和装置 |
CN112463581A (zh) * | 2020-08-18 | 2021-03-09 | 清华大学 | 一种对分布式系统进行模糊测试的方法及系统 |
CN112328298A (zh) * | 2020-09-29 | 2021-02-05 | 北京迈格威科技有限公司 | 移动端的代码库裁剪方法及装置 |
Non-Patent Citations (3)
Title |
---|
KENO HABLER 等: "WAFL :Binary-only webAssembly fuzzing with fast snapshots", ROOTS\'21:REVERSING AND OFFENSIVE-ORIENTED TRENDS SYMPOSIUM, 30 November 2021 (2021-11-30), pages 23 - 30, XP058870042, DOI: 10.1145/3503921.3503924 * |
焦龙龙 等: "变异策略动态构建的模糊测试数据生成方法", 北京理工大学学报, vol. 39, no. 05, 15 May 2019 (2019-05-15), pages 539 - 544 * |
蔡虹 等: "基于覆盖测试的嵌入式软件自动裁剪", 计算机工程, vol. 36, no. 01, 5 January 2010 (2010-01-05), pages 73 - 75 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115757077A (zh) * | 2022-12-22 | 2023-03-07 | 深圳国家金融科技测评中心有限公司 | 一种系统裁剪程度及服务组件最小化评估方法 |
CN115757077B (zh) * | 2022-12-22 | 2023-09-05 | 深圳国家金融科技测评中心有限公司 | 一种系统裁剪程度及服务组件最小化评估方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kirat et al. | Malgene: Automatic extraction of malware analysis evasion signature | |
CN112800423B (zh) | 一种二进制代码授权漏洞检测方法 | |
EP2350903B1 (en) | Heuristic method of code analysis | |
CN101359352B (zh) | 分层协同的混淆后api调用行为发现及其恶意性判定方法 | |
US7409718B1 (en) | Method of decrypting and analyzing encrypted malicious scripts | |
Jeon et al. | AutoVAS: An automated vulnerability analysis system with a deep learning approach | |
Tol et al. | Fastspec: Scalable generation and detection of spectre gadgets using neural embeddings | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
CN111814119B (zh) | 一种反调试的方法 | |
Pandey et al. | A framework for producing effective and efficient secure code through malware analysis | |
CN114491424B (zh) | 基于模糊测试的二进制代码裁剪方法 | |
CN114491424A (zh) | 基于模糊测试的二进制代码裁剪方法 | |
Alam et al. | Droidclone: Attack of the android malware clones-a step towards stopping them | |
CN110520860B (zh) | 用于防护软件代码的方法 | |
CN115712568A (zh) | 一种基于浮点格式感知模糊测试的浮点异常检测方法 | |
Fukuda et al. | A dynamic birthmark from analyzing operand stack runtime behavior to detect copied software | |
CN113419960B (zh) | 用于可信操作系统内核模糊测试的种子生成方法及系统 | |
Chan et al. | An approach to monitor application states for self-managing (autonomic) systems | |
CN113935022A (zh) | 一种同源样本捕获方法、装置、电子设备及存储介质 | |
Kwon et al. | OCTOPOCS: automatic verification of propagated vulnerable code using reformed proofs of concept | |
Usui et al. | Ropminer: Learning-based static detection of rop chain considering linkability of rop gadgets | |
CN116305131B (zh) | 脚本静态去混淆方法及系统 | |
Isawa et al. | Comparing malware samples for unpacking: A feasibility study | |
Kumar et al. | A thorough investigation of code obfuscation techniques for software protection | |
CN115391780B (zh) | 应用代码的安全加固方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |