首页
社区
课程
招聘
关于createfile("\\.\******")检测的一些疑问
发表于: 2005-3-20 11:49 5332

关于createfile("\\.\******")检测的一些疑问

2005-3-20 11:49
5332
createfile("\\.\******")用于检测VxD驱动程序,在试验过程中发现,用createfile("\\.\filemon")来检测filemon,用createfile("\\.\regmon")来检测regmon都可以成功,但用createfile("\\.\trwdebug")来检测trw2000时,明明trw2000在运行,并且VxD trwdebug也在系统中可见,但就是检测不到,不知什么原因? trw2000为1.22汉化版。另外,参数中\\.\是何意?是在当前环境块中查找吗?用和不用“\\.\”有什么区别?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 47147
活跃值: (20405)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
有关\\.请看置顶的常见问题,blowfish以前回答过。
trw2000看看小楼以前的文章:
============================
    论“createfile("\\.\trw2000")不能检测trw2000之存在”

    自从用API函数createfile("\\.\Sice")能有效检测softice存在与否的方法被揭示以来,此方法被推而广之,广泛运用于各种anti技术中。比如大家很熟悉的
createfile("\\.\trw2000")    //检测trw2000
createfile("\\.\trwdebug")   //检测trw2000
createfile("\\.\filemon")    //检测filemon
createfile("\\.\regmon")     //检测regmon
等等。
    特别是createfile("\\.\trw2000")更是被多个国产软件所运用,来对付trw2000。但是,用这种方法永远不可能检测到trw2000,各位只是瞎忙一场。

    自从见到createfile("\\.\Sice")检测softice后,我当然也举一反三,大肆试验,用此函数检测其它程序,但是检测filemon、regmon都成功,唯独不能检测到trw2000存在;我也询问其它人,都与我有同感;难道这个方法不能使用,此疑惑一直存于我心。
    直到最近,我从一些vxd教程中知道createfile("\\.\Sice")检测的原理,并作了一些试验后,才知道我的猜想是正确的。

    在win9x下,win32程序与vxd程序彼此沟通分2部分:1部分是应用程序到vxd通信;另一层是vxd至应用程序通信。
    win32程序对vxd程序通信时,是通过调用DeviceIoControl函数进入vxd,此函数的一个参数就是由createfile获得的设备句柄。这样,同样生成或打开文件的调用也能够打开一个到vxd的通道。要用createfile打开一个vxd,而不是一个通常的文件,在文件名的地方必须使用特殊形式
createfile("vxdname")
  (摘自《windows vxd与设备驱动程序权威指南》第二版)

    如此,很显然了,createfile("\\.\Sice")能检测是因为sice驻留后内存中有个vxd叫sice形成(当然,实际硬盘上不存在一个叫sice.vxd的程序)。
   
    各位可以从以下网址下载一个软件vxdview,它用来显示内存中驻留的vxd
http://www.tssc.de/download/prods/vxdview.exe
    其结果显示trw2000运行前、后系统中vxd没有改变;
    而用filemon测试,结果显示增加一个vxd,名字为filemon。

    结论1、trw2000运行后(但没有激活中断情况下),没有生成vxd,所以createfile("\\.\trw2000")不能成功。

    但是用ctrl-N激活trw2000后,下命令
vxd   //显示所有vxd
可以见到trw2000名字,说明只有在trw2000激活,接手系统后才会生成vxd,来实行跟踪、显示等功能;可是此时,createfile("\\.\trw2000")已经无能为力,因为一切在trw掌握中;等到用F5结束trw2K的激活,vxd也就消失了。

    结论2、只有在trw2000激活后才生成vxd。

    所以。最后结论是:“createfile("\\.\trw2000")不能检测trw2000之存在”。

       小楼      
       于2002.05.28
2005-3-20 12:06
0
雪    币: 204
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
小楼的帖子我昨天刚搜到,但和我说的问题不太一样:trw2000v1.23运行后,确实没有生成trwdebug和trw2000,只是在其被激活弹出窗口时才临时生成trw2000,所以,常规的createfile方法检测不到;但trw2000v1.22不一样,运行后即在系统中生成VxD trwdebug,但是,用createfile("\\.\trwdebug") 却检测不到。
2005-3-20 13:17
0
游客
登录 | 注册 方可回帖
返回
//