能力值:
( LV2,RANK:10 )
|
-
-
126 楼
强烈支持 学习ing
|
能力值:
( LV2,RANK:10 )
|
-
-
127 楼
么么哒~
|
能力值:
( LV5,RANK:60 )
|
-
-
128 楼
顶一下,谢谢楼主分享。
|
能力值:
( LV3,RANK:30 )
|
-
-
129 楼
支持一下,下来看看。
|
能力值:
( LV2,RANK:10 )
|
-
-
130 楼
也顶一下这个贴 先声明:谁都不帮 只来看戏打酱油
|
能力值:
( 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;
}
|
能力值:
( LV4,RANK:50 )
|
-
-
132 楼
非常高兴见到能提出这个问题的朋友。说明你是认真看PDF和调试代码的。
我已经将新版代码上传至我的论坛:http://www.vbasm.com/thread-7994-1-1.html
PS:欢迎进入我的群204267013。
|
能力值:
( LV2,RANK:10 )
|
-
-
133 楼
业界良心啊,还修复了BUG
|
能力值:
( 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个参数,是通过堆栈传递的
|
能力值:
( LV2,RANK:10 )
|
-
-
135 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
136 楼
LZ好人有良心 不得不顶
layerfsd就是一条疯狗 已经不是第一次咬你了 喷子的脑子是我们不能也不需要理解的~~~
期待LZ的下次更新或开源
|
能力值:
( LV2,RANK:10 )
|
-
-
137 楼
顶下,谢谢楼主分享
|
能力值:
( LV5,RANK:60 )
|
-
-
138 楼
看雪的朋友能把代码弄个本地一份吗,那个论坛太那个,注册了也不行!
我二了,不注册直接下
|
能力值:
( LV2,RANK:10 )
|
-
-
139 楼
这种共享的精神必须顶啊。 多谢。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
140 楼
顶下,楼主牛B,多谢楼主分享
|
能力值:
( LV2,RANK:10 )
|
-
-
141 楼
做个记号,回头学习一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
142 楼
非常不错啊
|
能力值:
( LV2,RANK:10 )
|
-
-
143 楼
这个在市场上肯定 很值钱的,居然免费公开了~
建议楼主出书,第一时间买!
|
能力值:
( LV2,RANK:10 )
|
-
-
144 楼
本教程由于编写仓促,难免有错漏之处,欢迎指出。不过本教程的代码绝对没有故意插入的错误,所有代码都能“即抄即用”。
非常支持
|
能力值:
( LV2,RANK:10 )
|
-
-
145 楼
即插即用,Plug and Play,简称pnp,pp,
即抄即用,Copy and Compile,简称cnc,cc,话说 C&C是个游戏吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
146 楼
非常支持+12345
|
能力值:
( LV13,RANK:283 )
|
-
-
147 楼
多谢楼主分享
|
能力值:
(RANK:10 )
|
-
-
148 楼
救星!请接收我卑微的供奉吧!
|
能力值:
( LV2,RANK:10 )
|
-
-
149 楼
Nice tutorial.Thanks for share!
|
能力值:
( LV2,RANK:10 )
|
-
-
150 楼
非常感谢厚道的楼主Tesla.Angela!
|
|
|