共查询到20条相似文献,搜索用时 125 毫秒
1.
二进制代码比较技术在病毒变种分析,安全补丁分析,版本信息导出等许多领域都有着广泛的应用。在定义了基于图的二进制代码描述方法的基础上,从函数和基本块两个层次对近似的二进制代码进行比较,分析出它们之间相同的部分和差异信息。讨论了基于图的二进制文件特征的选取,利用特征比较和固定点传播算法,建立两份代码在函数和基本块两个级别的对应关系。本文给出了这种基于特征提取的二进制代码比较技术的实现框架,并列举了它在恶意软件变种分析,公开漏洞定位方面的利用实例。 相似文献
2.
3.
在二进制代码中识别密码算法对于查找恶意代码,保护计算机系统安全有着重要的意义,文章分析了密码算法的静态特征码和统计特征,并介绍具体静态特征码,以及相似性判定的的统计特征识别,研究的成果可以为鉴别二进制代码中的密码算法提供重要参考。 相似文献
4.
二进制小片段代码指令序列较短,基本块逻辑调用图结构简单,有限语义信息影响代码相似性比较结果,为此提出一种融合知识表示学习的二进制代码小片段相似性比较模型(BSM)。分别提取小片段代码的函数知识和函数代码,利用注意力机制和双向长短记忆得到知识嵌入,使用序列学习模型或图神经网络得到函数嵌入,融合知识嵌入和函数嵌入作为小片段代码向量表示。实验结果表明,BSM模型在跨平台比较上优于其它对比模型,说明模型能提升小片段代码比较的准确度。 相似文献
5.
现有的SLP优化算法无法处理内层循环中存在的依赖环和归约,并且在基本块边界产生大量的冗余拆包和赋值语句,从而导致向量化效率不高.针对该问题,提出了一种基于跨基本块变换和循环分布的SLP优化算法.该算法以控制流图为基础,根据基本块间各数组变量的Define-Use关系以及跨越基本块之间的数据依赖关系进行跨基本块的向量化变换,有序地采用跨基本块变换和循环分布,尽可能发掘最内层循环基本块内语句的并行性,使SLP自动向量化编译器生成具有更多SIMD指令的向量化代码.实验结果表明,该算法能够隐藏更多跨基本块冗余操作的开销,同时利用跨基本决的数据依较生成更优的SIMD指令,有效地提高了向量化程序的加速比. 相似文献
6.
二进制代码相似性检测在程序的追踪溯源和安全审计中都有着广泛而重要的应用.近年来,神经网络技术被应用于二进制代码相似性检测,突破了传统检测技术在大规模检测任务中遇到的性能瓶颈,因此基于神经网络嵌入的代码相似性检测技术逐渐成为热门研究.文中提出了一种基于神经网络的二进制函数相似性检测技术,该技术首先利用统一的中间表示来消除不同汇编代码在指令架构上的差异;其次在程序基本块级别,利用自然语言处理的词嵌入模型来学习中间表示代码,以获得基本块语义嵌入;然后在函数级别,利用改进的图神经网络模型来学习函数的控制流信息,同时兼顾基本块的语义,获得最终的函数嵌入;最后通过计算两个函数嵌入向量间的余弦距离来度量函数间的相似性.文中实现了一个基于该技术的原型系统,实验表明该技术的程序代码表征学习过程能够避免人为偏见的引入,改进的图神经网络更适合学习函数的控制流信息,系统的可扩展性和检测的准确率较现有方案都得到了提升. 相似文献
7.
8.
二进制翻译技术能够有效解决二进制兼容问题,促进新型体系结构的发展,也是虚拟机技术的重要组成部分,具有重要的研究和应用价值,但是其效率仍然有待提升,特别是目标代码生成的效率。设计了一种高效的目标代码生成算法——代码生成的子图覆盖算法(subgraph covering for code generation,SCCG),能够以尽可能少的代价生成精简的目标代码。该算法应用数据流图对二进制代码中的基本块进行建模,获取指令间的数据相关,并采用基于子图覆盖的贪心算法得到目标代码。在TransARM原型系统中进行了实现和测试,结果表明该算法获得了更优质的目标代码,并且成本得到了有效控制。 相似文献
9.
针对循环拷贝内存引发的缓冲区溢出漏洞,提出了一种上下文相关的过程间分析检测模型,通过对二进制代码进行一系列的静态分析,使用过程间分析提供的数据交互关系,对缓冲区溢出易发点进行挖掘。这种检测模型基于BinNavi的开放平台,以插件形式实现,能够对溢出易发点进行精确的筛选,有效地减少误报漏报情况。 相似文献
10.
《计算机应用与软件》2014,(1)
针对传统静态递归反汇编算法因无法解析间接跳转指令而导致反汇编结果不完整的问题,提出一种基于函数划分块和置信度的递归反汇编算法:以函数为划分块,对代码间隙进行多次递归扫描,获取反汇编过程中可能遗漏的重要基本块;建立置信度评估函数,以置信度为依据,剔除冲突的基本块,筛选出高置信度的基本块,用于补充和优化反汇编结果。实验证明,改进后的递归反汇编算法具有较高的反汇编精度。 相似文献
11.
This article deals with operational attacks leaded against cryptographic tools. Problem is approached from several point of
view, the goal being always to retrieve a maximum amount of information without resorting to intensive cryptanalysis. Therefore,
focus will be set on errors, deliberate or not, from the implementation or the use of such tools, to information leakage.
First, straight attacks on encryption keys are examined. They are searched in binary files, in memory, or in memory files
(such as hibernation files). We also show how a bad initialization on a random generator sharply reduces key entropy, and
how to negate this entropy by inserting backdoors. Then, we put ourselves in the place of an attacker confronted to cryptography.
He must first detect such algorithms are used. Solutions for this problem are presented, to analyze binary files as well as
communication streams. Sometimes, an attacker can only access encrypted streams, without having necessary tools to generate
such a stream, and is unable to break the encryption used. In such situations, we notice that it often remains information
leakages which appear to be clearly interesting. We show how classic methods used in network supervision, forensics and sociology
while studying social networks bring pertinent information. We build for example sociograms able to reveal key elements of
an organization, to determine the type of organization, etc. The final part puts in place the set of results obtained previously
through the analysis of a closed network protocol. Packet format identification relies on the behavioural analysis of the
program, once all the cryptographic elements have been identified. 相似文献
12.
Windows下堆内存管理机制研究 总被引:5,自引:0,他引:5
堆是用来存储动态数据的内存区域。通过堆函数,可以在进程的地址空间里创建私有堆,继而可以通过系统提供的一系列函数来管理堆中的内存。首先分析了堆的基本结构。然后通过对Windows堆中内存块的分配和释放进行深入分析。详细阐述堆内存的管理机制。 相似文献
13.
14.
Louis Kruh 《Cryptologia》2013,37(3):166-171
The structure and utilization of the “Generalized Rotor” (GR) cryptographic operator for the construction of cryptographic systems and mixers of pseudo-random streams has been discussed previously [1,2]. This article discusses the creation of key dependent rotors for rotor systems and their cryptographic application. Generation of key dependent rotor sets from an original fixed “basis” rotor set is discussed and is shown to allow the creation and management of readily changed rotor sets. The use of such frequently changed rotor sets adds materially to cryptographic security of systems utilizing these sets. The generation and application of “variable” rotor sets to substitution-permutation block codes is shown to add appreciable crypt analytic difficulties to these codes at a small processing cost and at a moderate memory cost to the encryption/decryption operation. 相似文献
15.
16.
This paper deals with the binary analysis of executable programs, with the goal of understanding how they access memory. It explains how to statically build a formal model of all memory accesses. Starting with a control flow graph of each procedure, well-known techniques are used to structure this graph into a hierarchy of loops in all cases. The paper shows that much more information can be extracted by performing a complete data-flow analysis over machine registers after the program has been put in static single assignment (SSA) form. By using the SSA form, registers used in addressing memory can be symbolically expressed in terms of other previously set registers. By including the loop structures in the analysis, loop indices and trip counts can also often be expressed symbolically. The whole process produces a formal model made of loops where memory accesses are linear expressions of loop counters and registers. The paper provides a quantitative evaluation of the results when applied to several dozens of SPEC benchmark programs. Because static analysis has no access to input data, the paper ends by describing a lightweight instrumentation strategy that collects at run time enough information to rebuild an exact trace. The section on applications also describes how the techniques developed in this paper can be used to perform automatic parallelization of binary code. 相似文献
17.
结点间流水是解决数据分布和计算分割不一致时的一种重要的并行发掘技术.结点间流水通过计算与通信的重叠获得并行度.精确的流水粒度是获得良好的流水性能的关键.流水分块取决于很多因素,如程序规模、程序的访问模式、结点规模、结点的计算能力和存储体系、通信系统的性能、通信库开销等等.提出了动态profiling方式并实现在流水粒度的推导中,运行时信息收集部分典型分块,结合代价模型推导流水粒度,该模型考虑局部性优化;探索如何减少插桩执行的开销的同时保证代价模型的精度.实验证明,这种方式有更好的适应性,能获得较好的流水并行. 相似文献
18.
针对加密软件中的密钥安全性问题,提出一种基于动态二进制插桩的密钥安全性检测方法。该方法面向CryptoAPI加密应用程序,首先通过对CryptoAPI密钥应用模式的分析,指出潜在的密钥安全性漏洞;然后以动态二进制分析平台Pin为支撑,动态记录程序运行期间的加解密过程信息;在此基础上设计关联性漏洞检测算法,实现对密钥安全性的检测。测试结果表明,该方法能够有效检测出两大类密钥安全性漏洞。 相似文献
19.
针对基本引力搜索算法搜索速度慢和容易出现早熟的缺点,本文提出了一种基于信息熵的混合引力搜索算法. 受粒子群算法的启发,所提算法首先通过改进基本引力搜索算法的速度和位置更新公式来提高搜索速度;其次,通过惯性质量构造了信息熵模型来刻画种群的寻优程度,并采用不同的信息熵阈值动态选择权重,平衡了算法的全局搜索能力和局部搜索能力. 用8个标准测试函数的仿真实验和基本引力搜索算法与记忆改进的引力搜索算法的比较表明了所提算法收敛速度快,鲁棒性强且效率高. 相似文献