wengzuhong
驱动小牛
驱动小牛
  • 注册日期2004-07-16
  • 最后登录2014-10-22
  • 粉丝3
  • 关注1
  • 积分9分
  • 威望262点
  • 贡献值0点
  • 好评度219点
  • 原创分0分
  • 专家分0分
60楼#
发布于:2007-07-24 16:44
引用第59楼lsxredrain于2007-07-24 16:39发表的  :
几个字节要泄密谁也挡不住的啊
不过我可以控制不允许非法进程从加密文件中获取明文信息


lsxredrain 兄,你这想法欠妥啊,一个需要机密文档拆开成N个“几个字节的文档”这个。。。。。。。
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
61楼#
发布于:2007-07-24 17:52
机密文档??
一般来说正常使用的文件不会是几个字节的,
而且几个字节文件的往往是病毒或者系统自己产生的文件
如果根据进程来加密,这些文件是不能去加密解密的.不然会导致系统极为不稳定
我们只要把正常使用的文件加密好,
并且防止通过文件分割软件把正常加密的文件解密成很少的文件就而泄密就行
如果凭借记忆或者纸笔能够抄出去,我们是没有办法防止的
sunway_yin
驱动牛犊
驱动牛犊
  • 注册日期2006-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分312分
  • 威望42点
  • 贡献值0点
  • 好评度31点
  • 原创分0分
  • 专家分0分
62楼#
发布于:2007-07-25 10:03
貌似这种加密很难作出稳定的产品的说
oyclkelly
驱动牛犊
驱动牛犊
  • 注册日期2006-06-07
  • 最后登录2009-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
63楼#
发布于:2007-07-26 16:38
lsxredrain 兄:
  你在文件尾部存放加密标示,在你给出的那个版本中怎么没有找到呢?可否赐教
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
64楼#
发布于:2007-07-26 16:57
我给出的那个版本中只对write和read做了处理,
加密标识没有放到给出的例子里面去
我的标识是放在文件头

楼顶的源代码例子只要解决好三个问题基本上就可以用了

1.与应用层建立消息机制
2.解决加密标识问题
3.解决fileobject指针存储和查询问题

这三个问题有兴趣的朋友可以自己摸索解决
如果想做得更好一些,可以试图解决cache问题,fastio问题
oyclkelly
驱动牛犊
驱动牛犊
  • 注册日期2006-06-07
  • 最后登录2009-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
65楼#
发布于:2007-07-26 17:43
lsxredrain 兄:
你不是说的标记用压缩法放在文件尾部么,又改为放在文件头了?
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
66楼#
发布于:2007-07-27 08:48
放在文件头处理起来更方便,
只要在Read和Write两个历程中处理标记问题就Ok了,
几乎不影响原来文件系统的操作流程.
至于Cache问题,只要根据进程在close中清Cache,被预读过的文件,
只要在explorer复制一下就可以正常读写了.
不过这种做法只能做低端用户,变长加密在被压缩的文件头部分是可以使用的.
oyclkelly
驱动牛犊
驱动牛犊
  • 注册日期2006-06-07
  • 最后登录2009-07-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
67楼#
发布于:2007-07-27 11:29
lsxredrain 兄:
   感谢你不厌其烦的回复,thanx
may
may
驱动牛犊
驱动牛犊
  • 注册日期2006-07-19
  • 最后登录2008-10-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望22点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
68楼#
发布于:2007-07-29 13:54
至于Cache问题,只要根据进程在close中清Cache,被预读过的文件,
只要在explorer复制一下就可以正常读写了.????
你的语句无法理解。
wuhai2000
驱动牛犊
驱动牛犊
  • 注册日期2007-08-03
  • 最后登录2008-08-09
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
69楼#
发布于:2007-08-04 20:33
看看!
eleqi
驱动小牛
驱动小牛
  • 注册日期2005-12-20
  • 最后登录2014-01-03
  • 粉丝4
  • 关注2
  • 积分172分
  • 威望1475点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
70楼#
发布于:2007-08-10 18:00
好东西,收下,谢谢·!
starsrain
驱动牛犊
驱动牛犊
  • 注册日期2005-02-20
  • 最后登录2008-08-08
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望26点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
71楼#
发布于:2007-08-20 16:19
不错。谢谢
888atao
驱动牛犊
驱动牛犊
  • 注册日期2005-12-10
  • 最后登录2021-07-23
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望30点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
  • 社区居民
72楼#
发布于:2007-08-21 16:59
TTTTTTTTTTTTTTTTKS
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
73楼#
发布于:2007-10-28 20:07
蹦回来又看了一下~Cache还真是....
没有战争就没有进步 X3工作组 为您提供最好的军火
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
74楼#
发布于:2007-12-18 12:51
        if(!NT_SUCCESS(SpyStartLoggingDevice(WebVolume)))
        {
            KdPrint(("SFilter!加载Web磁盘失败!\n"));
        }
        else
        {
            KdPrint(("SFilter!加载Web磁盘成功!\n"));
        }

        if(!NT_SUCCESS(SpyStartLoggingDevice(NetVolume)))
        {
            KdPrint(("SFilter!加载网络磁盘失败!\n"));
        }
        else
        {
            KdPrint(("SFilter!加载网络磁盘成功!\n"));
        }
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
75楼#
发布于:2007-12-18 15:57

inline hook fsd做透明,很xxxxx
没有战争就没有进步 X3工作组 为您提供最好的军火
lsxredrain
驱动中牛
驱动中牛
  • 注册日期2006-08-31
  • 最后登录2008-10-18
  • 粉丝1
  • 关注0
  • 积分540分
  • 威望421点
  • 贡献值1点
  • 好评度420点
  • 原创分4分
  • 专家分0分
76楼#
发布于:2007-12-18 17:54
最近,一个叫“FSD INLINE HOOK”的名词常常被提到,而且多数时候是和病毒、流氓软件一起被提到。很多朋友搞不清楚,究竟什么是“FSD INLINE HOOK”呢?笔者就来详细介绍一下这个东东。

  一、先讲讲车匪路霸

  在讲FSD INLINE HOOK之前,先来看看“车匪路霸”。所谓“车匪路霸”,就是在某条路上设一个点,对每个经过的车辆都“打劫一番”,“此路是我开,要过就留下买路钱”。甚至有时候他们打劫了你,还不放人过去,而让你原路折回。

  当然,还有一些车匪路霸更恐怖——他们直接将路截断,然后把路的开口处挖出一条经过自己设置的收费站的小道,然后在收费站的出口处再回到你应该走的大路上。你想到达目的地,必须先去绕小道去缴费,否则你无法到达目的地。

  二、FSD INLINE HOOK是最狠的车匪路霸

  HOOK就是操作系统中的“车匪路霸”,它最常用的手段就是进行数据过滤,跟要你“留下买路钱”一样。而FSD INLINE HOOK更狠,它使用更加特殊的手段,让程序以非正常流程运行,从而达到数据过滤的目的,就像上面描述的后面一种车匪路霸。

  那么,到底FSD INLINE HOOK狠在哪里呢?

  其一,它的隐蔽性非常高,非专业人士很难发现它的存在。也就是说,这是一个非常具有“反侦破能力”的“车匪路霸”。本来程序员是可以用一种叫“FSD Filter Driver”(文件系统过滤驱动)的专用接口来代替它的,但正是因为这一接口容易被发现、饶过甚至是被摘除掉,所以他们才使用FSD INLINE HOOK的。

  小提示:

  FSD Filter Driver是正常软件常用的技术,例如杀毒软件、文件加密、数据备份软件等。由于这些软件也会对系统进行一些底层操作,所以难免会用到这样的技术。这就跟公路上有“车匪路霸”,也有正规的“收费站”一样,同样是“收买路钱”,但一个是正当、有序的,一个却是乱来的。

  其二,它的稳定性差、危险性高。FSD INLINE HOOK对操作系统硬件平台、系统文件具有高度的依赖性,使得其异常危险。如果系统稍有变化可能就导致不兼容,使程序无法运行甚至直接导致系统崩溃(蓝屏)。在开发人员看来,这叫“稍错一个bit都会导致系统bsod(Blue Screen Of Death)。”

  正是由于FSD INLINE HOOK狠,流氓软件开发者就很喜欢它。我们总结这两点可以看出,前一点是针对那些反流氓软件的——隐蔽性强就意味着查杀起来相当困难;而后一点则是针对用户电脑的——如果你的系统发生一些变化,系统就会出现问题,甚至是蓝屏死机,这对用户的危害极大。

  三、车匪路霸和它的同伙

  前面我们提了FSD INLINE HOOK,它具有隐蔽、手段狠毒、不稳定等特点,属于“黑社会性质”的车匪路霸。实际上它还有一个“同伙”,叫“函数地址替换”,不过这个显然比较温柔些,更安全,不容易引起BSOD。这个“函数地址替换”是流氓软件经常用到的方法,很多大家很熟悉的流氓软件都用到了这一技术。

  对比这两种技术,两者都可以改变用户的初衷,都不是“好鸟”,但他们还是有区别的:“函数地址替换”的隐蔽性比较差,它是一个函数组,任何人都可以用正常手段访问它,所以很容易就被检测工具检测出来了;而FSD INLINE HOOK则纯粹是一个非常危险的东西了,而且非常隐蔽。目前应用了FSD INLINE HOOK技术的流氓软件非常少,而用到这一技术的病毒倒是挺多。

  小提示:

  由于微软并没有对外公布FSD INLINE HOOK技术的任何接口文档说明,并明确告知开发者使用正规编程接口,因此,FSD INLINE HOOK很少被用在商业软件中,国内尚未有任何一款商业软件使用此技术。使用这种技术的多数都是病毒、木马、Rootkit程序等恶意软件,如MM@Rootkit.Drop.gyI-Worm@MM.Trojan.Downloader.zp等。

  试想,如果流氓软件都采用这种技术的话,那么网络将会怎样?
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
77楼#
发布于:2007-12-19 16:00
把透明搞到inline hook的程度也没有办法~~

现在通过iofcalldriver hook和inline hook ps/ioGetXXX,替换currentprocess和currentthread的盗取者2.0已经出现了~~~

盗取者 1.0 ,通过对winword.exe进程注入stXXXX(随机数).dll来盗取doc文件,并mail到指定邮箱
没有战争就没有进步 X3工作组 为您提供最好的军火
mikechen_1000
驱动牛犊
驱动牛犊
  • 注册日期2005-01-15
  • 最后登录2009-02-13
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望29点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
78楼#
发布于:2008-02-01 15:31
lsxredrain 大大您好:
假设我在 C:\ 有一个文件檔 : 12345678.txt , 其内文资料亦为 “12345678”

有两个问题想请教:
1. 在下载您的filespy.c 之 sfRead() 中, 有一行如下:
Irp->UserBuffer = MmGetMdlVirtualAddress(Irp->MdlAddress);
为何我用 KdPrint (("SfRead : Irp->UserBuffer ->%s \n",(char *)Irp->UserBuffer)); 无法在dbgview 看见内文数据, 还是我需要在其它地方再加入 KdPrint 才可以正确看到内文数据 “12345678”
(*注 DebugFlags 己设定正确, 可以在 dbgview 中看见其它的讯息 , 如 “SFilter!SfCreate : c:\12345678.txt” … )

2.为何我已使用filespyinstall.cmd 加载 filespy , 并在命令列输入 /a c: (加入 c:(driver) 作监控), 并输入 /g (执行) , 然后我点击 c:\12345678.txt , 进入Notepad 并更改内文(改为 "123456”)最后存档, 但是当我离开 Notepad 后即退出 filespy 的监控 (> exit) , 且离开 filespy (filespyuninstall.cmd) ,但事后再打开 c: \12345678.txt 却发现原先存盘的内文并无任何改变(原明文 "123456”) , 可是在存档时不是应该被加密过了,且找不到任何加密的檔头或檔尾,好像并没有加密的动作发生,不知那里的动作有误.

以上是我在测试 filespy修改版(增加了tooflat的write和read)修订版) 源码所发生的问题,烦请 lsxredrain 大大或其它先进不吝给予小弟一些指教, 谢谢!!
fzsam
驱动牛犊
驱动牛犊
  • 注册日期2008-04-27
  • 最后登录2008-04-28
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
79楼#
发布于:2008-04-28 00:14
看一下,谢谢!!
游客

返回顶部