|
[分享]那些年我们一起爆的PatchGuard之2,顺便爆一下Tesla.Angela这种抄袭***
[QUOTE=天一十年;1281082]你的帖子和他的帖子我都看过了,很明显人家说的是你公开人家的付费教程。[/QUOTE] xxx???????放家里了么???????你没看到第二张图片那么大的字,侵犯版权证据? |
|
[讨论]求助,C++运行外部程序权限问题
不是被盗号,这个问题是我朋友借我号用的~~~ |
|
[分享]对A盾原理的小小总结,膜拜A神
枚举隐藏进程看得不够仔细。。。。枚举隐藏进程是Hook了内核入口KiFastCallEntry,然后在过滤函数NewKiFastCallEntry里面调用PsGetCurrentProcess获得当前进入内核的进程EPROCESS到一块链表上。 当用户枚举进程的时候,调用常规方法枚举,然后对比链表是否发现该进程,如果没有发现则说明隐藏进程 优点:只要进程进入内核,经过KiFastCallEntry,就一定能枚举到 缺点:带Hook了 ╮(╯▽╰)╭ “禁止创建进程,禁止创建文件,进程服务回写,禁止内核线程,禁止全局钩子,关闭dll劫持防护在开源代码中目前还没有实现。 ” 已经实现,在最新版本开源代码中,0.4.5版本 吧 |
|
[求助]ZXPortMap 端口映射项目求助
少开几个,也断网么? 少开几个也会断网 |
|
[原创]x64 ring3 inline-hook
下载留名~~mark~ |
|
[原创]再见,看雪论坛,这一次是永远!
楼主是痴线猪吗? |
|
[讨论]Win7x64 无法通过替换表项进行SSDT HOOK???
你都可以得到64下SSDT表的地址了,为什么不操起windbg看下这个64下SSDT表数据结构呢 |
|
[讨论]x64的SSDT怎么声明?
//true:ssdt //false:shadowssdt PSERVICE_DESCRIPTOR_TABLE GetSsdtExTable(unsigned char *ZwCloseProcBase,BOOLEAN SsdtType) { UNICODE_STRING FunctionName; LDE Ldex64=NULL; int nIndex; DWORD64 OpcodeLength; BOOLEAN IsFound; LONG ImmTemp; DWORD_PTR UsignedImmTemp; unsigned char * KiServiceInternal; DWORD_PTR KeServiceDescriptorTableShadow; if (ZwCloseProcBase == NULL) { return NULL; } Ldex64=(LDE)ExAllocatePool(NonPagedPool,sizeof(LdeCode)); if (Ldex64==NULL) { return FALSE; } RtlCopyMemory(Ldex64,LdeCode,sizeof(LdeCode)); IsFound=FALSE; for (nIndex=0;nIndex<30;nIndex++) { if(MmIsAddressValid(ZwCloseProcBase)) { OpcodeLength=Ldex64((DWORD64)ZwCloseProcBase,64); if (OpcodeLength==5) { if(ZwCloseProcBase[0]==0xe9) { IsFound=TRUE; break; } } ZwCloseProcBase+=OpcodeLength; } } if (!IsFound) { LogDebug("get ZwCloseProcBase call failed\n"); return NULL; } ImmTemp=*(LONG*)(&ZwCloseProcBase[1]); UsignedImmTemp=(DWORD_PTR)ImmTemp; KiServiceInternal=(unsigned char *)((DWORD_PTR)ZwCloseProcBase+5+UsignedImmTemp); LogDebug("KiServiceInternal:%p\n",KiServiceInternal); /* fffff800`03c8ffea 83e720 and edi,20h fffff800`03c8ffed 25ff0f0000 and eax,0FFFh nt!KiSystemServiceRepeat: fffff800`03c8fff2 4c8d1547782300 lea r10,[nt!KeServiceDescriptorTable (fffff800`03ec7840)] fffff800`03c8fff9 4c8d1d80782300 lea r11,[nt!KeServiceDescriptorTableShadow (fffff800`03ec7880)] */ IsFound=FALSE; for (nIndex=0;nIndex<150;nIndex++) { if(MmIsAddressValid(KiServiceInternal)) { OpcodeLength=Ldex64((DWORD64)KiServiceInternal,64); if (OpcodeLength==5) { if (KiServiceInternal[0]==0x25&& KiServiceInternal[1]==0xff&& KiServiceInternal[2]==0x0f&& KiServiceInternal[3]==0x00&& KiServiceInternal[4]==0x00) { KiServiceInternal+=OpcodeLength; OpcodeLength=Ldex64((DWORD64)KiServiceInternal,64); if (OpcodeLength==7) { //4c 8d 15 if (KiServiceInternal[0]==0x4c&& KiServiceInternal[1]==0x8d&& KiServiceInternal[2]==0x15) { //get ssdt if (SsdtType) { IsFound=TRUE; break; } KiServiceInternal+=OpcodeLength; OpcodeLength=Ldex64((DWORD64)KiServiceInternal,64); if (OpcodeLength==7) { //4c 8d 1d if (KiServiceInternal[0]==0x4c&& KiServiceInternal[1]==0x8d&& KiServiceInternal[2]==0x1d) { //__debugbreak(); IsFound=TRUE; break; } } } } } } KiServiceInternal+=OpcodeLength; } } if(!IsFound) { return NULL; } ImmTemp=*(LONG*)(&KiServiceInternal[3]); UsignedImmTemp=(DWORD_PTR)ImmTemp; KeServiceDescriptorTableShadow=(DWORD_PTR)KiServiceInternal+7+UsignedImmTemp; LogDebug("SSDTEx Table:%p\n",KeServiceDescriptorTableShadow); return (PSERVICE_DESCRIPTOR_TABLE)KeServiceDescriptorTableShadow; } |
|
[求助]Win7 X64加载驱动可以用自制签名否?
为什么放弃治疗~ |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值