首页
社区
课程
招聘
[原创]WIN64驱动编程基础教程(福利:过WIN7/8/8.1签名强制的LIB、过WIN7“补丁守卫”的SRC、吊销的正规数字签名)
发表于: 2014-5-4 17:51 136169

[原创]WIN64驱动编程基础教程(福利:过WIN7/8/8.1签名强制的LIB、过WIN7“补丁守卫”的SRC、吊销的正规数字签名)

2014-5-4 17:51
136169
收藏
免费 12
支持
分享
打赏 + 11.00雪花
打赏次数 2 雪花 + 11.00
 
赞赏  駱勇   +10.00 2019/03/20 你分享的东西是无价之宝
赞赏  一位没有留下痕迹的看雪读者   +1.00 2018/10/28
最新回复 (263)
雪    币: 65
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
126
强烈支持   学习ing
2014-5-11 22:07
0
雪    币: 53
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
127
么么哒~
2014-5-12 10:30
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
128
顶一下,谢谢楼主分享。
2014-5-12 10:55
0
雪    币: 326
活跃值: (56)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
129
支持一下,下来看看。
2014-5-12 11:38
0
雪    币: 1
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
130
也顶一下这个贴 先声明:谁都不帮 只来看戏打酱油
2014-5-12 21:44
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
131
这几天边看边试验HOOK SSDT,原教程的代码是HOOK NtTerminateProcess 能正常运行
接着改写代码 HOOK NtCreateSemaphore运行出错
查找原因,原来NtCreateSemaphore有5个参数,前4个都是通过寄存器传递的,传递正确
而第5个参数是通过堆栈传递的,如果修改了SSDT入口表指向自已的函数,第5个参数传递过来总是0,执行出错。而正常情况,指向原始的函数入口是,第5个能数传递过来的正确的。
///////////////////////////////163        NtCreateSemaphore
typedef NTSTATUS (__fastcall *NTCREATESEMAPHORE)(
                OUT PHANDLE             SemaphoreHandle,
                IN ACCESS_MASK          DesiredAccess,
                IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL,
                IN ULONG                InitialCount,
                IN ULONG                MaximumCount
                );
NTCREATESEMAPHORE         NtCreateSemaphore=NULL;
NTSTATUS __fastcall MyNtCreateSemaphore(
                OUT PHANDLE             SemaphoreHandle,
                IN ACCESS_MASK          DesiredAccess,
                IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL,
                IN ULONG                InitialCount,
                IN ULONG                MaximumCount)
{
                //啥都没干,直接转到原来的函数,但因为第5个参数MaximumCount总是0而出错
        NTSTATUS status;
        status = NtCreateSemaphore(
                SemaphoreHandle,
                DesiredAccess,
                ObjectAttributes,
                InitialCount,
                MaximumCount
        );
        return status;
}
2014-5-12 23:11
0
雪    币: 231
活跃值: (233)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
132
非常高兴见到能提出这个问题的朋友。说明你是认真看PDF和调试代码的。

我已经将新版代码上传至我的论坛:http://www.vbasm.com/thread-7994-1-1.html

PS:欢迎进入我的群204267013。
2014-5-12 23:29
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
133
业界良心啊,还修复了BUG
2014-5-13 00:32
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
134
没想到这么快就得到作者的回应
问题已解决,原来的代码改写,保留了低4位的数据,编译后试验通过了

ParameterCount = ServiceTableBase[Index]&0x0f ;
ServiceTableBase[Index]=ParameterCount + GetOffsetAddress(*OldProcess);

ParameterCount是堆栈传递的参数个数

调试信息如下
SemaphoreHandle = 8e358
DesiredAccess = 1f0003
ObjectAttributes = 8ebb0
InitialCount = 0
MaximumCount = 5 <----第5个参数已正确传递了,
MyNtCreateSemaphore called!

说明:参数个数,如果是4个以下,应该为0,始过4个,=参数个数-4
如CreateSemaphore有5个参数,5-4=1个参数,是通过堆栈传递的
2014-5-13 00:45
0
雪    币: 7
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
135
楼主果然好人,顶
2014-5-13 09:41
0
雪    币: 2
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
136
LZ好人有良心 不得不顶

layerfsd就是一条疯狗 已经不是第一次咬你了 喷子的脑子是我们不能也不需要理解的~~~

期待LZ的下次更新或开源
2014-5-13 11:58
0
雪    币: 652
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
137
顶下,谢谢楼主分享
2014-5-13 14:14
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
138
看雪的朋友能把代码弄个本地一份吗,那个论坛太那个,注册了也不行!
我二了,不注册直接下
2014-5-13 15:20
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
139
这种共享的精神必须顶啊。 多谢。。。
2014-5-13 15:38
0
雪    币: 40
活跃值: (274)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
140
顶下,楼主牛B,多谢楼主分享
2014-5-16 09:31
0
雪    币: 29
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
141
做个记号,回头学习一下。
2014-5-18 23:51
0
雪    币: 149
活跃值: (2618)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
142
非常不错啊
2014-5-19 11:07
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
143
这个在市场上肯定 很值钱的,居然免费公开了~
建议楼主出书,第一时间买!
2014-5-19 11:30
0
雪    币: 220
活跃值: (701)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
144
本教程由于编写仓促,难免有错漏之处,欢迎指出。不过本教程的代码绝对没有故意插入的错误,所有代码都能“即抄即用”。

非常支持
2014-5-20 06:44
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
145
即插即用,Plug and Play,简称pnp,pp,
即抄即用,Copy and Compile,简称cnc,cc,话说 C&C是个游戏吧。
2014-5-20 07:02
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
146
非常支持+12345
2014-5-22 19:13
0
雪    币: 5028
活跃值: (3429)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
147
多谢楼主分享
2014-5-23 09:38
0
雪    币: 38
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
148
救星!请接收我卑微的供奉吧!
2014-5-24 12:52
0
雪    币: 188
活跃值: (476)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
149
Nice tutorial.Thanks for share!
2014-5-26 00:30
0
雪    币: 195
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
150
非常感谢厚道的楼主Tesla.Angela!
2014-5-26 19:57
0
游客
登录 | 注册 方可回帖
返回
//