首页
社区
课程
招聘
[原创]水貼:關於KiFastCallEntry的新玩法---過保護的同學注意啦
2014-6-23 14:17 7202

[原创]水貼:關於KiFastCallEntry的新玩法---過保護的同學注意啦

2014-6-23 14:17
7202
内核重载+Hook KiFastCallEntry已经烂大街,白菜价格的技术了,所以我们要创新,我们要有新玩法:内核重载新玩法---借尸还魂。什么叫借尸还魂?基本的解释就是:迷信传说人死后灵魂还会借别人的尸体复活。但是用在计算机里面,顾名思义就是借助别人的东西来实现自己的目的。也就是借尸还魂的基本理论:借助360的HookPort,我们再Hook 360这个函数,即可绕过一些游戏保护对此函数的检测。那我们现在先来看360对KiFastCallEntry的Hook:

80542600 8b3f            mov     edi,dword ptr [edi]
80542602 8b1c87          mov     ebx,dword ptr [edi+eax*4]
80542605 e9d6945109      jmp     89a5bae0

lkd> u 89a5bae0
89a5bae0 e91f5e8527      jmp     b12b1904
89a5bae5 0000            add     byte ptr [eax],al
89a5bae7 0002            add     byte ptr [edx],al
89a5bae9 0003            add     byte ptr [ebx],al


lkd> u b12b1904 l 20
b12b1904 8bff            mov     edi,edi
b12b1906 9c              pushfd
b12b1907 60              pushad
b12b1908 57              push    edi
b12b1909 53              push    ebx
b12b190a 50              push    eax
b12b190b e860ffffff      call    b12b1870
b12b1910 89442410        mov     dword ptr [esp+10h],eax
b12b1914 61              popad
b12b1915 9d              popfd
b12b1916 2be1            sub     esp,ecx
b12b1918 c1e902          shr     ecx,2
b12b191b ff351c432bb1    push    dword ptr ds:[0B12B431Ch]
b12b1921 c3              ret


我们怎么知道360这个Hook函数的参数,以及返回地址是什么含义呢?
b12b1908 57              push    edi
b12b1909 53              push    ebx
b12b190a 50              push    eax
b12b190b e860ffffff      call    b12b1870


自己hook b12b1870,打印出來這些參數,就懂了。。

帖子的核心:借助360的HookPort,然后我们在Hook 360的地址,这样一来,游戏保护就会认为KiFastCallEntry是被360的Hook着,但是实际上,我们已经接管了360的HookPort

最後放馬:

NTSTATUS NewNtOpenProcess(
PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes,
PCLIENT_ID ClientId
)
{
if (KeGetCurrentIrql() == PASSIVE_LEVEL){
KdPrint(("NtOpenProcess() by %s\r\n",PsGetProcessImageFileName(PsGetCurrentProcess())));
}
//这里直接调用我们的重载函数,这样一来就可以直接绕过游戏保护对NtOpenProcess此函数的Hook
//我们可以做个判断,如果是0D,就要走重载内核的函数
//如果是游戏调用,就要走原始函数地址
return ReloadNtOpenProcess(ProcessHandle,DesiredAccess,ObjectAttributes,ClientId);
}
//这个是360的过滤函数
//参数:1ssdt服务号,2当前调用的ssdt函数地址,3KiServiceTable
//返回值:假设如果调用的是NtOpenProcess,那么返回的是360自己的过滤函数,如果调用的是其他360不关心的函数,则直接返回
PVOID NewHookPortFunction(__in ULONG ulong_ssdt_number,
__in PVOID pvoid_ssdt_function_address,
__in PVOID KiServiceTable
)
{
PVOID pvoid_360_call_ret;

//首先调用360这个原始函数
HookPortFunction = (HOOKPORTFUNCTION)HookPortFunctionHookZone;
pvoid_360_call_ret = HookPortFunction(ulong_ssdt_number,pvoid_ssdt_function_address,KiServiceTable);

//for test
if (ulong_ssdt_number == 122)
{
KdPrint(("pvoid_360_call_ret:%08X %08X\r\n",pvoid_360_call_ret,pvoid_ssdt_function_address));

//直接返回我们自己的过滤函数地址,这样就达到了借尸还魂的目的
return NewNtOpenProcess;
}
return pvoid_360_call_ret;
}


PS:想得到更詳細的代碼,大家可以去網上下載AGP高級班的盜版,盜版一堆的 ╮(╯▽╰)╭ 2.3.3(1.借尸还魂)課即可。出了360,我們還可以弄QQ管家,如果你們搞TP的話,用QQ管家來接管是最合適的了。 (╯‵□′)╯︵┻━┻

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (8)
雪    币: 2654
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
安于此生 34 2014-6-23 14:24
2
0
A总的这个不是之前讲过了吗?
雪    币: 3017
活跃值: (1149)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
zhouws 2 2014-6-23 14:37
3
0
貌似我第一次放那个框架代码里面就提到过了,要是我没删注释,应该还能找到
雪    币: 2
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nxtxfxsx 2014-6-23 14:45
4
0
感谢A代码总又来分享技术。那我也来分享一下盗版
http://pan.baidu.com/s/1qWNOJIs

顺带帮A总宣传一下神奇的AGP
AGP论坛和老V没关系纯属山寨货:http://bbs.pediy.com/showthread.php?t=187617
AGP大牛-山总(东阳不列山)讲解史上最牛找游戏基址教程:http://bbs.pediy.com/showthread.php?t=187590
山总的MFC42再次告诉我们什么是坑:http://bbs.pediy.com/showthread.php?t=187654
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2014-6-23 15:15
5
0
不错~mark
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
AioliaSky 1 2014-6-23 17:38
6
0
可以hook应用层的KiFastSystemCall
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
goddkiller 2014-6-24 09:41
7
0
真WS~~~
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kman 2014-6-24 20:48
8
0
过时了,新版不是这样了
雪    币: 253
活跃值: (487)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chengqiyan 2014-6-28 22:30
9
0
老掉牙了 这种去年就公开了  现在都用应用层 还支持64位
游客
登录 | 注册 方可回帖
返回