2011年12月14日

深入理解指针函数

摘要: 在写《windows核心编程系列》谈谈修改导入段拦截API中,遇到了函数指针,由于以前接触甚少,花了很久才弄明白。见到一篇文章,对函数指针介绍的比较好。便转载至此。转自:http://blog.sina.com.cn/s/blog_5e8facd20100qn20.html1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数. 阅读全文

posted @ 2011-12-14 20:17 ithzhang 阅读(175) 评论(0) 推荐(0)

《windows核心编程系列》谈谈修改导入段拦截API。

摘要: 一个模块的导入段包含一组DLL。为了让模块能够运行,这些DLL是必须的。导入段还包含一个符号表。它列出了该模块从各DLL中导入的符号。当模块调用这些导入符号的时候,系统实际上会调用转换函数,获得导入函数在导入表的地址,然后再跳到相应的位置。如果我们能将导入段中相应导入函数的地址替换成自定义的函数的地址,即可实现对该函数的拦截。在自定义的函数中,我们既可以调用拦截的函数,也可以执行其他工作。要实现修改导入段来拦截API必须对PE文件格式有很好的了解。网上关于它的资料铺天盖地,自己搜吧。此处不打算介绍。为了修改要拦截的函数在导入段的地址,首先要获得PE文件导入段的地址。这可以调用ImageDire 阅读全文

posted @ 2011-12-14 19:49 ithzhang 阅读(297) 评论(0) 推荐(0)

导航