B
blandnet
Unregistered / Unconfirmed
GUEST, unregistred user!
一般截获API函数有两种方式:<br>1、陷阱式。这是通过修改代码来截获API函数的方法。<br>2、修改IAT式。这种方法是通过修改PE文件的IAT来实现的。<br> 陷阱式是WIN98以前常用的方式,在WIN2K中这种方法会有抢占的问题,在WIN2K下,对有的API实际是没法处理的,比如SOCKET相关函数。<br> 修改IAT式在WIN98和WIN2K都很健壮,但是存在一个致命缺陷:如果文件IAT没有API,那么就无法截获,这种情况主要是因为使用Loadlibrary和GetprocAddress引起的,也就是说在采用这种方式的时候必须同时截获这两个函数才可以。但是这又产生了另外的问题:<br> a、如果在目标程序启动之前进行截获,因为目标程序并没有启动,那么我们截获的对象应该是谁。<br> b、如果在目标程序启动之后进行截获。那么在目标程序启动时加载的API就会漏网。<br> C、实际上这两个函数也可以动态获取。也就是说,这两个函数也可以不载IAT中出现。 这时候就没又办法截获这两个函数。<br><br>对此,各位有什么比较妥善的解决方案呢??