一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

以模块粒度的影子堆栈违规强制的制作方法

2022-11-13 23:55:47 来源:中国专利 TAG:

技术特征:
1.一种计算机系统,包括:处理器;以及计算机可读介质,其上存储有计算机可执行指令,所述计算机可执行指令由所述处理器可执行,以使所述计算机系统以模块粒度实施影子堆栈违规,所述计算机可执行指令包括由所述处理器可执行以使所述计算机系统至少执行以下的指令:在所述处理器处启动线程的执行,包括启动应用二进制的第一可执行代码的执行,所述应用二进制调用外部模块的第二可执行代码,所述应用二进制已被启用以用于影子堆栈强制;以及至少基于所述线程在所述处理器处的执行,来处理异常,所述异常由从与所述线程对应的调用堆栈弹出的第一返回地址和从与所述线程对应的影子堆栈弹出的第二返回地址之间的不匹配触发,包括:确定所述异常是由所述外部模块的所述第二可执行代码中的指令的执行引起的;确定所述外部模块是否被启用以用于影子堆栈强制;以及基于已确定所述外部模块是否被启用以用于影子堆栈强制,执行以下之一:至少基于所述外部模块被启用以用于影子堆栈强制来终止所述线程的执行;或者至少基于所述外部模块未被启用以用于影子堆栈强制来允许所述线程继续执行。2.根据权利要求1所述的计算机系统,其中当所述外部模块被编译以用于影子堆栈遵从时,所述外部模块被启用以用于影子堆栈强制。3.根据权利要求1所述的计算机系统,其中当所述外部模块被编译为选择进入影子堆栈强制时,所述外部模块被启用以用于影子堆栈强制。4.根据权利要求1所述的计算机系统,其中当所述外部模块未被编译以用于影子栈遵从时,所述外部模块不被启用以用于影子堆栈强制。5.根据权利要求1所述的计算机系统,其中当所述外部模块被编译为选择退出影子堆栈强制时,所述外部模块不被启用以用于影子堆栈强制。6.根据权利要求1所述的计算机系统,其中确定所述异常是由在所述外部模块的所述第二可执行代码中的所述指令的执行引起的包括确定以下一项或多项,所述指令的调用地点地址与所述外部模块的所述第二可执行代码对应,或所述指令的目标地址与所述外部模块的所述第二可执行代码对应。7.根据权利要求6所述的计算机系统,其中处理所述异常还包括确定审核模式被启用,并且作为审核模式被启用的结果,记载以下至少一项:所述调用地点地址,所述目标地址,所述外部模块的标识符,所述线程所属的进程的标识符,所述线程的标识符,或者审核模式被启用。8.根据权利要求1所述的计算机系统,其中所述计算机系统确定所述外部模块被启用以用于影子堆栈强制,并且其中所述计算机系统终止所述线程的执行。9.根据权利要求1所述的计算机系统,其中所述计算机系统确定所述外部模块未被启
用以用于影子堆栈强制,并且其中所述计算机系统允许所述线程继续执行。10.根据权利要求1所述的计算机系统,其中处理所述异常还包括记载以下至少一项:调用地点地址,目标地点地址,所述外部模块的标识符,所述线程所属的进程的标识符,所述线程的标识符,审核模式被启用,或强制模式被启用。11.根据权利要求1所述的计算机系统,所述计算机可执行指令还包括:由所述至少一个处理器可执行以使所述计算机系统存储记录的指令,所述记录关于所述外部模块是否被启用以用于与启动所述线程的执行相关的影子堆栈强制,并且其中确定所述外部模块是否被启用影子堆栈强制包括查阅所述记录。12.根据权利要求1所述的计算机系统,其中处理所述异常还包括:至少基于所述外部模块的身份来标识规则,并且其中当所述外部模块未被启用以用于影子堆栈强制时,并且当所述规则指定影子堆栈违规应当被允许时,所述计算机系统允许所述线程继续执行。

技术总结
以模块粒度而不是线程或进程粒度实施影子堆栈违规。在基于调用外部模块的应用二进制的代码的线程的执行期间处理异常,该应用二进制被启用以用于影子堆栈强制。该异常是由于从线程的调用堆栈弹出的返回地址与从线程的影子堆栈弹出的返回地址之间的不匹配引起的。处理异常包括:确定异常是由外部模块中的指令的执行引起的,以及确定外部模块是否被启用以用于影子堆栈强制。至少基于这些确定,在外部模块被启用以用于影子堆栈强制时,线程的执行被终止,或者当外部模块未被启用以用于影子堆栈强制时,线程被允许继续执行。线程被允许继续执行。线程被允许继续执行。


技术研发人员:J
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:2021.01.28
技术公布日:2022/11/11
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献