共查询到19条相似文献,搜索用时 55 毫秒
1.
2.
3.
4.
越来越多的软件以平台无关的中间代码来发布,代码混淆技术降低了被静态分析、逆向工程和篡改等恶意攻击的可能性,从而达到保护软件源码的效果。文章从软件保护的方法出发,给出了代码混淆技术的定义和目标,介绍了代码混淆技术的分类和性能指标,最后指出代码混淆技术的发展方向。 相似文献
5.
二进制代码比较技术在病毒变种分析,安全补丁分析,版本信息导出等许多领域都有着广泛的应用。在定义了基于图的二进制代码描述方法的基础上,从函数和基本块两个层次对近似的二进制代码进行比较,分析出它们之间相同的部分和差异信息。讨论了基于图的二进制文件特征的选取,利用特征比较和固定点传播算法,建立两份代码在函数和基本块两个级别的对应关系。本文给出了这种基于特征提取的二进制代码比较技术的实现框架,并列举了它在恶意软件变种分析,公开漏洞定位方面的利用实例。 相似文献
6.
7.
逆向工程领域的进步,一方面提升了软件分析能力,另一方面,给软件安全带来更大的挑战。目标代码混淆技术是对软件进行保护的一种有力手段,能够有效地阻挡对软件的恶意分析。文中从逆向分析的角度出发介绍了目标代码混淆技术的分类及几种典型的目标代码混淆技术的实现及混淆效果。 相似文献
8.
为了提高基于垃圾代码的控制流混淆方法的优化效果, 针对插入分支垃圾代码以及循环垃圾代码会引入大量额外开销的问题, 从软件保护中代码混淆技术出发, 对代码混淆技术的研究现状和原理、混淆算法攻击以及基于控制流混淆技术作了深入研究, 提出一种基于Java代码控制混淆中插入垃圾代码的改进方法。新方法与基于垃圾代码的控制流混淆变换方法比较, 结果表明, 新方法增加了代码抵抗攻击者的静态分析的能力, 增加了反编译以及逆向工程的难度, 既达到了很好的防御逆向工程攻击的效果, 又不会大量引入额外的系统开销。 相似文献
9.
目标代码混淆技术综述 总被引:3,自引:0,他引:3
逆向工程领域的进步,一方面提升了软件分析能力,另一方面,给软件安全带来更大的挑战。目标代码混淆技术是对软件进行保护的一种有力手段,能够有效地阻挡对软件的恶意分析。文中从逆向分析的角度出发介绍了目标代码混淆技术的分类及几种典型的目标代码混淆技术的实现及混淆效果。 相似文献
10.
11.
模型检测迷惑二进制恶意代码 总被引:1,自引:0,他引:1
对二进制恶意代码进行形式化建模,开发了一个检查迷惑恶意代码的模型检查器。生成迷惑前的二进制恶意代码的有限状态机模型,再使用模型检查器检测迷惑二进制恶意代码,如果迷惑二进制恶意代码能被有限状态机模型识别,可判定其为恶意代码。实验结果表明模型检查迷惑二进制恶意代码是一种有效的静态分析方法,可以检测出一些常用的迷惑恶意代码。 相似文献
12.
13.
Arun Lakhotia Eric Uday Kumar Venable M. 《IEEE transactions on pattern analysis and machine intelligence》2005,31(11):955-968
Information about calls to the operating system (or kernel libraries) made by a binary executable may be used to determine whether the binary is malicious. Being aware of this approach, malicious programmers hide this information by making such calls without using the call instruction. For instance, the call addr instruction may be replaced by two push instructions and a ret instruction, the first push pushes the address of instruction after the ret instruction, and the second push pushes the address addr. The code may be further obfuscated by spreading the three instructions and by splitting each instruction into multiple instructions. This work presents a method to statically detect obfuscated calls in binary code. The idea is to use abstract interpretation to detect where the normal call-ret convention is violated. These violations can be detected by what is called an abstract stack graph. An abstract stack graph is a concise representation of all potential abstract stacks at every point in a program. An abstract stack is used to associate each element in the stack to the instruction that pushes the element. An algorithm for constructing the abstract stack graph is also presented. Methods for using the abstract stack graph are shown to detect eight different obfuscations. The technique is demonstrated by implementing a prototype tool called DOC (detector for obfuscated calls). 相似文献
14.
由于变种和多态技术的出现,恶意代码的数量呈爆发式增长。然而涌现的恶意代码只有小部分是新型的,大部分仍是已知病毒的变种。针对这种情况,为了从海量样本中筛选出已知病毒的变种,从而聚焦新型未知病毒,提出一种改进的判定恶意代码所属家族的方法。从恶意代码的行为特征入手,使用反汇编工具提取样本静态特征,通过单类支持向量机筛选出恶意代码的代表性函数,引入聚类算法的思想,生成病毒家族特征库。通过计算恶意代码与特征库之间的相似度,完成恶意代码的家族判定。设计并实现了系统,实验结果表明改进后的方法能够有效地对各类家族的变种进行分析及判定。 相似文献
15.
16.
17.
18.
《Information Security Journal: A Global Perspective》2013,22(6):346-352
ABSTRACT Software security helps in identifying and managing risks. One of the effective ways to identify software vulnerabilities is to analyze its code. Code analysis (Chess & West, 2007) helps in catching common coding mistakes such as buffer overflow, unused variables, memory leaks, and various race conditions, which in turn optimizes computer programs, both in storage and computation aspects. Software developers use either open source tools or commercial tools for verification and validation of software. Without proper validation of a software/system using some standard guidelines, potential attackers can find ways to exploit vulnerabilities and bugs and then can gain control over a system, if they are successful. In this paper, we discuss some of the open source static code analysis and dynamic analysis tools, their merits, and limitations with respect to some target codes that contain possible threats. We consider C/C++ and Java programming languages for our experiments. For static code analyzers, we consider Flawfinder, Splint, and Cppcheck; PMD, Findbugs, and Valgrind for dynamic code analysis, and its plug-in, Memcheck, to perform dynamic analysis on executables. We provide our observations in a comparison table, highlighting these tools strengths and weaknesses. 相似文献
19.
分析对比了恶意代码的静态分析方法和动态分析方法,设计并实现了一种结合虚拟机技术和Windows操作系统自身所具有的调试功能来获取恶意代码行为的模块,该模块能够自动控制虚拟机运行监控程序来获取恶意代码的行为,并通过引入基于信息增益的特征权重算法来获得行为特征. 相似文献