移植php7到arm,arm cpu如何保护内核空间的?

用户投稿 50 0

关于“arm_移植php”的问题,小编就整理了【2】个相关介绍“arm_移植php”的解答:

arm cpu如何保护内核空间的?

arm cpu保护内核空间的三种方法:

1. 将内存标记为只读/不可执行

该功能将内核内存划分为多个逻辑区段,并限定每个区段的页访问权限。将代码标记为只读可执行。将数据区段标记为不可执行,并进一步将其细分为只读区段和读写区段。该功能通过配置选项 CONFIG_DEBUG_RODATA 启用。

该功能是由 Kees Cook 汇集 Grsecurity 中的 KERNEXEC 部分功能(由 Brad Spengler 实现)和 Qualcomm 的 CONFIG_STRICT_MEMORY_RWX 部分功能(由 Larry Bassel 和 Laura Abbott 合作实现)而实现的。位于 arm/arm64 上游内核的 CONFIG_DEBUG_RODATA 已向后移植到 Android 的 3.18+ arm/arm64 通用内核。

2. 限制内核对用户空间的访问

该功能通过阻止内核直接访问用户空间内存来增强对内核的保护。这样可以增大许多攻击的难度,这是因为攻击者对于可执行的内核内存(特别是启用 CONFIG_DEBUG_RODATA 的内存)的控制力要弱得多。

类似的功能已经存在,Grsecurity 的 UDEREF 最早提供了此项功能。该功能通过配置选项 CONFIG_CPU_SW_DOMAIN_PAN 启用,由 Russell King 完成了该功能的 ARMv7 实现,并由 Russell King 向后移植到 Android 4.1 内核。

arm指令如何操作char类型?

arm函数可以通过平台移植代码实现对char类型的操作。最近在项目中遇到问题,在x86平台下调试好的程序,移植到arm上,程序行为完全变了。示例如下:

在x86平台输出Smaller than 128。在arm平台输出Bigger than 128。

原来,C标准表示char类型可以带符号也可以不带符号,由具体的编译器、处理器或由它们两者共同决定到底char是带符号合适还是不带符号合适。

到此,以上就是小编对于“arm_移植php”的问题就介绍到这了,希望介绍关于“arm_移植php”的【2】点解答对大家有用。

抱歉,评论功能暂时关闭!