导读:本文包含了代码逆向分析论文开题报告文献综述及选题提纲参考文献,主要关键词:Smali,Java,Android,逆向分析修复
代码逆向分析论文文献综述
徐国天,张明星[1](2019)在《基于Smali-Java关键代码修复的Android程序逆向分析方法》一文中研究指出目前Android程序取证主要是采用逆向分析方法,但是在将APK程序转换为Java源代码的过程中,部分核心代码因结构复杂,无法转换为正确的Java源程序。针对这一问题,提出一种基于Smali-Java关键代码修复的Android程序逆向分析方法,这种方法通过人工分析方式,根据Smali源代码完成受损Java程序的修复。通过大量实际测试,证明该方法可以较好地应用于案件的检验鉴定工作。(本文来源于《中国刑警学院学报》期刊2019年03期)
李天辉,王艳青[2](2016)在《Android恶意代码的逆向分析》一文中研究指出本文主要研究基于逆向工程的Android应用程序中恶意代码的分析方法。首先,通过逆向工程得到Android应用程序的Java源代码和资源文件,然后根据源代码分析程序的功能、结构;根据manifest资源文件分析程序组件的各种权限,再结合恶意代码的行为特征判断是否存在恶意代码及其危害。也可以据此方法研究Android系统受攻击的原因及防御办法并进一步发现恶意代码的特征。(本文来源于《信息安全与通信保密》期刊2016年04期)
邱景[3](2015)在《面向软件安全的二进制代码逆向分析关键技术研究》一文中研究指出二进制代码逆向分析是一种针对二进制代码的程序分析技术。它在源代码无法获取的情形中至关重要。如在恶意软件检测与分析中,由于恶意软件作者往往不公开源代码,二进制代码逆向分析几乎是唯一的分析手段。在对商业软件的安全审查以及抄袭检测中,由于没有源代码,也只能对其二进制代码进行分析。二进制代码逆向分析技术还可以应用于加固现有软件,减少安全漏洞,也可以用于阻止软件被破解,防止软件被盗版,保护知识产权。当前,无论是在巨型计算机,还是在智能手机以及嵌入式设备中,绝大多数软件都是以二进制代码形式发布。所以,研究二进制代码逆向分析对于提高计算机软件的安全性,具有重要的科学理论意义和实际应用价值。由于二进制代码和源代码间存在巨大的差异,使得二进制代码逆向分析相对于程序源代码分析要困难得多。混淆技术的使用和编译器优化也会增加对二进制代码进行分析的难度。此外,为保护软件不被检测和分析,恶意软件会使用各种反分析方法,如基于完整性校验的反修改和基于计时攻击的反监控。为分析这些软件,需要对抗这些反分析。这又进一步增加了二进制代码逆向分析的难度。本文重点对二进制代码反分析的识别,反汇编,函数和库函数的识别等关键技术进行深入研究。针对当前反分析识别的研究都只针对特定类型的反分析设计特定的反分析识别方法、缺乏通用性的问题,分析了各种反分析方法之间的概念相似性,提出了一个基于信息流的反分析识别框架。针对当前对抗基于完整性校验的反修改需使用硬件辅助且不能处理自修改代码的问题,研究了一个无需硬件辅助的基于动态信息流的识别方法。首先使用后向污点分析来识别可执行内存位置或用来计算可执行位置值的内存位置,然后使用前向污点分析来识别校验过程。对于基于计时攻击的反监控,亦可以使用这种方法识别。首先将常见获取时间的指令和系统调用的返回值作为污点源,然后使用污点分析识别验证过程。本文方法可以成功识别现有研究文献中的基于完整性校验的反修改和基于计时攻击的反监控技术,并提供识别出的反分析的基础结构信息,进而可以帮助分析人员设计出对抗这些反分析的技术。针对当前动静结合反汇编方法仍存在覆盖率低的问题,研究了一种多路径探索方法来反汇编代码。静态反汇编无法区分可执行代码区域中的数据和代码,也无法处理自修改代码。动态反汇编方法代码覆盖率低,只会处理已执行的路径。本文使用基于二进制插桩技术的动态分析技术记录程序指令执行轨迹,并通过逆转已执行路径中的条件分支来实现多路径探索,从而提高动态分析的覆盖率。然后精简合并所有执行轨迹。最后使用静态反汇编来发现未处理区域中的代码。该方法能够高准确度高覆盖率地反汇编二进制代码。当前函数识别方法无法识别无交叉引用和无头尾特征的函数。针对这个问题,研究了一个以函数返回指令为识别特征的函数识别方法。因为一个函数至少有一个返回指令使得控制流离开函数,因此,相比传统方法使用的函数头尾特征,本文采用的返回指令作为识别特征更可靠。首先引入逆向扩展控制流图(Reverse Extended Control Flow Graph,RECFG)的概念。它是特定代码区域中,包含指定返回指令所有可能的控制流图集合。然后提出一种基于RECFG的函数识别方法,该方法首先从一个代码区域中的所有可解释为返回指令的地址开始逆向分析控制流图,构造RECFG。设计了4个图剪枝规则来移除非编译器正常生成的点和路径。然后对于每个独立的RECFG,最后使用多属性决策方法来挑选一个子图作为函数的控制流图。该方法可以准确地识别特定代码区域中可能的函数。针对传统库函数识别方法无法识别内联库函数的问题,研究了一个识别库函数的新方法。由于内联及优化的库函数存在非连续性和多态性,传统的基于函数头n个字节的特征匹配方法无法识别内联函数。本文首先引入执行流图(Execution Flow Graph,EFG)的概念,用EFG来描述二进制代码的内在行为特征。然后通过在目标函数中识别相似EFG子图来识别库函数。通过分析其各指令内执行依赖关系识别目标函数中非连续内联库函数。通过指令标准化识别经编译优化后存在的多形态内联库函数。由于子图同构测试非常耗时,因此本文定义了5个过滤器过滤掉不可能匹配的子图,并引入收缩执行流图(Reduced Execution Flow Graph,REFG)来加速子图同构测试。EFG和REFG方法的查准率都比当前最先进的工具高,并可以准确地识别传统方法难以识别的内联库函数。相对于EFG,REFG可以在保持相同查准率和查全率的情况下显着降低EFG方法的处理时间。综上所述,上述方法为识别包括基于完整性校验的反修改在内的反分析、提高动态反汇编方法覆盖率、识别无交叉引用无明显头尾特征的函数、快速识别库函数等关键技术问题提供了新思路和新方法。(本文来源于《哈尔滨工业大学》期刊2015-09-01)
赵北庚[4](2015)在《软件逆向分析过程中基于OllyDbg的叁种汇编代码定位方法》一文中研究指出软件逆向分析技术在信息安全领域中发挥着至关重要的作用。软件逆向分析过程中,对汇编代码的定位速度极大地影响着工作效率。本文以Olly Dbg为调试工具,结合具体的实例,总结和分析了叁种汇编代码定位思路。(本文来源于《网络安全技术与应用》期刊2015年02期)
刘豫,王明华,苏璞睿,冯登国[5](2012)在《基于动态污点分析的恶意代码通信协议逆向分析方法》一文中研究指出对恶意代码通信协议的逆向分析是多种网络安全应用的重要基础.针对现有方法在协议语法结构划分的完整性和准确性方面存在不足,对协议字段的语义理解尤为薄弱,提出了一种基于动态污点分析的协议逆向分析方法,通过构建恶意进程指令级和函数级行为的扩展污点传播流图(Extended Taint Propagation Graph,ETPG),完成对协议数据的语法划分和语义理解.通过实现原型系统并使用恶意代码样本进行测试,结果表明本方法可以实现有效的语法和语义分析,具有较高的准确性和可靠性.(本文来源于《电子学报》期刊2012年04期)
贾菲,刘威[6](2012)在《基于Android平台恶意代码逆向分析技术的研究》一文中研究指出文章针对当前基于安卓平台恶意代码分析技术的滞后性,介绍了安卓平台的基本结构,结合目前基于安卓平台恶意代码的主要破坏方式,采用静态分析机制,研究了基于安卓平台恶意代码逆向分析技术,为公安机关打击移动网络环境下的违法犯罪活动提供技术支持。(本文来源于《信息网络安全》期刊2012年04期)
刘建林[7](2011)在《可执行程序隐藏代码逆向分析技术研究》一文中研究指出软件安全是信息安全的重要组成部分,软件逆向分析是保障软件安全的重要技术手段,在软件漏洞挖掘、恶意代码检测等方面有重要的应用价值。但随着反逆向分析技术的发展,越来越多的软件使用加壳、加密及混淆等技术来隐藏自身代码,单纯依靠静态或动态分析技术已经难以实现对程序中隐藏代码的提取与分析。动静结合的代码分析方法作为软件分析的一个趋势,对其进行深入的研究具有十分重要的意义。论文首先总结了软件逆向分析的常用方法与现有的反逆向分析技术,并对比分析了当前代码分析技术在处理隐藏代码方面存在的问题,进而提出了基于静态控制流分析的隐藏代码动态捕获方法。为了获取程序控制结构来支持动态插桩,通过分析传统静态控制流分析技术在处理混淆代码时的缺陷,设计了一种以代码识别优先的控制流遍历方法;针对普遍存在的使用篡改调用返回地址来隐藏代码的问题,提出了一种基于精简后向切片的返回地址分析方法,解决了函数调用中的返回地址判定问题;在静态分析的基础上,提出了基于程序结构的动态二进制插桩方法,实现了隐藏代码的动态捕获与执行前分析;为了克服反调试技术对动态分析的限制,论文还研究了基于标志位检测、系统API检测以及断点检测的反反调试技术。在技术研究基础上,论文设计并实现了一个可执行程序隐藏代码逆向分析原型系统,并对原型系统的功能及性能进行了测试。测试结果表明:该系统能够有效获取可执行程序中的隐藏代码,对于分析采用反逆向技术的软件有较好的应用价值。(本文来源于《解放军信息工程大学》期刊2011-04-15)
胡刚[8](2011)在《固件代码逆向分析关键技术研究》一文中研究指出固件代码逆向分析作为固件逆向工程的重要组成部分,是嵌入式系统重构和再工程的基础,也是进行信息系统安全检测、国外先进技术引进、遗产系统维护等工作的重要技术手段,具有较高的研究价值和较好的应用前景。本文以国家863课题(2009AA01Z434)的研发工作为背景,深入分析了固件代码与传统应用软件的不同,较为系统地总结了固件逆向工程的相关研究成果,在此基础上对固件代码逆向分析的相关理论和技术进行了深入研究,主要内容包括:1.设计了一个面向固件代码逆向分析的虚拟指令集体系结构(Firmcode Reverse- Oriented Virtual Instruction Set Architecture, fr-VISA),讨论了基于fr-VISA的指令归一化方法,证明了该指令归一化方法的语义等价性。2.深入分析了传统静态控制流恢复算法的基本原理和性能特点,结合固件代码自身的特点,设计了一种基于fr-VISA指令模拟的控制流恢复算法和一种混合编码模式下的控制流恢复算法,提高了控制流恢复的精度。3.研究了中断向量表在固件代码反汇编中对结构重构和反汇编精度的影响,设计了一种重构中断向量表的启发式算法和一种基于中断向量表的函数调用图提取算法。4.在指令归一化、控制流恢复和反汇编技术研究的基础上,设计实现了一个固件代码逆向分析平台amPro,并测试验证了平台设计的正确性和有效性。(本文来源于《解放军信息工程大学》期刊2011-04-10)
殷文建[9](2010)在《面向ARM体系结构的代码逆向分析关键技术研究》一文中研究指出ARM微处理器广泛运用于嵌入式系统中,针对ARM二进制代码的逆向分析对于以ARM为核心的嵌入式设备的解剖和安全缺陷分析具有重要意义。本文着重研究面向ARM体系结构的代码逆向分析的关键技术。论文提出了一种基于代码语义属性分析的二进制解析模型,针对ARM指令系统特点和程序编译后代码特征,从指令和指令序列两种粒度级别分别讨论了代码语义属性分析方法;设计了一种基于静态单一赋值(SSA)的中间语言BRIL,给出了中间语言BRIL的指称语义;针对从汇编表示到中间表示的代码语义抽象问题,通过分析影响ARM指令语义的因素,构建了指令语义字典描述模型,设计了基于语义字典的代码变换算法;针对中间表示中的代码冗余问题,提出了基于SSA表示的表达式传播、死代码删除和表达式代数化简叁种代码变换方法;设计并实现了二进制代码逆向分析原型工具CodeSemantics Frontier。测试结果表明,CodeSemantics Frontier能够快速有效地生成脱离ARM指令集的BRIL中间代码表示,为目标代码在高级语义抽象层次上的分析利用提供良好的支撑。(本文来源于《解放军信息工程大学》期刊2010-04-15)
王祥根[10](2009)在《自修改代码逆向分析方法研究》一文中研究指出恶意代码(Malicious code,Malware)已成为互联网安全的主要威胁。随着计算机的普及和互联网的发展,恶意代码造成的危害也越来越严重。为了提高对恶意代码造成的网络攻击的应急响应速度,我们必须对恶意代码做出快速有效的分析。恶意代码分析的目的是提取恶意代码执行时表现出的行为(runtimebehavior)、解析其意图及其实现机理,为恶意代码的检测和清除提供参考。而恶意代码作者为了对恶意代码进行保护,加大恶意代码分析的难度,往往通过加密、变形和加壳等多种技术手段隐藏自身代码特征,阻碍恶意代码机理分析和特征提取,躲避恶意代码检测。传统分析方法难以有效解决针对受保护的恶意代码的分析问题。针对恶意代码分析与软件安全测评等业务的需要,本文重点分析了典型恶意代码软件保护关键技术以及恶意代码分析技术的最新进展,深入研究了典型自修改代码(Self-Modifying Code,SMC)的实现机理,在此基础上,针对典型SMC提出了一种基于硬件模拟器的逆向分析方法,取得以下几个方面的研究成果:(1)深入分析了典型SMC的实现机理,并初步建立了SMC模型。我们根据动态生成代码的生成方式、修改模式以及存储模式等因素,首次对SMC作了初步的分类和建模,为后续的SMC分析方法奠定了基础。(2)提出了一种基于硬件模拟器的可执行文件中动态生成代码的识别与提取方法。本方法通过在模拟器中单步执行目标可执行文件,并通过截获虚拟系统执行指令,使用影子内存监控程序执行过程中的内存写操作以及控制转移指令等信息,识别提取程序执行过程中动态释放到内存中并得到执行的代码,获取分析目标的数据信息。由于在硬件模拟器中对可执行文件进行动态分析,数据采集是通过模拟硬件实现,而不是将恶意代码放在真实的CPU上执行,因此对实际系统不造成任何影响。(3)提出了一种基于硬件模拟器的动态链接库中动态生成代码的识别与提取方法。本方法在模拟器中使用动态链接库加载程序引导加载动态链接库,设置单步执行标志,仅使目标动态链接库文件中的指令在模拟器中单步执行,通过触发动态链接库中入口点等函数的执行,并通过截获虚拟系统执行指令,使用影子内存监控动态链接库中代码执行过程中的内存写操作以及控制转移指令等信息,识别提取其执行过程中动态释放到内存中并得到执行的代码,获取分析目标的数据信息。(4)提出一种基于二进制文件重构的自修改代码分析方法。我们针对不同类型的SMC提出了相应的重构方法,即在不改变其代码行为的前提下将提取的动态生成代码恢复到原二进制文件中,生成完整的、可直接静态分析或运行的二进制文件。以此为基础,分析人员可利用传统分析方法对其进一步分析,提高了针对SMC的逆向分析能力。本方法原理简单,易实现,且具有较好的通用性,不仅适用于可执行文件,而且适用于动态链接库。(5)提出了一种基于代码覆盖的多路径分析方法。基于代码覆盖的多路径分析方法重点解决了对循环代码的处理问题,通过标识判断条件节点,减少局部路径被重复遍历的次数,在保证分析效果的同时,提高分析系统的分析效率以及代码覆盖率。(6)设计实现了一套SMC逆向分析原型系统,完成了SMC分析的相关实验,对文中基于二进制文件重构的自修改代码逆向分析方法的有效性,分析效率以及性能等方面进行了评估。(本文来源于《中国科学技术大学》期刊2009-04-29)
代码逆向分析论文开题报告
(1)论文研究背景及目的
此处内容要求:
首先简单简介论文所研究问题的基本概念和背景,再而简单明了地指出论文所要研究解决的具体问题,并提出你的论文准备的观点或解决方法。
写法范例:
本文主要研究基于逆向工程的Android应用程序中恶意代码的分析方法。首先,通过逆向工程得到Android应用程序的Java源代码和资源文件,然后根据源代码分析程序的功能、结构;根据manifest资源文件分析程序组件的各种权限,再结合恶意代码的行为特征判断是否存在恶意代码及其危害。也可以据此方法研究Android系统受攻击的原因及防御办法并进一步发现恶意代码的特征。
(2)本文研究方法
调查法:该方法是有目的、有系统的搜集有关研究对象的具体信息。
观察法:用自己的感官和辅助工具直接观察研究对象从而得到有关信息。
实验法:通过主支变革、控制研究对象来发现与确认事物间的因果关系。
文献研究法:通过调查文献来获得资料,从而全面的、正确的了解掌握研究方法。
实证研究法:依据现有的科学理论和实践的需要提出设计。
定性分析法:对研究对象进行“质”的方面的研究,这个方法需要计算的数据较少。
定量分析法:通过具体的数字,使人们对研究对象的认识进一步精确化。
跨学科研究法:运用多学科的理论、方法和成果从整体上对某一课题进行研究。
功能分析法:这是社会科学用来分析社会现象的一种方法,从某一功能出发研究多个方面的影响。
模拟法:通过创设一个与原型相似的模型来间接研究原型某种特性的一种形容方法。
代码逆向分析论文参考文献
[1].徐国天,张明星.基于Smali-Java关键代码修复的Android程序逆向分析方法[J].中国刑警学院学报.2019
[2].李天辉,王艳青.Android恶意代码的逆向分析[J].信息安全与通信保密.2016
[3].邱景.面向软件安全的二进制代码逆向分析关键技术研究[D].哈尔滨工业大学.2015
[4].赵北庚.软件逆向分析过程中基于OllyDbg的叁种汇编代码定位方法[J].网络安全技术与应用.2015
[5].刘豫,王明华,苏璞睿,冯登国.基于动态污点分析的恶意代码通信协议逆向分析方法[J].电子学报.2012
[6].贾菲,刘威.基于Android平台恶意代码逆向分析技术的研究[J].信息网络安全.2012
[7].刘建林.可执行程序隐藏代码逆向分析技术研究[D].解放军信息工程大学.2011
[8].胡刚.固件代码逆向分析关键技术研究[D].解放军信息工程大学.2011
[9].殷文建.面向ARM体系结构的代码逆向分析关键技术研究[D].解放军信息工程大学.2010
[10].王祥根.自修改代码逆向分析方法研究[D].中国科学技术大学.2009