能力值:
( LV2,RANK:10 )
|
-
-
51 楼
插件NB,帮助很大,一些资料 https://github.com/CoderAldrich/AntiDebug https://github.com/hfiref0x /DSEFix /UPGDSED /TDL
|
能力值:
( LV4,RANK:50 )
|
-
-
52 楼
启用该插件之后出现乱码。。 (Win10 x64 + FishcOD) OS 名称: Microsoft Windows 10 专业版 OS 版本: 10.0.16299 暂缺 Build 16299
|
能力值:
( LV3,RANK:35 )
|
-
-
53 楼
NewMai
启用该插件之后出现乱码。。(Win10 x64 + FishcOD)OS 名称: Micro ...
请先看下说明好吗
|
能力值:
( LV2,RANK:10 )
|
-
-
54 楼
vmp 3.1.2版本 int3和硬件断点过不了, “直接模拟wow64 syscall进内核”这个检测原理能详细说下嘛
|
能力值:
( LV10,RANK:163 )
|
-
-
55 楼
想知道楼主的 VMP 3.1(above)如何实现。 在内核下 else if (ProcessDebugObjectHandle == ProcessInformationClass) { if ((NULL != ProcessInformation) && (MmIsAddressValid(ProcessInformation))) { if (NT_SUCCESS(status)) { RtlZeroMemory(ProcessInformation, ProcessInformationLength); }
status = STATUS_PORT_NOT_SET; }
if (NULL != ReturnLength) { *ReturnLength = sizeof(HANDLE); } } 发现被XAntidebug2检测到了。
|
能力值:
( LV10,RANK:163 )
|
-
-
56 楼
NtSetInformationProcess:
if (ProcessBreakOnTermination == ProcessInformationClass)
{
if (ProcessInformationLength != sizeof(ULONG))
{
return STATUS_INFO_LENGTH_MISMATCH;
}
if (ProcessInformation == NULL)
{
return STATUS_ACCESS_VIOLATION;
}
AddQueryInfoBreak(ProcessHandle, *((ULONG *)ProcessInformation));
return STATUS_SUCCESS;
}
else if (ProcessHandleTracing == ProcessInformationClass)
{
bool enable = ProcessInformationLength != 0;
if (enable)
{
if (ProcessInformationLength != sizeof(ULONG) && ProcessInformationLength != (sizeof(ULONG) * 2))
{
return STATUS_INFO_LENGTH_MISMATCH;
}
if (ProcessInformation == NULL)
{
return STATUS_ACCESS_VIOLATION;
}
PPROCESS_HANDLE_TRACING_ENABLE_EX phtEx = (PPROCESS_HANDLE_TRACING_ENABLE_EX)ProcessInformation;
if (phtEx->Flags != 0)
{
return STATUS_INVALID_PARAMETER;
}
}
AddQueryInfoTracing(ProcessHandle, enable);
return STATUS_SUCCESS;
}
else if (ProcessDebugFlags == ProcessInformationClass)
{
if (ProcessInformationLength != sizeof(ULONG))
{
return STATUS_INFO_LENGTH_MISMATCH;
}
if (ProcessInformation == NULL)
{
return STATUS_ACCESS_VIOLATION;
}
ULONG Flags = *(ULONG*)ProcessInformation;
if ((Flags & ~PROCESS_DEBUG_INHERIT) != 0)
{
return STATUS_INVALID_PARAMETER;
}
ULONG uFlags = PROCESS_DEBUG_INHERIT;
if ((Flags & PROCESS_DEBUG_INHERIT) != 0)
{
uFlags &= ~PROCESS_NO_DEBUG_INHERIT;
AddQueryInfoFlags(ProcessHandle, uFlags);
}
else
{
uFlags |= PROCESS_NO_DEBUG_INHERIT;
AddQueryInfoFlags(ProcessHandle, uFlags);
}
return STATUS_SUCCESS;
} NtQueryInformationProcess:
if (NT_SUCCESS(status) && (0 != ProcessInformation) && (0 != ProcessInformationLength))
{
ULONG backupReturnLength = 0;
if ((ReturnLength != nullptr) &&
((ULONG_PTR)ReturnLength >= (ULONG_PTR)ProcessInformation) &&
((ULONG_PTR)ReturnLength <= (ULONG_PTR)ProcessInformation + ProcessInformationLength))
{
backupReturnLength = *ReturnLength;
}
if (ProcessDebugFlags == ProcessInformationClass)
{
ULONG uFlags = FindInfoFlags(ProcessHandle);
*((ULONG *)ProcessInformation) = ((uFlags & PROCESS_NO_DEBUG_INHERIT) != 0) ? 0 : PROCESS_DEBUG_INHERIT;
}
else if (ProcessDebugObjectHandle == ProcessInformationClass)
{
*((HANDLE *)ProcessInformation) = 0;
status = STATUS_PORT_NOT_SET;
}
else if (ProcessDebugPort == ProcessInformationClass)
{
*((HANDLE *)ProcessInformation) = 0;
}
else if (ProcessBasicInformation == ProcessInformationClass)
{
PEPROCESS pEprocess = (PEPROCESS)Search64Process("explorer.exe");
HANDLE hPID = PsGetProcessId(pEprocess);
((PPROCESS_BASIC_INFORMATION)ProcessInformation)->InheritedFromUniqueProcessId = (ULONG_PTR)hPID;
}
else if (ProcessBreakOnTermination == ProcessInformationClass)
{
*((ULONG *)ProcessInformation) = FindInfoBreak(ProcessHandle);
}
else if (ProcessHandleTracing == ProcessInformationClass)
{
if (FindInfoTracing(ProcessHandle))
{
status = STATUS_SUCCESS;
}
else
{
status = STATUS_INVALID_PARAMETER;
}
}
if (backupReturnLength != 0)
{
*ReturnLength = backupReturnLength;
}
}
else
{
if ((ProcessDebugObjectHandle == ProcessInformationClass) && (0 != ProcessInformationLength))
{
status = STATUS_PORT_NOT_SET;
}
}
搞定了,基本就这个套路,有兴趣的自己拿去研究吧。 如果做成插件,取消附加就被检测到了。
|
能力值:
( LV3,RANK:35 )
|
-
-
57 楼
yimingqpa
想知道楼主的 VMP 3.1(above)如何实现。
在内核下
else if (ProcessDebugObjectHandle == ProcessInformationClass)
{ ...
你看我发出来的 XAntiDebug 实现于源码,里面有 改进版的VMP3.1.2 检测方法。
|
能力值:
( LV10,RANK:163 )
|
-
-
58 楼
看过楼主的加强版2了,主要还是SE的硬件断点占坑和TP的很像。其它的早就已经撸过了……
楼主很巧妙的利用了ProcessDebugObjectHandle 第三个参数和第五个参数一样。(值不为长度检测) 第三个参数给空第四个参数给正常。(拿返回值检测)
|
能力值:
( LV5,RANK:60 )
|
-
-
59 楼
v大的poc代码过pg很稳定,希望能把ssdt也一起干掉
|
能力值:
( LV2,RANK:10 )
|
-
-
60 楼
支持一个。
|
能力值:
( LV5,RANK:60 )
|
-
-
61 楼
X64DBG最新版加载完驱动崩溃 ModLoad: 000007fe`db110000 000007fe`db1bb000 F:\x64dbg\release\x64\plugins\SharpOD x64.dp64 Critical error detected c0000374 (e18.27c4): Break instruction exception - code 80000003 (first chance) ntdll!RtlReportCriticalFailure+0x2f: 00000000`77d3f3af cc int 3
|
能力值:
( LV3,RANK:35 )
|
-
-
62 楼
我也不知道咋回事,x64dbg不加任何插件在WIN7上都崩溃。 给官方dump和录了视频也没回复。
|
能力值:
( LV5,RANK:60 )
|
-
-
63 楼
StriveXjun
我也不知道咋回事,x64dbg不加任何插件在WIN7上都崩溃。 给官方dump和录了视频也没回复。
但是不加载你的驱动不使用内核功能的话就不会崩溃,
|
能力值:
( LV2,RANK:10 )
|
-
-
64 楼
感谢楼主的分享。
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
谢谢
最后于 2018-3-23 14:00
被墨汁儿编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
66 楼
楼主 se2.4.0貌似过不去了。。只用了sod和sharpod2个插件 程序会自动终止
仔细研究了一番发现好像是程序本身还会检测调试器,和se壳没关系。。搞错了
最后于 2018-4-25 13:35
被皓月苍穹之星编辑
,原因:
|
能力值:
( LV3,RANK:35 )
|
-
-
67 楼
皓月苍穹之星
楼主 se2.4.0貌似过不去了。。只用了sod和sharpod2个插件 程序会自动终止仔细研究了一番发现好像是程序本身还会检测调试器,和se壳没关系。。搞错了
不要勾选 protect drx
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
压缩包损坏,请确认。。。
|
能力值:
( LV13,RANK:283 )
|
-
-
69 楼
支持功能强大的插件。啥时候出个windbg版^_^
|
能力值:
( LV9,RANK:140 )
|
-
-
70 楼
赞一下,x86dbg顺利的过了
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
解压密码多少
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
Nethgul
解压密码多少
抱歉大牛 是我自己眼瞎- - 表示已经看到密码!
|
能力值:
( LV4,RANK:50 )
|
-
-
73 楼
太强大的插件,万分感谢楼主分享。
|
能力值:
( LV4,RANK:50 )
|
-
-
74 楼
压缩包损坏
|
能力值:
( LV4,RANK:50 )
|
-
-
75 楼
非常棒,希望一直更新下去
|
|
|