阅读:1586回复:8
关于windows对可执行文件校验的问题
今晚用UltraEdit - 32打开一个可执行文件的打算了解一下PE格式,当中随便修改了上面的一些值,点保存之后没想到系统不久就弹出一个对话框提示这个可执行文件被修改,当你再次打开此可执行文件的时候发现那个值又被系统修改回去了。试了好几个exe文件,发现并不是所有的都能被系统修改回来。好像只有修改windows安装目录下的可执行文件系统能够检测并且修改回来。难道是windows规定不能修改此目录下的可执行文件并且备份了一份?细想又不太对,现在一般的病毒或者流氓软件都能够修改系统可执行文件,为什么我用UltraEdit就不能够呢?有谁比较了解windows对可执行文件的校验机制的能否说说其中的原理?(PE中的CheckSum不是据说只有在装载驱动的时候系统才check的吗?为什么我修改一般的exe文件它也能检测出来呢?)
|
|
驱动小牛
![]() |
沙发#
发布于:2007-01-26 08:58
sfc是WINDOWS的文件保护服务,EXE被修改不一定是检查的CHECKSUM,WINDOWS的文件的确是备份了一份在DLLCACHE中.
|
板凳#
发布于:2007-01-26 10:21
楼上正解
另外,病毒改的时候一般会先置 SFCDisable = 1 |
|
地板#
发布于:2007-01-26 10:41
原来是这样,谢谢楼上两位
|
|
地下室#
发布于:2007-01-26 12:04
关闭SFC会导致系统不稳定的。同时替换dllcache和system32再配合findwindows,postmessage的猥亵办法就可以了
![]() |
|
|
5楼#
发布于:2007-01-26 12:34
MS的系统文件都用SHA1做了HASH,即使不用SFC也可以自己写程序来验证.
|
|
|
6楼#
发布于:2007-01-26 12:37
...,病毒或者流氓软件都是这样做的哦?一般的病毒都只在用户态下,他们能有这么大的权限吗?
|
|
驱动小牛
![]() |
7楼#
发布于:2007-01-26 14:40
注入WINLOGON,即可关闭SFC,很稳定.
wowocock老大,你说的自己写文件验证是怎么回事? |
8楼#
发布于:2007-01-26 15:23
引用第7楼wangjianfeng于2007-01-26 14:40发表的“”: 噢,亲爱的,注入winlogon是一件多么恶心的事呀 |
|
|