能力值:
( LV9,RANK:140 )
|
-
-
2 楼
沙发。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
何必呢???
|
能力值:
( LV12,RANK:760 )
|
-
-
4 楼
还是的我来改改你的代码吧~~你这真复杂~
第一关于函数XX的修改~弄个stdcall直接return就好,naked反而容易挂花~,里面代码可以随意print~
DWORD __stdcall MapUserSpace(DWORD Arg1)
{
PVOID pBuf;
pBuf = ExAllocatePool(NonPagedPool,0x1000);
PMDL pMdl;
pMdl = IoAllocateMdl(pBuf,0x1000,FALSE,FALSE,NULL);
memset(pBuf,0xAA,100);
if(!pMdl) ExFreePool(pBuf);
MmBuildMdlForNonPagedPool(pMdl);
ULONG ulUserBase;
ulUserBase = (ULONG)MmMapLockedPagesSpecifyCache(pMdl,UserMode,MmCached,NULL,FALSE,NormalPagePriority);
return ulUserBase;
}
第二对 中断的修改,既然是naked,那么就彻底naked!
__asm
{
push ebp
mov ebp,esp
sub esp,8h//8h差不多够了放2个值了,其实这里只保存一个局部变量
pushad
pushfd
push ds
push es
push fs
push eax
mov eax, 0x23
mov ds, ax
mov es, ax
mov eax, 0x30
mov fs, ax
pop eax
push eax
call MapUserSpace //MapUserSpace是用来映射的函数。。
mov [ebp-4],eax
pop fs
pop es
pop ds
popfd
popad
mov eax,[ebp-4]
mov esp,ebp
pop ebp
Iretd
}
|
能力值:
( LV11,RANK:190 )
|
-
-
5 楼
有人发布个连连看源码,却那么多人关注,何必呢
|
能力值:
( LV11,RANK:190 )
|
-
-
6 楼
嘿嘿。。谢谢。。吼吼
|
|
|