当前位置: 首页 > news >正文

10个网站做站群关于友谊的连接

10个网站做站群,关于友谊的连接,wordpress开启注册,网站后台进不去的原因使用安全字符串函数 和应用层不一样的是#xff0c;windows内核完全使用Unicode字符串#xff0c;许多支持AsciiC的windowsAPI#xff0c;是在应用层完成项Unicode的切换的。许多系统安全问题是由缓冲区处理不善和生成的缓冲区溢出引起的。 糟糕的缓冲区处理通常与字符串操…使用安全字符串函数 和应用层不一样的是windows内核完全使用Unicode字符串许多支持AsciiC的windowsAPI是在应用层完成项Unicode的切换的。许多系统安全问题是由缓冲区处理不善和生成的缓冲区溢出引起的。 糟糕的缓冲区处理通常与字符串操作相关联。 C/C 语言运行时库 (strcat、 strcpy、 sprintf 等) 提供的标准字符串操作函数不会阻止写入缓冲区末尾。 两组新的字符串操作函数称为安全字符串函数提供额外的处理以便在代码中正确处理缓冲区。 这些安全字符串函数在 Windows 驱动程序工具包 (WDK) 以及 Microsoft Windows XP SP1 及更高版本的驱动程序开发工具包 (DDK) 和 Windows SDK 中可用。 它们旨在替换其内置的 C/C 对应项和 Windows 提供的类似例程。 一组安全字符串函数用于内核模式代码。 这些函数在名为 Ntstrsafe.h 的头文件中原型。 WDK 中提供了此头文件和关联的库。 另一组安全字符串函数用于用户模式应用程序。 相应的头文件 Strsafe.h 包含这些函数的原型。 该文件和关联的库在 Windows SDK 中可用。  内核模式安全字符串函数集由以下两个子集组成 Unicode 和 ANSI 字符的安全字符串函数其中每个函数在支持双字节 Unicode 字符的 W 后缀版本中可用以及支持单字节 ANSI 字符的 A 后缀版本。 例如 RtlStringCbCatN 连接两个字符串并限制追加字符串的长度可用作 RtlStringCbCatNW 和 RtlStringCbCatNA用于UNICODE_STRING结构的安全字符串函数其中每个函数都接受 UNICODE_STRING 结构作为输入参数或输出参数或同时接受这两者。 例如 RtlStringCbCopyUnicodeString 接受结构作为输入参数 RtlUnicodeStringCopyString 接受结构作为输出参数 RtlUnicodeStringCopy 接受结构作为输入和输出参数 内核模式安全字符串函数提供以下功能 每个安全字符串函数接收目标缓冲区的大小作为输入。 因此函数可以确保它不会写入缓冲区的末尾Unicode 和 ANSI 字符串函数使用 NULL 字符终止所有输出字符串即使操作截断了预期结果所有安全字符串函数都返回 NTSTATUS 值 (STATUS_SUCCESS) 只有一个可能的成功代码大多数安全字符串函数在字节计数和字符计数版本中都可用。 例如 RtlStringCbCata 连接两个字节计数字符串 RtlStringCchCata 连接两个字符计数字符串 大多数安全字符串函数在扩展的 Ex-suffixed 版本中提供可提供其他功能。 例如 RtlStringCbCatExa 扩展 了 RtlStringCbCata 的功能。 使用安全整数函数 尽量减少安全问题的一种方法是防止整数溢出和下溢。 当算术运算的结果大于设置为接收它的数据类型的内存空间时会发生整数溢出。 这会导致整数被截断结果不正确。 当运算通常为减法给出不正确的结果时将发生下溢。 由于截断了不适合新内存空间的结果两种数据类型之间的强制转换也可能导致不正确的结果。 ntintsafe 库提供了一组 C 函数这些函数通过边界检查执行安全整数算术运算以防止内核模式代码中出现溢出和下溢。 这些函数对应于应用程序代码使用的 Windows IntSafe 函数。 使用这些函数来计算索引或缓冲区大小或计算某种其他形式的边界检查。 函数针对速度进行优化。 安全整数函数具有以下优点 始终向函数提供目标缓冲区的大小以确保函数不会写入缓冲区末尾保证缓冲区以 null 结尾即使操作截断了预期结果所有函数都返回 NTSTATUS其中只有一个可能的成功代码 (STATUS_SUCCESS) (STATUS_INTEGER_OVERFLOW) 一个可能的错误条件 确定操作系统是否在安全模式下运行 下面除了介绍设备驱动程序如何确定其上运行的操作系统是否已在安全模式下启动还介绍如何防止驱动程序在安全模式下运行。 Microsoft Windows 操作系统内核导出名为 InitSafeBootMode 的指针。 InitSafeBootMode 指向包含当前有效的安全模式设置的 ULONG 变量。 设备驱动程序可以检查这些设置以确定操作系统是否在安全模式下运行。 InitSafeBootMode 变量对应的模式。 0操作系统未处于安全模式。1SAFEBOOT_MINIMAL2SAFEBOOT_NETWORK3SAFEBOOT_DSREPAIR                注意:仅适用于 Windows 域控制器。 若要使用 InitSafeBootMode 变量必须在驱动程序中声明它如以下代码示例所示 extern PULONG InitSafeBootMode;//声明 InitSafeBootMode 后可以使用以下代码示例来确定操作系统是否在安全模式下运行 if (*InitSafeBootMode 0) {// The operating system is in Safe Mode.// Take appropriate action.// } 若要防止驱动程序在安全模式下运行请使用以下列表中与驱动程序类型匹配的技术 1. 功能驱动程序如果功能驱动程序的服务启动类型为 SERVICE_BOOT_START请在功能驱动程序的 AddDevice 例程中检查 InitSafeBootMode 的值。 如果系统处于安全模式则返回失败状态。注意 切勿从 DriverEntry 例程返回失败。 2. Filter驱动程序如果Filter驱动程序在系统启动期间启动请在Filter驱动程序的 AddDevice 例程中检查 InitSafeBootMode 的值。 如果操作系统处于安全模式请执行以下操作 不要将Filter设备对象附加到设备堆栈。 从Filter驱动程序的 AddDevice 例程返回成功。 3. 其他驱动程序对于除功能或Filter驱动程序以外的驱动程序在驱动程序的 DriverEntry 例程中检查 InitSafeBootMode 的值。 如果操作系统处于安全模式则返回失败状态。 在 WDM 驱动程序中使用浮点数 使用浮点运算时Windows 的内核模式 WDM 驱动程序必须遵循某些准则。 这些在 x86 和 x64 系统之间有所不同。 默认情况下Windows 会关闭这两个系统的算术异常。 x86 系统 x86 系统的内核模式 WDM 驱动程序必须在调用 KeSaveExtendedProcessorState 和 KeRestoreExtendedProcessorState 之间包装浮点计算的使用。 浮点运算必须置于非内联子例程中以确保在检查 KeSaveExtendedProcessorState 的返回值之前不会执行浮点计算因为编译器重新排序。 编译器使用 MMX/x87 也称为浮点单元 FPU)寄存器进行此类计算用户模式应用程序可以同时使用这些计算。 在使用这些寄存器之前未能保存这些寄存器或者在完成后无法还原它们可能会导致应用程序中出现计算错误。 x86 系统的驱动程序可以调用 KeSaveExtendedProcessorState 并在 IRQL DISPATCH_LEVEL 执行浮点计算。 x86 系统上 (的 ISR) 中断服务例程不支持浮点操作。 x64 系统 64 位编译器不对浮点运算使用 MMX/x87 寄存器。 而是使用 SSE 寄存器。 不允许 x64 内核模式代码访问 MMX/x87 寄存器。 编译器还负责正确保存和还原 SSE 状态因此不需要调用 KeSaveExtendedProcessorState 和 KeRestoreExtendedProcessorState 并且可以在 ISR 中使用浮点操作。 使用其他扩展处理器功能如 AVX需要保存和还原扩展状态。 有关详细信息请参阅 在 Windows 驱动程序中使用扩展处理器功能。 注意通常Arm64 与 AMD64 相似无需先调用保存浮点状态。 但是需要移植到内核上的 x86 的代码可能仍需要跨平台执行此操作。 示例代码 以下示例演示 WDM 驱动程序应如何包装其 FPU 访问 __declspec(noinline) VOID DoFloatingPointCalculation(VOID) {double Duration;LARGE_INTEGER Frequency;Duration 1000000.0;DbgPrint(%I64x\n, *(LONGLONG*)Duration);KeQueryPerformanceCounter(Frequency);Duration / (double)Frequency.QuadPart;DbgPrint(%I64x\n, *(LONGLONG*)Duration); }NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject,_In_ PUNICODE_STRING RegistryPath) {XSTATE_SAVE SaveState;NTSTATUS Status;Status KeSaveExtendedProcessorState(XSTATE_MASK_LEGACY, SaveState);if (!NT_SUCCESS(Status)) {goto exit;}__try {DoFloatingPointCalculation();}__finally {KeRestoreExtendedProcessorState(SaveState);}exit:return Status; } 在此示例中对浮点变量的赋值发生在对 KeSaveExtendedProcessorState 和 KeRestoreExtendedProcessorState 的调用之间。 由于对浮点变量的任何赋值都使用 FPU因此在初始化此类变量之前驱动程序必须确保 KeSaveExtendedProcessorState 返回且没有错误。 上述调用在 x64 系统上是不必要的在指定XSTATE_MASK_LEGACY标志时是无害的。 因此在为 x64 系统编译驱动程序时无需更改代码。
http://www.w-s-a.com/news/702494/

相关文章:

  • 网站根域名是什么php做商城网站步骤
  • 建设网站的那个公司好网站建设万首先金手指12
  • 广东民航机场建设有限公司网站网站开发后端用什么
  • 做风帆网站需要多少钱越野车网站模板
  • 如何做网站平台销售用狗做头像的网站
  • 宝安电子厂做网站美食网页设计的制作过程
  • 网站logo提交学网站开发技术
  • 跨境电商平台网站建设广州西安官网seo推广
  • 我和你99谁做的网站小程序制作第三方平台
  • 建设银行网站用户名鹤岗网站seo
  • 做一元夺宝网站需要什么条件西安市做网站的公司
  • 零基础建设网站教程郑州做网站推广价格
  • 平面设计免费素材网站新开三端互通传奇网站
  • ppt模板免费下载 素材医疗seo网站优化推广怎么样
  • 课程网站怎么做wordpress文章改背景色
  • 网络营销从网站建设开始卖汽车配件怎么做网站
  • 手机商城网站制作公司济南想建设网站
  • .net 建网站网站网站做员工犯法吗
  • 电子商务网站建设说课稿棕色网站设计
  • 怎么做律所的官方网站红塔网站制作
  • 装一网装修平台官网惠州seo按天付费
  • 湖南建设监理报名网站东莞模块网站建设方案
  • 网站建设小组个人主页html源码
  • 响应式网站检测工具营销公司业务范围
  • 网站源码如何安装做游戏课程网站
  • 选服务好的网站建设亚洲砖码砖专区2022
  • 网站快速查找wordpress 悬停 图片 文字
  • 网站续费 多久想自己做网站该学些什么
  • 可以自己做网站wordpress英文写作插件
  • 国外可以做会员网站的网站怎么查百度竞价关键词价格