能力值:
( LV2,RANK:10 )
|
-
-
2 楼
Win 7的KiAttachProcess内核函数:
nt!KiAttachProcess:
81875b9c 8bff mov edi,edi
81875b9e 55 push ebp
81875b9f 8bec mov ebp,esp
81875ba1 53 push ebx
81875ba2 8b5d08 mov ebx,dword ptr [ebp+8]
81875ba5 56 push esi
81875ba6 8bf0 mov esi,eax
81875ba8 8b4510 mov eax,dword ptr [ebp+10h]
81875bab 57 push edi
81875bac 8d7e40 lea edi,[esi+40h]
81875baf 57 push edi
81875bb0 e84d020000 call nt!KiMoveApcState (81875e02)
81875bb5 8b4d10 mov ecx,dword ptr [ebp+10h]
81875bb8 897f04 mov dword ptr [edi+4],edi
81875bbb 893f mov dword ptr [edi],edi
81875bbd 8d4648 lea eax,[esi+48h]
81875bc0 894004 mov dword ptr [eax+4],eax
81875bc3 8900 mov dword ptr [eax],eax
81875bc5 8d8670010000 lea eax,[esi+170h]
81875bcb c6465400 mov byte ptr [esi+54h],0
81875bcf c6465500 mov byte ptr [esi+55h],0
81875bd3 c6465600 mov byte ptr [esi+56h],0
81875bd7 3bc8 cmp ecx,eax
81875bd9 7513 jne nt!KiAttachProcess+0x52 (81875bee)
81875bdb 898668010000 mov dword ptr [esi+168h],eax
81875be1 89be6c010000 mov dword ptr [esi+16Ch],edi
81875be7 c6863401000001 mov byte ptr [esi+134h],1
81875bee 6a08 push 8
81875bf0 58 pop eax
81875bf1 8d5374 lea edx,[ebx+74h]
81875bf4 f00fc102 lock xadd dword ptr [edx],eax
81875bf8 894508 mov dword ptr [ebp+8],eax
81875bfb 8b4508 mov eax,dword ptr [ebp+8]
81875bfe a807 test al,7
81875c00 7510 jne nt!KiAttachProcess+0x76 (81875c12)
81875c02 895e50 mov dword ptr [esi+50h],ebx
81875c05 33c0 xor eax,eax
81875c07 83c660 add esi,60h
81875c0a f02106 lock and dword ptr [esi],eax
81875c0d ff7110 push dword ptr [ecx+10h]
81875c10 eb55 jmp nt!KiAttachProcess+0xcb (81875c67)
81875c12 8d7e60 lea edi,[esi+60h]
81875c15 33c0 xor eax,eax
81875c17 8bcf mov ecx,edi
81875c19 f02101 lock and dword ptr [ecx],eax
81875c1c 8bc3 mov eax,ebx
81875c1e e84f4f0500 call nt!KiInSwapSingleProcess (818cab72)
81875c23 83650800 and dword ptr [ebp+8],0
81875c27 eb27 jmp nt!KiAttachProcess+0xb4 (81875c50)
81875c29 ff4508 inc dword ptr [ebp+8]
81875c2c 8b4508 mov eax,dword ptr [ebp+8]
81875c2f 8505342b9781 test dword ptr [nt!HvlLongSpinCountMask (81972b34)],eax
81875c35 7511 jne nt!KiAttachProcess+0xac (81875c48)
81875c37 f6052c2b978140 test byte ptr [nt!HvlEnlightenments (81972b2c)],40h
81875c3e 7408 je nt!KiAttachProcess+0xac (81875c48)
81875c40 50 push eax
81875c41 e865840600 call nt!HvlNotifyLongSpinWait (818de0ab)
81875c46 eb02 jmp nt!KiAttachProcess+0xae (81875c4a)
81875c48 f390 pause
81875c4a 8b07 mov eax,dword ptr [edi]
81875c4c 85c0 test eax,eax
81875c4e 75d9 jne nt!KiAttachProcess+0x8d (81875c29)
81875c50 33c0 xor eax,eax
81875c52 8bcf mov ecx,edi
81875c54 40 inc eax
81875c55 8701 xchg eax,dword ptr [ecx]
81875c57 85c0 test eax,eax
81875c59 75ce jne nt!KiAttachProcess+0x8d (81875c29)
81875c5b 895e50 mov dword ptr [esi+50h],ebx
81875c5e f02107 lock and dword ptr [edi],eax
81875c61 8b4510 mov eax,dword ptr [ebp+10h]
81875c64 ff7010 push dword ptr [eax+10h]
81875c67 53 push ebx
81875c68 e89728ffff call nt!KiSwapProcess (81868504)
81875c6d 8a4d0c mov cl,byte ptr [ebp+0Ch]
81875c70 ff1558418181 call dword ptr [nt!_imp_KfLowerIrql (81814158)]
81875c76 5f pop edi
81875c77 5e pop esi
81875c78 5b pop ebx
81875c79 5d pop ebp
81875c7a c20c00 ret 0Ch
81875c7d 90 nop
81875c7e 90 nop
81875c7f 90 nop
81875c80 90 nop
81875c81 90 nop
|
能力值:
( LV3,RANK:30 )
|
-
-
3 楼
日游戏的人果然精神...其实还有别的RING3办法!
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
赶紧备一份,防止被和谐,我和我的小伙伴们一起顶楼主
|
能力值:
( LV4,RANK:40 )
|
-
-
5 楼
敢公布,能公布,愿意公布的人不多呀,顶顶顶,有方法,不公布,你就提也不要提了,
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
搂主标题可以加个 Win7 x86吗
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个可以保留
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
Mark......
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
支持。。。。共享精神很难得。。。。。。。。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
Win7 判斷進程會崩潰是因為PEB偏移不同吧?!
個人是直接使用PsGetProcessImageFileName
您可以參考看看
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
2 楼的 什么 ring3 办法?既然要保留,何必说出来
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
马克顺便打酱油
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
支持!…………
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
看到都头疼~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
求解要是64位什么办法好呢
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
自己实现ring3层的系统函数,然后DeviceIoControl进入ring0,再跳到系统驱动执行。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
我看成绿盟科技了-_-!!
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
mark!!
|
能力值:
( LV3,RANK:20 )
|
-
-
19 楼
剥离方法,自己写一个导出ehsvc函数序号的dll,并且每个函数均返回正确的返回值。
而且这个自己写的ehsvcdll必须作为一个自加载dl,而且必须在ehsvc加载之前加载。并且,启动时通过IAT/EAT hook loadlibrary 向程序返回自身的dll句柄。接下来游戏程序通过你的dll句柄查找函数,得到的返回值均是直接返回的正确结果,当遇到HS心跳函数时,直接转发到一个自己写的程序当中,自己的程序相当于一个中介,这个中介主动加载ehsvc.dll,并调用其中的算法,将计算结果返回给游戏,游戏再发送心跳包。
以上是剥离的基本流程。
|