能力值:
( LV3,RANK:20 )
|
-
-
26 楼
在今天这种小学生都会x86内核hook的环境下
想简单用用wrk或者做点小hook就能"通用pass"是很天真的.
因为游戏保护扫扫内核hook 在怎样也比 暴力搜"非法"驱动简单吧?
通用pass法 应该
hide ssdt hook || 自己开中断
全面模拟接管r3调试循环
NP那种坑货是连kifastentry都要查的.
如果单纯anti TP去的.
只是因为tp的crc过不了就去HOOK内核的
最后还是要去处理TP扫内核hook的问题
然后你还是得在TP上hook.还是要过crc
那就舍近求远了.
|
能力值:
( LV5,RANK:60 )
|
-
-
27 楼
Tp是不去管了,复制kernel内存镜像的时候出了点问题,用MmIsAddressValid 就过滤掉了
我想要的那块没得到
不用就蓝屏
不知道是内核太大 还是其他原因。。。
void RtlMoveMemoryEx(int nRHookAddr,char *szMacCode,int nLeng)
{
int i=0;
for (i=0;i<nLeng;i++)
{
if(MmIsAddressValid(&*(PVOID*)szMacCode+i))
{
RtlMoveMemory((char*)nRHookAddr+i,szMacCode+i,1);
}
}
}
PMDL pMdl;
pMdl = IoAllocateMdl(_pMirror,0x403000,FALSE,FALSE,NULL);
MmProtectMdlSystemAddress(pMdl,PAGE_EXECUTE_READWRITE);
IoFreeMdl(pMdl);
RtlMoveMemoryEx((int)_pMirror,(char *)kernelbase,0x403000);
|
能力值:
( LV5,RANK:60 )
|
-
-
28 楼
搞定了 我觉得是自己基础不扎实造成的
void RtlMoveMemoryEx(int nRHookAddr,char *szMacCode,int nLeng)
{
int i=0;
for (i=0;i<nLeng;i++)
{
if(MmIsAddressValid(szMacCode+i))
{
RtlMoveMemory((char*)nRHookAddr+i,szMacCode+i,1);
}
}
}
|
能力值:
( LV3,RANK:20 )
|
-
-
29 楼
研究一个
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
dbgkdebugobjecttype 干掉检测函数,然后恢复原始值=DEBUG_ALL_ACCESS,简单多了
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
感谢共享
谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
那个图并不是非法模块什么的
那个图说明此方法已经被TP pass
|
能力值:
( LV2,RANK:10 )
|
-
-
33 楼
看楼主开的这几个工具,如果PASS完全的话不会出现非法的啊!TP对debugport有多重校验,对于TP自校验的话,只需要修改一个字节就可以了,这样就可以对TP开刀都手术了。
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
标记一下,有时间好好看看
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
你是不是下硬件断点了?下硬件断点会非法,因为没有看到你PASS这个东西
|
能力值:
( LV5,RANK:60 )
|
-
-
36 楼
我说了TP已经过了,不清楚请搜索我的帖子
七夕了不带女友去玩?这么晚不睡?
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
dbgkdebugobjecttype,在XP系统的数据结构对应偏移跟win7是一样的么
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
mark
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
多谢楼主分享啊,好东东,支持
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
留下Q号一起学习。有愿意的加我。275659738
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
兄弟,你双机调试怎么搞定的?
|
能力值:
( LV2,RANK:10 )
|
-
-
42 楼
ULONG PassNtDebugActiveProcess=(ULONG)GetSSDTFunctionAddr(96)+0x9a;
ULONG PassNtCreateDebugObject=(ULONG)GetSSDTFunctionAddr(61)+0x60;
ULONG PassNtWaitForDebugEvent=(ULONG)GetSSDTFunctionAddr(387)+0xb5;
ULONG PassNtDebugContinue=(ULONG)GetSSDTFunctionAddr(97)+0x82;
ULONG PassNtRemoveProcessDebug=(ULONG)GetSSDTFunctionAddr(289)+0x6d;
你这些获取的都是同一个地址吧..
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
GetSysImageBase这个函数怎么写啊。LZ
|
|
|