首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows内核函数

字符串处理 在驱动中一般使用的是ANSI字符串和宽字节字符串,在驱动中我们仍然可以使用C中提供的字符串操作函数,但是在DDK中不提倡这样做,由于C函数容易导致缓冲区溢出漏洞,针对字符串的操作它提供了一组函数分别用来处理...,函数中局部变量被销毁,这个时候指向的那块内存可能已经被其他函数所占用,而我们后面通过操作UNICODE_STRING,又要操作这段内存,这个时候一定会出现问题,所以一般如果要在多个函数中使用这个UNICODE_STRING...); 这两个函数在调用是目标字符串和源字符串可以是同一个字符串 字符串与整形数字之间的转化可以使用函数 NTSTATUS RtlUnicodeStringToInteger(...EaLength扩展空间的大小 这个函数与应用层的CreateFile不同的时,在指定打开或者创建文件名时是使用结构OBJECT_ATTRIBUTES来指定,针对这个结构,有一个函数能够初始化它 VOID...其他注册表函数 为了简化注册表操作,DDK提供了另外一组以Rtl开头的函数,把之前的Zw函数进行了封装,下面是这些函数与它们功能的对应关系 函数名 描述 RtlCreateRegistryKey 创建注册表项

1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows编程中宽字符函数和安全CRT函数

    安全CRT函数是微软公司对C/C++语言的扩展,其中的部分内容已于2003年提交给ISO作为C/C++标准下一版本的修改建议。在VC05/08中,如果不使用这些安全性函数,编译器会报告警告性错误。  ...1)常用的宽字符函数  由于Windows NT/2000/XP采用的是Unicode字符编码,字符都是双字节的。... 安全CRT(C Runtime Library = C运行时间库)函数,是微软公司对C/C++语言的扩展。...它在原来函数名后添加了“_s”后缀;一般返回出错代码;并将原来的函数返回值,作为一个参数,添加到函数输入参数列表的最后;对带缓冲区参数的函数,还添加了表示缓冲区大小的输入参数,以防止内存溢出。  ...在VC05/08中,如果不使用这些安全性函数,编译器会报告警告性错误。

    78220

    windows平台调用函数堆栈的追踪方法

    windows平台,有一个简单的方法来追踪调用函数的堆栈,就是利用函数CaptureStackBackTrace,但是这个函数不能得到具体调用函数的名称,只能得到地址,当然我们可以通过反汇编的方式通过地址得到函数的名称...原理 基本上所有高级语言都有专门为函数准备的堆栈,用来存储函数中定义的变量,在C/C++中在调用函数之前会保存当前函数的相关环境,在调用函数时首先进行参数压栈,然后call指令将当前eip的值压入堆栈中...,然后根据地址在符号常量表中,找到具体调用的信息,这是一个很复杂的工程,需要对编译原理和汇编有很强的基础,幸运的是,如今这些工作不需要程序员自己去做,windows帮助我们分配了一组API,在编写程序时只需要调用...API即可 函数说明 SymInitialize:这个函数主要用作初始化相关环境。...调用SymCleanup,结束追踪 但是需要注意的一点是,函数StackWalk会顺着线程堆栈进行查找,如果在调用之前,某个函数已经返回了,它的堆栈被回收,那么函数StackWalk自然不会追踪到该函数的调用

    3.1K20

    Windows客户端CC++编程规范“建议”——函数

    1 函数 1.1 代码行数控制在80行及以内 等级:【要求】 说明:每个函数的代码行数控制应该控制在80行以内。如果超过这个限制函数内部逻辑一般可以拆分。如果试图超过这个标准,请列出理由。...流程内部逻辑复杂,无需拆分,即使拆分了,拆分的函数也不会被其他地方用到。(解释:拆分可以减少代码行数,提炼后的函数可以方便读者快速理解函数逻辑并定位问题。)...1.5 当函数不需要返回值时不要为其设计返回值 等级:【要求】 说明:如果给不需要返回值的函数设计返回值,将为使用该函数的人带来困惑。...实际上很多Windows API也是基于这样的规则设计的。...其他场景出现该warning,应该使用安全函数替代。这些函数的安全版本一般是在原函数后面增加_s。并新增一个空间大小的参数。         使用这些不安全函数存在以下危害: 产生脏数据。

    1.5K10

    Windows客户端CC++编程规范“建议”——函数调用

    3 函数调用 3.1 谨慎使用递归方法 等级:【推荐】 说明:递归方式控制不当,可能会导致栈空间不够而崩溃。一般的递归都可以使用循环代替。...因为如果多个不同的namespace里定义了相同名字的变量或者函数。将导致无法预知和理解编译器最终使用的是哪个命名空间中的数据。        ...: #include "file1.h" #include "file2.h" Space1::g_Private = 1; Space2::g_Private = 1; 3.3 提供给外部使用的接口函数要使用...3.4 调用有返回值的函数时需要处理其返回值 等级:【要求】 说明:我们在代码逻辑设计时,需要考虑被调用函数不同返回值的处理逻辑,因为用户的环境无法假设。

    53820

    单一函数中的一系列Windows内核漏洞

    介紹 在分析Windows内核漏洞的过程中,我发现一个函数EtwpNotifyGuid存在5个以上的bug,分别是CVE-2020-1033、CVE-2020-1034、CVE-2021...在一个Windows内核函数中存在5个以上的BUG,这是一个非常惊人的事实。 这篇文章将深入了解这些漏洞的细节和微软发布的修复方法。 CVE-2020-1033。...微软通过检查EtwpValidateTraceControlFilterDescriptors函数中的缓冲区长度来修复该错误,具体如下。...EtwpNotifyGuid函数使用EtwpAllocDataBlock函数复制输入缓冲区,并对其访问偏移量0x50。当然,通过之前的检查,缓冲区大小应该大于0x48,但也可以小于0x50。...而在NtTraceControl函数的同一控制代码过程中,还有一个漏洞。 这个事实说明ETW组件是Windows内核中非常脆弱的部分,而且这个组件可能会发现更多的漏洞。

    92710

    揪出那些在Windows操作系统中注册的WFP函数

    尽管有netsh wfp的命令和类似的接口/API(FwpmEnum),但是都没有获取到注册的函数的. 有些用户,包括自己,是尽量想获取到注册的函数,而不止是那些注册的信息。 所以,出现了本文。...分析的办法有二, 一正向分析,分析注册的函数(FwpsCalloutRegister),步步跟踪。 二逆向分析,在注册的函数上下断点,根据调用栈步步向上逆向跟踪。 上面是引子 下面是方案一的分析。...0: kd> vertarget Windows 8 Kernel Version 9200 MP (8 procs) Free x64 Product: WinNt, suite: TerminalServer...IPxlatNotifyCallout ffffa00a142197e0 0000000000000000 …… ffffa00a14226ff8 0000000000000000 至此分析完毕,可以和一款叫Windows-Kernel-Explorer...4.移除这个CalloutEntry,或者inline hook那些函数。 5.更无需调用未导出的FeMoveFilter等函数。ioctlKfdMoveFilter是导出的。

    1K20
    领券