WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
阅读:2755回复:0

[恢复]如何检测及清除文件系统过滤驱动

楼主#
更多 发布于:2007-01-02 21:53
  您的查询字词都已标明如下:检测及清除文件系统  (点击查询词,可以跳到它在文中首次出现的位置)
如果打开速度慢,您可以尝试打开无图片的快照; 如果您想保存该页面,可以添加到搜藏
(百度和网页http://bbs.driverdevelop.com/htm_data/16/0609/118100.html的作者无关,不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)  

--------------------------------------------------------------------------------
  
 
控制面板 | 短消息 | 搜索 | 会员 | 帮助 | 社区 | 首页 | 无图版  
 

    


 驱动程序开发网技术社区 -> Kernel Mode discussion and Soft Driver -> 如何检测及清除文件系统过滤驱动 转到动态网页  
 

    
--> 本页主题: 如何检测及清除文件系统过滤驱动 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题  
WQXNETQIQI


 


 
级别: 驱动牛犊
精华: 1
发帖: 6
威望: 9 点
积分: 80 分
贡献值: 0 点
注册时间:2006-06-12
        

如何检测及清除文件系统过滤驱动

例如象3721或者是中搜那种不对sc stop等命令响应的driver,如何强行将其清除呢?


[ 此贴被WQXNETQIQI在2006-09-23 16:21重新编辑 ]
 
驱网网上商城-开发板,开发资料光盘
 
驱动开发者 呵呵  
[楼 主] Posted:2006-09-23 01:25|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



这个比较困难~IRP DispatchRoutine恢复~~包括inline,非inline的~~

还有一种是filter摘除,谁都知道~~嘿嘿~~
 
驱网网上商城-开发板,开发资料光盘
 
[1 楼] Posted:2006-09-23 09:19|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



摘filter比较容易:
//使用方法:
/*
   ClearFilters(L"\\Driver\\Tcpip");
   ClearFilters(L"\\FileSystem\\Ntfs");
   ClearFilters(L"\\FileSystem\\Fastfat");
*/
void ClearFilters(WCHAR * Name)
{
UNICODE_STRING TName;
PDRIVER_OBJECT TDrvObj;
PDEVICE_OBJECT CurrentDevice;
RtlInitUnicodeString ( &TName, Name);

ObReferenceObjectByName( &TName,
              OBJ_CASE_INSENSITIVE,
              NULL,
              0,
              *IoDriverObjectType,
              KernelMode,                            
              NULL,
              &TDrvObj);

if(!TDrvObj) return ;
CurrentDevice = TDrvObj->DeviceObject;

while(CurrentDevice != NULL )
{
CurrentDevice->AttachedDevice=0;
CurrentDevice = CurrentDevice->NextDevice;
}
ObDereferenceObject(TDrvObj);
return ;
}
 
驱网网上商城-开发板,开发资料光盘
 
[2 楼] Posted:2006-09-23 09:21|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



非inline的恢复,稍微写个方法:
RtlInitUnicodeString(&NtfsDeviceName, L"\\FileSystem\\Ntfs");
status = ObReferenceObjectByName(
&NtfsDeviceName,
OBJ_CASE_INSENSITIVE,
NULL,
0,
*IoDriverObjectType,
KernelMode,
NULL,
(PVOID*)&NtfsDriverObject);
if(NtfsDriverObject)
{
pntfs = GetModuleHandle("ntfs.sys");
ntfsCopy = LoadPeFile(L"\\Device\\HarddiskVolume1\\Windows\\System32\\drivers\\ntfs.sys",NonPagedPool, 0);
pRealntfs = (PVOID)((char *)EP_ADDR(ntfsCopy));
ProcessRelocs(ntfsCopy, pntfs);
__asm cli
NtfsDriverObject->MajorFunction[IRP_XXX]=(PDRIVER_DISPATCH)GetFunctionAddrByID((BYTE *)pRealntfs, (BYTE)IRP_XXX);
__asm sti
ExFreePool(ntfsCopy);
ObDereferenceObject(NtfsDriverObject);
}
 
高速无限下载文件,请申请vip会员
 
[3 楼] Posted:2006-09-23 09:26|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



#define SearchDepth 0x100
DWORD GetFunctionAddrByID(BYTE *pDriverEntry, BYTE MajorFunction)
{
int i=0;
DWORD function=0;
BYTE ZZ = MajorFunction*4+0x38;

if(ZZ < 0x80)
{
for (i=0;i<SearchDepth;i++)
{
if( (*(pDriverEntry+i)==0xc7)&&
( *(pDriverEntry+i+1)==0x46 || *(pDriverEntry+i+1)==0x43 ) &&
( *(pDriverEntry+i+2)==ZZ)
)
{
function=*(DWORD*)(pDriverEntry+i+3);
break;
}
}
}
else
{
for (i=0;i<SearchDepth;i++)
{
if( (*(pDriverEntry+i)==0xc7)&&
( *(pDriverEntry+i+1)==0x86 || *(pDriverEntry+i+1)==0x83 ) &&
( *(pDriverEntry+i+2)==ZZ)
)
{
function=*(DWORD*)(pDriverEntry+i+3);
break;
}
}
}

return function;
}
 
高速无限下载文件,请申请vip会员
 
[4 楼] Posted:2006-09-23 09:26|  
 
 
doskey


 


 
级别: 驱动小牛
精华: 2
发帖: 124
威望: 119 点
积分: 1193 分
贡献值: 0 点
注册时间:2004-12-08
        



 V大,有两个疑问。
1、EP_ADDR这个如何取得正确的DriverEntry?xpsp2的ntfs.sys的入口是GsDriverEntry,DriverEntry是紧跟在GsDriverEntry后的,那么EP_ADDR是返回的GsDriverEntry地址嘛?普通的带有GsDriverEntry的驱动,都在它的结尾处jmp到真正的DriverEntry。这在EP_ADDR中是分开处理的吗?还是有更好的方法?
2、刚刚看了GetFunctionAddrByID,发现它有很大局限性,好像只能在部分ms编译的驱动中才能试用。因为在0xC7后面的0x46、0x43、0x86、0x83分别是esi和ebx,可是有的驱动中的是用的其它寄存器。

望请指教
 
高速无限下载文件,请申请vip会员
 
[5 楼] Posted:2006-09-23 10:54|  
 
 
WQXNETQIQI


 


 
级别: 驱动牛犊
精华: 1
发帖: 6
威望: 9 点
积分: 80 分
贡献值: 0 点
注册时间:2006-06-12
        



谢谢VXK,检测如何做呢?就好象syser里的object viewer里可以看file system的filters那样
 
高速无限下载文件,请申请vip会员
 
驱动开发者 呵呵  
[6 楼] Posted:2006-09-23 15:25|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



仔细看Clear部分~~

如你所说:DriverEntry是紧跟在GsDriverEntry后面,用搜索过程搞定~~反正最后是搜索的~~
就是针对MS的驱动才用那个酒肉和尚的搜索方法,否则需要反汇编~~~
 
驱网网上商城-开发板,开发资料光盘
 
[7 楼] Posted:2006-09-24 08:33|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



其实如果你是杀毒软件或者反流氓软件大可以根据操作系统BuildNum可以硬编码地址偏移~~

因为他们可以不断更新~~呵呵~~
 
驱网网上商城-开发板,开发资料光盘
 
[8 楼] Posted:2006-09-24 08:36|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



对于检测可以看看sinister的http://www.whitecell.org/list.php?id=41
 
高速无限下载文件,请申请vip会员
 
[9 楼] Posted:2006-09-24 08:38|  
 
 
xyzreg


 


 
级别: 驱动牛犊
精华: 0
发帖: 95
威望: 53 点
积分: 532 分
贡献值: 0 点
注册时间:2005-06-20
        



摘除Filter Drvier我博客里写过。
 
驱网网上商城-开发板,开发资料光盘
 
[10 楼] Posted:2006-09-24 12:37|  
 
 
xyzreg


 


 
级别: 驱动牛犊
精华: 0
发帖: 95
威望: 53 点
积分: 532 分
贡献值: 0 点
注册时间:2005-06-20
        



DispatchRoutine恢复,得搜索特征码
 
高速无限下载文件,请申请vip会员
 
[11 楼] Posted:2006-09-24 12:39|  
 
 
WQXNETQIQI


 


 
级别: 驱动牛犊
精华: 1
发帖: 6
威望: 9 点
积分: 80 分
贡献值: 0 点
注册时间:2006-06-12
        



楼上说的是这篇文章么?

唉,软件防火墙好像没一个令我满意的,都比较弱,考虑不全。国内的防火墙更是令人心寒~ 无论是DLL注入还是不引入DLL的纯代码注入,还是TDI Cilent,都能把国内的防火墙搞定。NDIS hook 更不要说了..

来点好玩的,其实我们只要写个驱动,从设备栈里把防火墙的TDI过滤驱动给摘除掉,这样就能对付一般的防火墙了。当然,国外强一点的防火墙,比如ZoneAlarm Pro 6.5就得再结合其他方法了,嘿嘿。

摘除过滤驱动的代码片段:


RtlInitUnicodeString ( &TcpipName, L"\\Driver\\Tcpip" );

ObReferenceObjectByName( &TcpipName,
              OBJ_CASE_INSENSITIVE,
              NULL,
              0,
              *IoDriverObjectType,
              KernelMode,                            
              NULL,
              &TcpipDrvObj);

CurrentDevice = TcpipDrvObj->DeviceObject;

while(CurrentDevice != NULL )
{
CurrentDevice->AttachedDevice=0;
CurrentDevice = CurrentDevice->NextDevice;
}



这段代码就能足以使国内人人皆知的天网防火墙装了和没装一样... 呵呵

PS:这里的突破指的是软件防火墙的内对外层面。
 
驱网网上商城-开发板,开发资料光盘
 
驱动开发者 呵呵  
[12 楼] Posted:2006-09-24 13:35|  
 
 
WQXNETQIQI


 


 
级别: 驱动牛犊
精华: 1
发帖: 6
威望: 9 点
积分: 80 分
贡献值: 0 点
注册时间:2006-06-12
        



10楼的名字很眼熟。。。是否玩6502的?
 
高速无限下载文件,请申请vip会员
 
驱动开发者 呵呵  
[13 楼] Posted:2006-09-24 13:40|  
 
 
xyzreg


 


 
级别: 驱动牛犊
精华: 0
发帖: 95
威望: 53 点
积分: 532 分
贡献值: 0 点
注册时间:2005-06-20
        

 


QUOTE:
引用第13楼WQXNETQIQI于2006-09-24 13:40发表的“”:
10楼的名字很眼熟。。。是否玩6502的?

what is 6502?
 
驱网网上商城-开发板,开发资料光盘
 
[14 楼] Posted:2006-09-24 23:51|  
 
 
WQXNETQIQI


 


 
级别: 驱动牛犊
精华: 1
发帖: 6
威望: 9 点
积分: 80 分
贡献值: 0 点
注册时间:2006-06-12
        

 


QUOTE:
引用第14楼xyzreg于2006-09-24 23:51发表的“”:

what is 6502?

没有听说过就算了。。。可能认错人。。。
 
高速无限下载文件,请申请vip会员
 
驱动开发者 呵呵  
[15 楼] Posted:2006-09-25 01:07|  
 
 
wowocock


 

 
 
级别: 驱动老牛
精华: 1
发帖: 4009
威望: 420 点
积分: 4127 分
贡献值: 1 点
注册时间:2002-04-08
        



删除过滤驱动的方法不好,因为你把所有的过滤全去掉了,其实只要去掉我们不要的驱动即可,方法和删除双向连表中项目一样.
 
高速无限下载文件,请申请vip会员
 
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠  
[16 楼] Posted:2006-09-25 08:40|  
 
 
guaiguaiguan


 


 
级别: 驱动小牛
精华: 4
发帖: 227
威望: 234 点
积分: 2340 分
贡献值: 0 点
注册时间:2003-10-11
        



killvxk用的方法在酒肉和尚的blog里看过
http://blog.csdn.net/sunwang123456/archive/2005/10.aspx
 
驱网网上商城-开发板,开发资料光盘
 
[17 楼] Posted:2006-09-25 08:53|  
 
 
killvxk


 


 
级别: 驱动中牛
精华: 0
发帖: 432
威望: 406 点
积分: 4031 分
贡献值: 0 点
注册时间:2005-10-03
        



我都说过了是酒肉的方法~~
反汇编的方法虽然也不错,不过麻烦~(所有驱动通吃~)
 
驱网网上商城-开发板,开发资料光盘
 
[18 楼] Posted:2006-09-25 15:34|  
 
 

  快速跳至 >> 初学者入门  |- c/c++入门(含vc使用)  |- InnoSetup 中文讨论区  |- Keil C 使用  |- 电子技术基础  |- ABC初学者  |- 驱动及应用程序安装程序制作 >> 安全技术  |- 反流氓、反木马和rootkit  |- 网络安全技术  |- 病毒技术分析 >> 阅读与交流  |- windows 源码解读  |- 书评 >> 各取所需  |- 求职专区  |- 合作开发  |- 供需信息 >> 驱动开发  |- 每周话题  |- x64移植技术  |- WDF 学习与研究  |- Kernel Mode discussion and Soft Driver  |- USB驱动开发  |- 非USB硬件驱动开发  |- 图形设备驱动版(打印、扫描、显示...驱动)  |- Mac 驱动开发  |- NDIS网络接口开发  |- LINUX&UNIX核心开发  |- 开发工具使用  |- (IEEE1394)FireWire  |- 文件系统(过滤)驱动程序开发  |- 软件工程在驱动开发中的应用  |- 总结、原创区 >> 硬件开发  |- DSP & PLD &FPGA  |- 硬件设计  |- FirmWare  |- 集成电路设计(IC) >> SNMP网管  |- SNMP网管软件开发 >> 嵌入式系统及掌上设备  |- 嵌入式系统开发  |- Wince 程序开发  |- VxWorks >> 程序人生  |- 疯狂灌水  |- 新闻,要闻,花边  |- 情感小屋  |- I love English  |- 程序人生  |- 志宁自语  |- MP3 & FLASH 共享  |- 艺术&帖图区  |- 漂流一族 >> 其它事务  |- 用户留言  |- 软件使用与交流 >> 公司黑白名单  |- 白名单  |- 黑名单 >> 合作网站技术支持论坛  |- 驱动开发网在线商城  |- syser debugger  |- S1系列PCI开发板、FPGA开发板支持  |- PLX PCI 开发板支持  |- DriverStudio 技术支持  

 驱动程序开发网技术社区 -> Kernel Mode discussion and Soft Driver
    

快速发帖 顶端
 
内容:
HTML 代码不可用

使用签名
Wind Code自动转换

[查看帖子长度]  标题:  
表情:        
      

     按 Ctrl+Enter 直接提交    




Powered by PHPWind v4.3.2 Code ? 2003-05 PHPWind
This is html template view this page faster

You can contact us

最新喜欢:

znsoftznsoft
驱动开发者 呵呵
游客

返回顶部