-
公开(公告)号:CN105224864B
公开(公告)日:2018-05-04
申请号:CN201510741139.6
申请日:2015-11-04
Applicant: 中国科学院计算技术研究所
IPC: G06F21/52
Abstract: 本发明一种抵御代码重用攻击的工作进程随机化方法及系统,该方法包括步骤1,预先设置一新进程,将所述工作进程的内存空间共享给所述新进程,对所述新进程进行初始化,其中对所述新进程中所有的代码段进行反汇编并记录中间表示,识别代码段中的函数信息,分析所述函数信息中的执行流并划分基本块;步骤2,根据所述中间表示,对所述代码段进行随机化处理,生成新代码段,所述新进程向所述工作进程发送信号中断指令,当所述新进程确认所述工作进程已经中断且所述工作进程已经保存相应信息后,进行状态迁移操作,所述状态迁移操作完成后,当所述新进程确认所述工作进程开始执行所述新代码段时,将所述代码段删除;步骤3,循环执行所述步骤1至2。
-
公开(公告)号:CN104750623B
公开(公告)日:2017-11-24
申请号:CN201310752024.8
申请日:2013-12-31
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F9/455
Abstract: 本发明实施例公开了一种内存虚拟化的方法及装置,涉及电子信息技术领域,能够在需要修改映射关系时,避免了使用宿主机的内核修改映射关系。本发明的方法包括:建立HVA层到硬盘的存储空间之间的映射关系;为客户机的进程在HVA层中分配地址空间,并建立GVA层到HVA层中的被分配的地址空间之间的映射关系;建立访存指令指向的HVA层中的被分配的地址空间上的地址到硬盘的存储空间之间的映射关系;从宿主机获取目标数据。本发明适用于将计算设备的内存虚拟化的场景中。
-
公开(公告)号:CN105224305A
公开(公告)日:2016-01-06
申请号:CN201410310847.X
申请日:2014-07-01
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F9/44
Abstract: 一种函数调用路径编解码方法、装置及系统,其中所述方法包括,执行程序过程中,构建调用函数到当前跳转目标函数的函数调用边;对新构建的函数调用边进行编码,包括:将当前的路径编码现场保存至编码信息的记录中,路径编码现场包括现场路径编码值、调用点地址和目标地址;将新路径编码值更新为当前最大路径编码值+1;为编码信息添加对应的时间戳并对程序进行插桩。在本发明实施例中,实时动态构建程序的函数调用图的同时,还对动态构建的函数调用图进行相应的动态编码,由于保存了到达当前函数的路径中所有的新增函数调用边的路径信息和避免新设置的编码值与原有编码值发生冲突,所以使本申请中的动态编码后的函数调用路径编码可以被正确的解码。
-
公开(公告)号:CN105022956A
公开(公告)日:2015-11-04
申请号:CN201510501698.X
申请日:2015-08-14
Applicant: 中国科学院计算技术研究所
IPC: G06F21/54
CPC classification number: G06F21/54
Abstract: 本发明提供一种抵御代码重用攻击的方法,其特征在于,包括下列步骤:1)在工作进程运行过程中,洗牌进程生成工作进程的新版本代码并将其存入代码缓存区,所述代码缓存区被工作进程和洗牌进程所共享;2)所述工作进程完成新旧版本代码的切换。本发明具有下列技术效果:本发明实现了应用级的持续随机化,能够有效地防御代码重用攻击。本发明的防御代码重用攻击方法不需要修改操作系统内核,不需要修改现有的CPU硬件,并且不需要源代码的支持,兼容性高。本发明的防御代码重用攻击方法不会破坏DEP机制,能够避免额外的安全隐患。本发明的防御代码重用攻击方法的开销非常低。
-
公开(公告)号:CN101894048A
公开(公告)日:2010-11-24
申请号:CN201010212895.7
申请日:2010-06-28
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了一种基于phase分析的cache动态划分方法和系统,所述方法,包括下列步骤:启动决策进程,系统状态初始化为搜索状态并构建静态搜索树;启动应用程序进程;决策进程开始执行步骤100到300的循环,直至应用程序进程结束;划分决策模块读取采样数据,并根据采样数据识别出程序在当前时间片下运行的phase号,并更新历史记录;划分决策模块收集程序的当前phase在搜索集下各划分的性能数据,根据phase分析结果和系统状态确定下一时间片的Cache划分;当前时间片的决策过程结束,确定出下一时间片的Cache划分,再调用划分执行模块完成cache划分。
-
公开(公告)号:CN105335203A
公开(公告)日:2016-02-17
申请号:CN201410306773.2
申请日:2014-06-30
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F9/45
Abstract: 本发明实施例公开了共享库的二进制翻译执行方法和装置。其中,共享库的二进制翻译执行方法可包括:当上述第二共享库中的第一函数被调用时,上述宿主机执行上述第一函数以调用上述第一共享库中的翻译函数;上述宿主机利用上述调用的上述第一共享库中的翻译函数,对上述第三共享库中的函数接口与上述第一函数的函数接口相同的第二函数进行翻译,以得到上述宿主机支持的第三函数;其中,上述第三函数的函数接口和上述第二函数的函数接口相同;上述宿主机执行上述第三函数。本发明实施例提供的方案有利于减少翻译共享库时的相关代码翻译量,从而提高二进制翻译的执行效率,进而提升用户体验。
-
公开(公告)号:CN101894048B
公开(公告)日:2012-11-14
申请号:CN201010212895.7
申请日:2010-06-28
Applicant: 中国科学院计算技术研究所
Abstract: 本发明公开了一种基于phase分析的cache动态划分方法和系统,所述方法,包括下列步骤:启动决策进程,系统状态初始化为搜索状态并构建静态搜索树;启动应用程序进程;决策进程开始执行步骤100到300的循环,直至应用程序进程结束;划分决策模块读取采样数据,并根据采样数据识别出程序在当前时间片下运行的phase号,并更新历史记录;划分决策模块收集程序的当前phase在搜索集下各划分的性能数据,根据phase分析结果和系统状态确定下一时间片的Cache划分;当前时间片的决策过程结束,确定出下一时间片的Cache划分,再调用划分执行模块完成cache划分。
-
公开(公告)号:CN1818861A
公开(公告)日:2006-08-16
申请号:CN200610008273.6
申请日:2006-02-20
Applicant: 中国科学院计算技术研究所
IPC: G06F9/44
Abstract: 本发明公开了一种COBOL到JAVA代码翻译中面向对象翻译的方法,包括:定义一个类数据的抽象封装类;定义类体,按照翻译传统COBOL程序的方法把COBOL类语法元素:类、类对象、对象和方法翻译成相应的JAVA类;为类体定义一个类接口,该类接口中包含了类数据封装类的定义、类数据对象和实例数据的定义以及所有的类方法和实例方法的接口方法的定义,类接口之间的继承关系体现了COBOL中的类之间的继承关系;翻译类使用语句,将类方法的调用语句翻译为对类接口中相应方法的调用,对于实例方法调用语句,将实例方法的调用语句翻译为对类接口中相应方法的调用。本方法充分利用了JAVA语言面向对象的机制,有较好的运行效率。
-
公开(公告)号:CN105224305B
公开(公告)日:2018-09-28
申请号:CN201410310847.X
申请日:2014-07-01
Applicant: 华为技术有限公司 , 中国科学院计算技术研究所
IPC: G06F8/41
Abstract: 一种函数调用路径编解码方法、装置及系统,其中所述方法包括,执行程序过程中,构建调用函数到当前跳转目标函数的函数调用边;对新构建的函数调用边进行编码,包括:将当前的路径编码现场保存至编码信息的记录中,路径编码现场包括现场路径编码值、调用点地址和目标地址;将新路径编码值更新为当前最大路径编码值+1;为编码信息添加对应的时间戳并对程序进行插桩。在本发明实施例中,实时动态构建程序的函数调用图的同时,还对动态构建的函数调用图进行相应的动态编码,由于保存了到达当前函数的路径中所有的新增函数调用边的路径信息和避免新设置的编码值与原有编码值发生冲突,所以使本申请中的动态编码后的函数调用路径编码可以被正确的解码。
-
公开(公告)号:CN105224864A
公开(公告)日:2016-01-06
申请号:CN201510741139.6
申请日:2015-11-04
Applicant: 中国科学院计算技术研究所
IPC: G06F21/52
CPC classification number: G06F21/52
Abstract: 本发明一种抵御代码重用攻击的工作进程随机化方法及系统,该方法包括步骤1,预先设置一新进程,将所述工作进程的内存空间共享给所述新进程,对所述新进程进行初始化,其中对所述新进程中所有的代码段进行反汇编并记录中间表示,识别代码段中的函数信息,分析所述函数信息中的执行流并划分基本块;步骤2,根据所述中间表示,对所述代码段进行随机化处理,生成新代码段,所述新进程向所述工作进程发送信号中断指令,当所述新进程确认所述工作进程已经中断且所述工作进程已经保存相应信息后,进行状态迁移操作,所述状态迁移操作完成后,当所述新进程确认所述工作进程开始执行所述新代码段时,将所述代码段删除;步骤3,循环执行所述步骤1至2。
-
-
-
-
-
-
-
-
-