api函数:5.3  定位未公开的API函数

来源:安全中国

5.3  定位未公开API

正如我们前边已经提到过那样章里我们将以组未公开Windows API为例实战你逆向工程窍门技巧在介绍这组你将要逆向API的前我先简单说下我是怎样发现这组API以及通常要怎样才能在系统中找到这种未公开或API——无论这些或API是操作系统部分还是其他第 3方代码库部分

5.3.1节将讲述逆向未公开代码第步:怎样发现这种未公开API并找到使用这些API代码

我们要找什么?

般来说只有我们有需求时候才会去找未公开代码!你需要实现什么功能?究竟哪个软件Software组件可能会提供这功能?你需要了解有关这个些总体信息这会非常有用你要知道构成几个关键可执行模块并熟悉这些模块的间接口 2进制模块间接口可以简单地通过转储来导入导出目录(详见第3章)

在这个特别案例中我决定要找非常有感兴趣Windows API来剖析我知道在Windows系统中大多数用户模式下服务是在NTDLL.DLL中实现(这里是实现Windows本地API地方)因此我转储了NTDLL.DLL导出目录并凭借眼力在这个目录中查找和服务有关API组(主要是根据它们名)

当然在某种程度上讲这是个不太常见情况在大多数情况下你不会只是这些API没有公开就去搜寻它们(除非你觉得使用未公开API很酷或者只是想把这当作项挑战来做)——般来说你都会大致有个明确目标在这种情况下你可能是想在导出列表中搜索相关关键词打个比方你想找某种专门用于内存分配API这时你就应该用诸如memory、alloc的类关键词来搜索NTDLL.DLL(或者是其他你怀疑可能实现了你要找APIDLL)导出表

旦你找到了个未公开API以及导出这个APIDLL名称你就应该找找使用这个API 2进制可执行文件了寻找这个API可执行有两个首先它可能会向你提供些该API附加信息其次它为你提供个有关怎样使用这个API“活生生”例子以及这个API接收什么输入数据和返回什么输出如果能在学习怎样使用时候在真实代码中找到个使用范例你会觉得如获至宝

可以使用好几种思路方法来定位API代码最常见思路方法是用Numega SoftICE和MicrosoftWinDbg的类内核模式调试器内核模式调试器使我们在整个系统范围内寻找某特定变得非常简单即使你要找不是内核模式也可以基本思路是:你可以在整个系统范围内设置个断点当任何个进程这个时系统就会停下来这就大大简化了你寻找使用特定代码这过程从理论上讲你也可以用用户级调试器来做类似工作比如OllyDbg但效果要比用内核级模式调试器差很多用户模式调试器只能显示当前你正在调试进程内



  • 篇文章: 5.2 基本原则

  • 篇文章: 没有了
  • Tags:  delphiapi函数大全 vbapi函数 api函数大全 api函数

    延伸阅读

    最新评论

    发表评论