首页
社区
课程
招聘
[原创]Tp已经pass Only win7 32下面讲解方法
发表于: 2013-8-7 16:46 36319

[原创]Tp已经pass Only win7 32下面讲解方法

2013-8-7 16:46
36319
收藏
免费 5
支持
分享
最新回复 (42)
雪    币: 118
活跃值: (27)
能力值: ( 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
那就舍近求远了.
2013-8-8 13:28
0
雪    币: 167
活跃值: (190)
能力值: ( 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);


2013-8-8 16:12
0
雪    币: 167
活跃值: (190)
能力值: ( 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);
			
		}
	}


	


}
2013-8-8 18:11
0
雪    币: 3110
活跃值: (143)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
29
研究一个
2013-8-8 20:41
0
雪    币: 70
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
dbgkdebugobjecttype 干掉检测函数,然后恢复原始值=DEBUG_ALL_ACCESS,简单多了
2013-8-8 22:04
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
感谢共享

谢谢
2013-8-10 12:50
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
那个图并不是非法模块什么的

那个图说明此方法已经被TP pass
2013-8-10 13:03
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
看楼主开的这几个工具,如果PASS完全的话不会出现非法的啊!TP对debugport有多重校验,对于TP自校验的话,只需要修改一个字节就可以了,这样就可以对TP开刀都手术了。
2013-8-10 13:17
0
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
标记一下,有时间好好看看
2013-8-12 18:04
0
雪    币: 172
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
你是不是下硬件断点了?下硬件断点会非法,因为没有看到你PASS这个东西
2013-8-13 00:20
0
雪    币: 167
活跃值: (190)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
36
我说了TP已经过了,不清楚请搜索我的帖子
七夕了不带女友去玩?这么晚不睡?
2013-8-13 00:21
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
dbgkdebugobjecttype,在XP系统的数据结构对应偏移跟win7是一样的么
2013-8-15 17:07
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
mark
2013-8-18 10:35
0
雪    币: 1906
活跃值: (712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
多谢楼主分享啊,好东东,支持
2013-8-18 14:25
0
雪    币: 177
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
留下Q号一起学习。有愿意的加我。275659738
2013-9-20 08:23
0
雪    币: 39
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
兄弟,你双机调试怎么搞定的?
2013-9-26 00:20
0
雪    币: 564
活跃值: (390)
能力值: ( 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;
你这些获取的都是同一个地址吧..
2014-7-8 17:34
0
雪    币: 26
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
GetSysImageBase这个函数怎么写啊。LZ
2014-7-14 07:44
0
游客
登录 | 注册 方可回帖
返回
//