能力值:
( LV6,RANK:93 )
|
-
-
2 楼
继续你老板也知道,叫他买那个链接里的源码就好了,何必苦逼了自己,你给他说要是能搞定这个怕不止1800哦。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
http://www.m5home.com/bbs/thread-7870-1-1.html
连接里面都是要重启机器,没啥实际意义。和DEBUG模式没区别
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
那个链接里的,实际就是直接修改客户机器上的PE文件,而且是永久性修改,与纯粹的内存补丁是不一样的东西。
自己玩玩的话,无哦所谓,商业程序,这么搞,被人发现,就可以认定为流氓软件,造成损失要赔偿的。
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
要能正常商用的程序,你就不要去想怎么过PG了,幻想而已。。。。。
自己想其它办法吧。。。。。没有hook做不了事情么,难道?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我们的电脑怎么弄关你屁事。每次看到关于PATCHGUARD的话题你就忍不住激动,那么搞游戏破解和手机ROOT的人统统可以判死刑了。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
那麻烦你说个有意义的方法,谢谢。
提供一种不重启过PATCHGUARD的方法,或者PATCHGUARD管不着的HOOK方式。
另外我发现,光DEBUG模式不行啊,必须是开机前就进行双机调试才行,否则必蓝。
|
能力值:
( LV4,RANK:40 )
|
-
-
8 楼
不重启过PatchGuard的方法不是不存在,只是很难做到,肯定不是简单的Patch一下哪个函数,干掉哪个Timer就行了。一般有办法的作者都去发表学术论文了......
另外,这类方法的学术价值高于实用价值,因为PatchGuard可以很快升级来应对。也就是说,在产品里用是不现实的。如果您的boss执意采用这种方法,那么......
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
BOSS才不管你用什么方法呢。
我也不想得罪PG,只想在R0实现拦截“提权”和“改时间”。这才是我的目的。
问题是除了HOOK SSDT之外,还有别的方法实现么???
|
能力值:
( LV4,RANK:40 )
|
-
-
10 楼
改时间是会发送通知的,具体的忘了,但是实在改时间完成以后发送的,有些晚。
你说的提权是只什么?UAC那个提到管理员还是到更高的System什么的?
|
能力值:
( LV3,RANK:30 )
|
-
-
11 楼
本来是给你提个醒而已。。。。。这么愤青的,居然
难不成别人现有的64位带主防的东西,别人不用hook做不了事么?自己多研究,技术不是这么急功近利就能长进的。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
全RING3吧,其实只要做得好一样能拦住的,不是说非要RING0不可,如果BOSS非这么认为,只能说BOSS属于小白水平
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
以前看雪上有一篇帖子,URL忘记了。讲的就是不依靠NTDLL实现调用NTDLL的函数。
自己看了下NTDLL那些函数(ZwXXX),实现的汇编码也很简单,直接把这些汇编码复制到内存区(BUFFER)里跑就行了。
所以说RING3的HOOK是不靠谱滴。
还有,老板只有钱,压根没水平,白菜都算不上。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
确实是很多办法可以对付RING3 HOOK,但是你确定你的对手有这么强么,如果没有,非要搞RING0就是得不偿失。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
过PG比较有难度,搞搞VMX什么的容易些
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
PatchGuard引发蓝屏的方式:
KeBugCheckEx(0x109,0x0,0x0,0x0,0x7);
PVOID GetFunctionAddr(PCWSTR FunctionName)
{
UNICODE_STRING UniCodeFunctionName;
RtlInitUnicodeString( &UniCodeFunctionName, FunctionName );
return MmGetSystemRoutineAddress( &UniCodeFunctionName );
}
void WPOFFx64()
{
UINT64 cr0=__readcr0();
cr0 &= 0xfffffffffffeffff;
__writecr0(cr0);
_disable();
}
void WPONx64()
{
UINT64 cr0=__readcr0();
cr0 |= 0x10000;
_enable();
__writecr0(cr0);
}
VOID AntiBugCheck_1() //SUCCESS
{
//KeBugCheckEx
//fffff800`03c81f00 48894c2408 mov qword ptr [rsp+8],rcx
UCHAR fuckcode[210]={0};
KIRQL OldIrql;
ULONG jmpcode;
//get address
PVOID bcaddr = GetFunctionAddr(L"KeBugCheckEx");
//set memory
memset(fuckcode,0x90,210);
memset((PVOID)((UINT64)fuckcode+201),0xE9,1);
//calc shellcode
jmpcode=(ULONG)((ULONG64)bcaddr-((ULONG64)bcaddr+201)-5);
memcpy(fuckcode+202,&jmpcode,4);
//patch
WPOFFx64();
OldIrql = KeRaiseIrqlToDpcLevel();
RtlMoveMemory(bcaddr,fuckcode,210);
KeLowerIrql(OldIrql);
WPONx64();
}
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
早试过这个代码了,没用。继续求。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
这PG我以前弄过,一开始不知道有这东西的存在,hook了64位,发现过半小时就蓝了。后来就没碰它了。
64位下不能hook,但微软给了一套方案是给开发者监控句柄达到hook的目的什么的,是叫什么名字不记得了只是听别人提过。
反正微软有一个机制给你hook。这机制叫啥名字我不知道
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
反正世界上有长生不老的方法,但是名字叫啥我不知道。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
可以学习下360的64位防护,用VT做的,秒过patchguard
想不用VT硬过win8 patchguard,估计楼主再练10年也不可能,就是这个论坛里我估计能硬过的也不超过3个。
如果patch很多系统文件和MBR过的话呢(就是m5home那个),如果你们老板能接受,也是个可行的路子,这个难度就很低了,m5home那个作者就是个小白,他既然能写,随便拉个学生过来也能写,不过当然还得处理secure boot的问题,比如这个方案就不能支持secure boot/UEFI的硬件,这个WIN8的新机器基本上都有,secure boot不是不能过,但过的方法针对性太强。
其实呢,也不用这么纠结强度, 你以为你把钩子做到ring0就不会被过了吗?水平不到位,一样秒绕。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
。。楼上什么情况?
|
|
|