-
公开(公告)号:CN106295258B
公开(公告)日:2019-03-26
申请号:CN201610638311.X
申请日:2016-08-04
Applicant: 南京大学
Abstract: 本发明提供了一种用于多线程后向控制流完整性保护的影子栈实现方法。所述用于多线程后向控制流完整性保护的影子栈实现方法包括如下步骤:a、对待保护程序的源码进行编译时插装,生成部署了影子栈的可执行文件;b、启动部署了影子栈的可执行文件,由动态共享库劫持线程的创建和启动,完成创建影子栈;c、插装后的函数头和函数尾实现所述影子栈的栈顶指针的维护和后向控制流完整性的检查;d、进行所述线程的退出处理,并通过所述动态共享库中注册的析构函数对所述影子栈进行销毁。本发明的有益效果在于:所述用于多线程后向控制流完整性保护的影子栈实现方法可提高多线程C/C++程序的控制流完整性保护能力,以降低受到代码复用攻击的威胁。
-
公开(公告)号:CN106295258A
公开(公告)日:2017-01-04
申请号:CN201610638311.X
申请日:2016-08-04
Applicant: 南京大学
CPC classification number: G06F21/125 , G06F21/563 , G06F2221/034 , G06F2221/0713
Abstract: 本发明提供了一种用于多线程后向控制流完整性保护的影子栈实现方法。所述用于多线程后向控制流完整性保护的影子栈实现方法包括如下步骤:a、对待保护程序的源码进行编译时插装,生成部署了影子栈的可执行文件;b、启动部署了影子栈的可执行文件,由动态共享库劫持线程的创建和启动,完成创建影子栈;c、插装后的函数头和函数尾实现所述影子栈的栈顶指针的维护和后向控制流完整性的检查;d、进行所述线程的退出处理,并通过所述动态共享库中注册的析构函数对所述影子栈进行销毁。本发明的有益效果在于:所述用于多线程后向控制流完整性保护的影子栈实现方法可提高多线程C/C++程序的控制流完整性保护能力,以降低受到代码复用攻击的威胁。
-