能力值:
( LV8,RANK:120 )
|
-
-
2 楼
**个肺啊,
|
能力值:
( LV8,RANK:120 )
|
-
-
3 楼
沙发我站了也
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
现在好东西都是新手发了
|
能力值:
( LV8,RANK:120 )
|
-
-
5 楼
楼主,已经写好给你了。。
GalaxyAP过游戏反调试框架,里面就有啥重加载内核的框架
http://bbs.pediy.com/showthread.php?t=142443
|
能力值:
(RANK:400 )
|
-
-
6 楼
怎么最近搞游戏保护的人这么多啊。。。
|
能力值:
( LV2,RANK:140 )
|
-
-
7 楼
看雪水太深啊,淹死我都没捞出来
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
不错,强大~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
友情顶贴(⊙o⊙)
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
好东西,顶一个。
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
非常不错
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
友情顶哥 ,咱俩都天字辈的。
|
能力值:
( LV9,RANK:160 )
|
-
-
13 楼
一年前的东西现在都增加好几个保护基本上没用了
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
感谢分享
|
能力值:
( LV2,RANK:140 )
|
-
-
15 楼
还是能用的,主要是他那个DebugPort清零一直可以用
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
支持楼主分享
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
不知道是不是使用的方法有问题
Win2003下,第2个驱动加载后,调用0x80->0x2080的NtOpenProcess时,NewKiFastCallEntry里还是调用了dword ptr fs:[1Ch] +124 +118 +0 +0x80*4 的老KeServiceDescriptorTable的表
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
学习了,牛人
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
先顶,然后留着以后慢慢看
|
能力值:
( LV2,RANK:140 )
|
-
-
20 楼
[QUOTE=Music小冷;1064241]不知道是不是使用的方法有问题
Win2003下,第2个驱动加载后,调用0x80->0x2080的NtOpenProcess时,NewKiFastCallEntry里还是调用了dword ptr fs:[1Ch] +124 +118 +0 +0x80*4 的老KeServiceDescriptorT...[/QUOTE]
忘记说使用方法了,加载驱动后, OD等程序文件名里面加个 HackProtect 注意大小写
我测试了几台xp都没问题
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
是在Win2003下测试的,最后发现问题在KeAddSystemServiceTable里,XP下TableIndex>3直接返回,Win2003下TableIndex>1就直接结束了.....
这个驱动边学边改改了好几天了还没在Win2003下改完。。。
PS:话说好像现在DXF不能在虚拟机的XP和2003中运行了?用了3个系统都没运行成功。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
在2003下KiFastCallEntry计算mov edi,eax;shr edi,8;and edi,10h找不到合适位置。。。
MyKiFastCallEntry中把_KPCR *SelfPcr->_KTHREAD->ServiceTable的位置改成自己的SSDT和shadowSSDT,程序一启动就是0xc0000005错误
让被保护程序直接加载新内核也不会搞。。。
搞了很久也没搞定这个。。。彻底崩溃了。。。还是inline吧
|
能力值:
( LV2,RANK:140 )
|
-
-
23 楼
我只测试了xp sp3吧, ssdt一共4项,正常情况下只用了前2项, 我把新内核的sdt加为第三项,然后在KiFastCallEntry里面判断为保护的进程则将ServiceIndex加0x2000,这样他会自动去访问第三个表里面的函数了
|
能力值:
( LV2,RANK:140 )
|
-
-
24 楼
开始我也也是想改KTHREAD里的ServiceTable, 不过后来想想这样可能稳定性和通用性反而不好就算了.
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
XP里看了一下,确实如此
万恶的2003啊,只有2个表的位置。。。最后还是inline hook KiFastCallEntry里面替换了
顺便附上一直崩溃的MyKiFastCallEntry仅供娱乐
void __declspec(naked) MyKiFastCallEntry()
{
__asm
{
// cmp eax, 1000h
// jae win32k_s
pushad
push eax
/*
mov ax,23h
mov ds,ax
mov es,ax
mov gs,ax//*/
mov ax,0x30
mov fs,ax
call IsProtectProcessService
test al, al //=0 OLD;=1 NEW
popad
je win32k_s
push edx
push edi
mov edi,dword ptr fs:[0x1C] //_KPCR+1C
mov edi,dword ptr [edi+0x124] //_KPCR *SelfPcr +124=_KTHREAD
mov edx,dword ptr [edi+0x118] //_KTHREAD+118=ServiceTable
cmp edx,OrgServiceDescriptorTable_ntoskrnl_Addr
je __changessdt
cmp edx,OrgServiceDescriptorTable_win32k_Addr
je __changeshadow
cmp eax,0x1000
jae __changeshadow
jmp __nod
__changessdt:
mov edx,NewServiceDescriptorTable_ntoskrnl_Addr
mov dword ptr [edi+0x118],edx
jmp __nod
__changeshadow:
mov edx,NewServiceDescriptorTable_win32k_Addr
mov dword ptr [edi+0x118],edx
__nod:
pop edi
pop edx
add eax, 2000h
jmp [NewKiFastCallEntry]
jmp __end
win32k_s:
jmp [OrgKiFastCallEntry]
__end:
}
}
|
|
|