windows 内核文档化API/导出但未文档化API/未导出API

导出函数:顾名思义,出现在导出表(EAT)里面的函数,可以给外部调用的函数,验证是否为导出函数的方法,熟悉逆向的朋友可以使用LordPE之类的工具查看,当然也可以使用GetProcAddress或者MmGetSystemRoutineAddress之类的函数来获取地址,如果成功的话就是导出函数。

非导出函数:这种函数是供自己调用使用的,不想提供给别人使用,当然也有方法可以获取函数地址,可以根据函数的特征来搜索,这就是传说中的硬编码,经典的案例案例如,NtReadVirtualMemory。

文档化函数:微软(可以是其它厂商~)提供的带有函数原型和文档的函数,这种函数使用起来最方便,不用去寻找或者逆向函数原型,还带有参数说明~~。

非文档化函数:没有函数原型和文档的函数,微软经常会把一些参数可能会随时变化的函数,或者功能有点强大的不河蟹的函数隐藏起来,这些也是不河蟹软件最喜欢的函数。通常这类函数可以被GetProcAddress或者MmGetSystemRoutineAddress获取到地址,但是函数原型需要搜索或者逆向。

1.公开函数肯定是导出函数,只要你在msdn上能找到函数可定都是能直接调用的导出函数,除非微软蛋疼了。

2.导出函数可以是非公开函数,比如LdrLoadDll这个函数,能取到地址但是msdn上面没有说明。

导出未文档化是已经导出了,但是不能直接使用。

使用方法:
1.在驱动层使用MmGetSystemRoutineAddress加函数名去获取函数的地址
2.在应用层使用Loadlibrary和GetProcessAddress(事先当然要先定义好原型)

未导出函数的使用比较麻烦

一般要先获取那个函数所在模块的基地址,然后再通过特征码去得到函数地址。或者在某个函数内部进行特征码的搜索。这个方法针对不同的函数或是结构不止一种方法,像SSDT SHADOW。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值