号外号外:据说Hook MmFlushImageSection函数可以过冰刃的文件强删!
本帖最后由 tangptr@126.com 于 2015-8-31 16:14 编辑这只是据说,我测试的时候蓝屏了。。。
在删除文件的过程中要调用MmFlushImageSection判定文件在运行时是否已经释放,若没有释放,返回FALSE,若已释放,返回TRUE。如果判断文件没有被释放则删不掉。因此很多粉碎机工具会Hook这个函数,使之返回TRUE。
贴代码喽~(挂钩过程不贴了,我之前贴了太多的挂钩引擎的代码了)
BOOLEAN NTAPIfake_MmFlushImageSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer,IN MMFLUSH_TYPE FlushType)
{
PFILE_OBJECT pfile;
WCHAR *pwsz=NULL;
if (FlushType == MmFlushForDelete)
{
if(SectionObjectPointer->DataSectionObject!=NULL)
{
pfile=(PFILE_OBJECT)( *(ULONG*)((ULONG)SectionObjectPointer->DataSectionObject + 0x24) );
__try
{
pwsz=wcsrchr(pfile->FileName.Buffer,L'\\');
if (pwsz!=NULL)
{
pwsz++;
}
if (!_wcsnicmp(pwsz,L"test.txt",wcslen(L"test.txt")*2))
{
return FALSE;
}
}
__except(1)
{
return FALSE;
}
}
}
returnMmFlushImageSection(SectionObjectPointer,FlushType);
}
加载驱动后,一打开冰刃就蓝了。。。。。。尼玛! 哇,这都被你发现了,好厉害。
我发现你好喜欢拿我以前发在黑防的代码来改。。。 加载驱动后,一打开冰刃就蓝了。。。。。。尼玛!
这不就已经让冰刃删除不了这文件了么......{:soso_e120:}
页:
[1]