首页
社区
课程
招聘
[原创]必备绝技——hook大法( 中 )
2007-4-9 23:37 192812

[原创]必备绝技——hook大法( 中 )

Lvg 活跃值
5
2007-4-9 23:37
192812
收藏
点赞7
打赏
分享
最新回复 (189)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hren 2007-7-2 00:54
76
0
厉害啊,实在佩服
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hren 2007-7-2 00:54
77
0
那我也拼凑一下吧,大家谅解下
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hren 2007-7-2 00:55
78
0
还差一点点阿
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hren 2007-7-2 00:55
79
0
拼凑一下,大家谅解下,谢谢
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hren 2007-7-2 00:56
80
0
终于凑够了!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bilyzhang 2007-7-20 14:33
81
0
楼主真是强人,拷下来学习
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
斌斌的爱 2007-7-20 16:36
82
0
看不懂看不懂
雪    币: 242
活跃值: (163)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
林海雪原 6 2007-7-20 16:49
83
0
真是实力一派!!!!,系统内的东东我从未动过...
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baohongyu 2007-8-20 21:07
84
0
看雪让我等膜拜不止。
牛人辈出。
雪    币: 709
活跃值: (2225)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 25 2007-10-10 21:33
85
0
那个"_root_"开头的进程换成自己想要隐藏的进程就可以了吧?
那要是程序名字被改变了,进程名称也就变了,这样是不是就不起作用了啊?

刚学驱动,菜死了,
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
一把刀 2007-10-10 21:35
86
0
很深奥要学习很久 哎
雪    币: 263
活跃值: (17)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
椰子树 2007-10-11 10:41
87
0
太牛了!我要找齐3部好好看看
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fmpfreh 2007-10-11 17:01
88
0
看不懂!
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
vrowang123 1 2007-10-11 18:32
89
0
i love this@@!!!
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
vrowang123 1 2007-10-12 10:15
90
0
请问hook 3什么时候出?
雪    币: 192
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
易之梦 2007-10-12 10:46
91
0
祝贺看雪学院建站七周年!祝贺看雪学院建站七周年!
雪    币: 109
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chinaruto 2007-11-16 18:32
92
0
怎么没有《下》呢????
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dageda 2007-11-27 15:51
93
0
楼主什么时候出 下 啊?盼着呢
雪    币: 210
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jzfcf 2007-11-28 12:59
94
0
强帖留名,去学驱动!
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fyd 2007-11-29 10:59
95
0
不懂HOOK是做什么用的,下下来学习学习!谢谢了!
雪    币: 210
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jzfcf 2007-12-26 12:09
96
0
真是好文啊!感谢楼主分享!另外,楼主人品真不错!
雪    币: 210
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jzfcf 2007-12-26 12:10
97
0
再顶!
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gdlian 2007-12-29 02:16
98
0
一个很重要的参数
#pragma pack(n)

数据边界对齐方式:
以如下结构为例: struct {
                    char a;
                    WORD b;
                    DWORD c;
                    char d;
                   }
在Windows默认结构大小: sizeof(struct) = 4+4+4+4=16;
与#pragma pack(4)一样
若设为 #pragma pack(1), 则结构大小: sizeof(struct) = 1+2+4+1=8;
若设为 #pragma pack(2), 则结构大小: sizeof(struct) = 2+2+4+2=10;
在#pragma pack(1)时:空间是节省了,但访问速度降低了;

关于MDL:具体见http://msdn2.microsoft.com/en-us/library/aa489506.aspx
A contiguous virtual memory address range can be spread over several physical pages, and these

pages can be discontiguous. The system uses a memory descriptor list (MDL) structure to

represent the physical page layout for a virtual memory buffer.

You can allocate an MDL with the IoAllocateMdl routine.

For a buffer that is allocated from nonpaged pool, use MmBuildMdlForNonPagedPool to initialize

the page number array.

For pagable memory, the correspondence between virtual and physical memory is temporary, so the

page number array is valid only under certain circumstances. Call MmProbeAndLockPages to lock

the pagable memory into place and initialize the page number array for the current layout. The

memory will not be paged out until the caller uses the MmUnlockPages routine, at which point

the contents of the page number array are no longer valid.
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gdlian 2007-12-29 02:39
99
0
#define SYSTEMSERVICE(_func) \
          KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_func+1)]
/*Zw*函数都开始于opcode:MOV eax, ULONG,这里的ULONG就是系统调用函数在SSDT中的索引,因此_func+1(_func为Zw*函数的地址,你可以搜索ntoskrnl.exe的导出表来获取它?)就是系统调用函数在SSDT中的索引,利用这个索引就可以找到对应的NT*()函数的地址。ZW*()函数指向INT 2eh ,而NT*()指向函数代码这意味着Zw*()函数集合将从用户模式转入内核模式,而Nt*符号直接指向的代码会在模式切换后被执行。
*/
  

  
  #define HOOK_SYSCALL(_Function, _Hook, _Orig )       \
  
          _Orig = (PVOID) InterlockedExchange( (PLONG) \\注意,InterlockedExchange指令可以保证是原子操作
  
          &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hhyjmd 2008-1-31 14:43
100
0
继续关注中,谢谢分享!
游客
登录 | 注册 方可回帖
返回