首页--工业技术论文--自动化技术、计算机技术论文--计算技术、计算机技术论文--计算机软件论文--编译程序、解释程序论文

即时编译中隐式常量的防御研究

摘要第4-6页
Abstract第6-7页
第一章 引言第13-18页
    1.1 研究背景第13-16页
    1.2 研究内容第16页
    1.3 论文组织结构第16-18页
第二章 相关工作第18-31页
    2.1 针对静态代码的攻防角逐第18-26页
        2.1.1 代码注入攻击与W(?)X机制第18-19页
        2.1.2 代码复用攻击及防御第19-23页
        2.1.3 JIT-ROP攻防第23-26页
    2.2 动态生成代码的攻防第26-29页
        2.2.1 JIT喷洒攻击第26-28页
        2.2.2 利用显式常量构建ROP攻击第28-29页
    2.3 隐式常量的滥用第29-30页
        2.3.1 条件跳转指令中的隐式常量第29-30页
        2.3.2 call指令中的隐式常量第30页
    2.4 本章小结第30-31页
第三章 针对隐式常量攻击的防御方案分析第31-35页
    3.1 隐式常量ROP攻击的防御原理第31-32页
    3.2 可能的防御方案分析第32-34页
        3.2.1 插入NOP指令第32-33页
        3.2.2 隐藏隐式常数第33页
        3.2.3 保护函数指针第33-34页
    3.3 本章小结第34-35页
第四章 寄存器随机化与代码改写第35-46页
    4.1 动态代码生成的过程第35-37页
        4.1.1 字节码第35-36页
        4.1.2 解释执行第36页
        4.1.3 即时编译器第36-37页
    4.2 防御方案原理第37-38页
    4.3 寄存器随机化第38-43页
        4.3.1 Linux x64平台上指令的格式第38-40页
        4.3.2 寄存器的使用第40-41页
        4.3.3 函数的调用约定第41-43页
    4.4 代码改写第43-44页
        4.4.1 代码改写的作用第43页
        4.4.2 代码改写的过程第43-44页
    4.5 可行性分析第44-45页
    4.6 本章小结第45-46页
第五章 实现第46-58页
    5.1 SpiderMonkey简介第46-48页
        5.1.1 Baseline编译器第46页
        5.1.2 IonMonkey第46-48页
        5.1.3 SpiderMonkey执行脚本代码过程第48页
    5.2 程序插桩第48-49页
    5.3 代码生成过程中实现寄存器随机化第49-53页
        5.3.1 置换规则的选取第50-51页
        5.3.2 遵循函数调用约定第51-53页
        5.3.3 寄存器随机化方案有效性分析第53页
    5.4 动态生成代码的改写第53-56页
        5.4.1 动态生成代码的存储第53-54页
        5.4.2 有害隐式常数的查找与收集第54-55页
        5.4.3 指令改写第55-56页
    5.5 整体工作过程图第56-57页
    5.6 本章小结第57-58页
第六章 实验与评估第58-63页
    6.1 实验平台第58-59页
    6.2 即时编译过程正确性测试第59-60页
    6.3 性能与内存空间开销第60-62页
    6.4 有效性讨论第62页
    6.5 本章小结第62-63页
第七章 总结与展望第63-65页
    7.1 总结第63页
    7.2 下一步工作的展望第63-65页
参考文献第65-68页
攻读硕士学位期间的研究成果第68页
攻读硕士学位期间参加的项目第68-69页
致谢第69-70页

论文共70页,点击 下载论文
上一篇:三峡直流输电系统谐波对电站电气设备运行状态影响的仿真研究
下一篇:碎裂结构岩体路堑边坡锚固机理分析及其应用研究