设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Visual C++ >> 挂钩Windows API
精品推荐
Visual C++点击TOP10
·用WINSOCK实现聊天室的VC++程序设计
·利用mfc编写activex控件
·用vc实现生产者消费者问题
·DirectX8.0
·C/C++ 大量经典编程书籍下载
·VC快捷键大全
·CreateFileMapping的MSDN翻译和使用心得
·Windows环境下的麦克风录音系统
·挂钩Windows API
·如何开发OPC Server
编程开发点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·ASP.NET 程序中常用的三十三种代码
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·java笔试题
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

挂钩Windows API

作者: 来源:网络文章 时间:2005-12-13 17:14:12

挂钩Windows API(2)     第二种可能是在模块中被代替的函数只是原函数的扩展。然后我们选择要么修改开始的5个字节为跳转指令或者改写IAT。如果改为跳转指令,那么将会改变指令执行流程转为执行我们的代码。如果调用了IAT记录被修改的函数,我们的代码能在调用结束后被执行。但模块的扩展没那么容易,因为我们必须注意DLL首部。
    下一个是修改整个模块。这意味着我们创建自己的模块版本,它能够加载原始的模块并调用原始的函数,当然我们对这个不感兴趣,但重要的函数都是被更新的。这种方法对于有的模块过大有几百个导出函数的很不方便。
3.2 运行时挂钩 
    在运行前挂钩通常都非常特殊,并且是在内部面向具体的应用程序(或模块)。如果我们更换了kernel32.dll或ntdll.dll里的函数(只在NT操作系统里),我们就能完美地做到在所有将要运行的进程中替换这个函数。但说来容易做起来却非常难,因为我们不但得考虑精确性和需要编写比较完善的新函数或新模块,但主要问题是只有将要运行的进程才能被挂钩(要挂钩所有进程只能重启电脑)。另一个问题是如何进入这些文件,因为NT操作系统保护了它们。比较好的解决方法在进程正在运行时挂钩。这需要更多的有关知识,但最后的结果相当不错。在运行中挂钩只对能够写入它们的内存的进程能成功。为了能写入它自己我们使用API函数WriteProcessMemory。现在我们开始运行中挂钩我们的进程。
3.2.1 使用IAT挂钩本进程
    这里有很多种可能性。首先介绍如何用改写IAT挂钩函数的方法。接下来这张图描述了PE文件的结构:

     +-------------------------------+     - offset 0
     MS DOS标志("MZ") 和 DOS块    
     +-------------------------------+    
           PE 标志 ("PE")          
     +-------------------------------+
                  .text                  - 模块代码
                程序代码            
                                   

1.挂钩Windows API(1)
2.挂钩Windows API(2)
3.挂钩Windows API(3)
4.挂钩Windows API(4)
5.挂钩Windows API(5)
6.挂钩Windows API(6)
7.挂钩Windows API(7)
8.挂钩Windows API(8)
9.挂钩Windows API(9)
10.挂钩Windows API(10)
11.挂钩Windows API(11)
12.挂钩Windows API(12)
13.挂钩Windows API(13)
14.挂钩Windows API(14)
15.挂钩Windows API(15)
16.挂钩Windows API(16)
17.挂钩Windows API(17)
18.挂钩Windows API(18)
19.挂钩Windows API(19)
20.挂钩Windows API(20)
21.挂钩Windows API(21)
22.挂钩Windows API(22)
23.挂钩Windows API(23)
24.挂钩Windows API(24)
25.挂钩Windows API(25)
26.挂钩Windows API(26)
27.挂钩Windows API(27)
28.挂钩Windows API(28)
29.挂钩Windows API(29)
30.挂钩Windows API(30)
31.挂钩Windows API(31)
32.挂钩Windows API(32)
33.挂钩Windows API(33)
34.挂钩Windows API(34)
35.挂钩Windows API(35)
36.挂钩Windows API(36)
37.挂钩Windows API(37)
38.挂钩Windows API(38)
39.挂钩Windows API(39)
40.挂钩Windows API(40)
41.挂钩Windows API(41)
42.挂钩Windows API(42)
43.挂钩Windows API(43)
44.挂钩Windows API(44)
45.挂钩Windows API(45)
46.挂钩Windows API(46)
47.挂钩Windows API(47)
48.挂钩Windows API(48)
49.挂钩Windows API(49)
50.挂钩Windows API(50)
51.挂钩Windows API(51)
52.挂钩Windows API(52)
53.挂钩Windows API(53)
54.挂钩Windows API(54)
55.挂钩Windows API(55)
56.挂钩Windows API(56)
57.挂钩Windows API(57)
共57页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [578 :>

挂钩Windows API 相关文章:
挂钩Windows API 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com