08 Mar 2006

记Trojan.PWS.QQPass,winmide32.dll,wins.lib的清除

机器中标,竟然有提示您的QQ已在别处登陆,亏得俺是QQ会员,不一会儿手机收到藤讯短信
提示QQ密码被修改,随发个“16”回去,取回密码,在打开QQ准备登陆时,
诺顿报警如下:
扫描类型: 实时防护 扫描
事件: 已发现病毒!
病毒名称: Trojan.PWS.QQPass
文件: C:\WINDOWS\system32\winmide32.dll
位置:C:\WINDOWS\system32
计算机:WUMEIBO
用户:武眉博
采用的操作:清除 失败 : 删除 失败 : 拒绝访问
发现的日期: 2006年3月8日  13:31:48


扫描类型: 实时防护 扫描
事件: 已发现病毒!
病毒名称: Trojan.PWS.QQPass
文件: C:\WINDOWS\system32\wins\wins.lib
位置:C:\WINDOWS\system32\wins
计算机:WUMEIBO
用户:武眉博
采用的操作:清除 失败 : 删除 失败 : 拒绝访问
发现的日期: 2006年3月8日  13:59:57
Google , Baidu 找到一堆“Trojan.PWS.QQPass”的信息,然而都不是我机器上这2个文件。
进入32目录试图,手工删除,提示 磁盘保护云云... 删除不掉。
在注册表内搜索“winmide32.dll”有两个键值,删除,再搜,又回来了,再删,再搜,又回来
技穷,只好重启,F8,命令行安全模式。
进入32目录
attrib -s winmide32.dll
del winmide32.dll
进入wins目录
attrib -s wins.lib
del wins.lib
重新启动,Win+Run+Regedit 搜索winmide32.dll,删除两个键值。
重新启动,32目录,wins目录均无原来那2文件,注册表内也F3不到它们了。


运行QQ,登陆窗口输入密码的时候诺顿再不报警。登陆成功。


不知道是否彻底清除,观察几天。先写这些,如有异样,随时更新。

05 Jan 2006

SourceCodeViewer 0.1 and Ms treeview 's problem
SourceCodeViewer 0.1

一直想给自己网站放一个源码浏览器,发现Scott Watermasysk做的Cojax很酷,但却找不到同类的asp.net的开源项目,就决定自己做一个,顺便学习ajax .基本做出了个雏形,语法高亮也只能支持到 C#,Jscript,htm.
树用的是MS treeview ,但郁闷的事情也来了,MS treeview在firefox下render出的html竟然和ie下一点都不相同,而且是采用postback方式展开节点,我给tree上加的onclick不起作用,导致目前这个东东在firefox下不能用,继续研究中....

An open source web based Source Code Viewer system application
written in ASP.NET / C#.NET / Javascript with ajax for the Windows OS and .Net FrameWork platform.

Homepage : http://www.github.com/scv/
Online demo : http://www.github.com/code/
Online screenshots : http://sourceforge.net/project/screenshots.php?group_id=155912
On Sourceforge : http://sourceforge.net/projects/scv
Download the latest version 0.1 including the source code :
http://sourceforge.net/project/s ... p;release_id=382944

Screenshots:




12 Dec 2005

免费的Asp.net2.0 Sqlserver express的学习空间

 dotnetspider.com提供Asp.net2.0 Sqlserver express的学习空间

- Learn ASP.NET 2.0

- Develop your web site
- Host it for free.


Web hosting package
For ASP.NET programmers

  • $0.00 monthly fee.
  • No advertisements in your site.
  • SQL Server Express support.
  • MS Access support.
  • Up to 100 MB Space.
  • 2 GB monthly data transfer.
  • Your own domain name. 

    详细描述参考下面的页面:
    http://www.github.com/private/5271/default.aspx

  • 21 Nov 2005

    关于请求的目录不存在而需要url重写

    http://pwqzc.cnblogs.com/archive/2005/11/21/281331.html看到的讨论
    其实csdn的那两个帖子
    http://community.csdn.net/Expert/topic/4401/4401936.xml?temp=.317898

    http://community.csdn.net/Expert/topic/4406/4406615.xml?temp=.513714
    中已经有网友们说到方法了,hander module 都可以做
    在iis中设置*.*映射到 aspnet_isapi.dll ISAPI 扩展,我测试后没有发现什么访问被拒绝访问的401.3错误,
    需要输入用户名的问题。

      

    以下在代码xpsp2 .net1.1 sp1 下测试通过

    [Copy to clipboard]

    下载
    http://www.cnblogs.com/Files/huobazi/VisualUrl.rar

    16 Nov 2005

    Google的网站统计、分析系统

    http://www.google.com/analytics/


    功能全,比较酷!

    09 Nov 2005

    准备开辟第二职业了,哎......

            现欲开辟第二职业,有意者来电来函咨询,本人承接以下业务:苦力搬运,装卸,车工,钳工,焊工,水电工,瓦工,砸墙,砌墙,筛沙,油漆,通下水道,贴瓷砖,室内装璜,Vb,C++,面点制作,热炒、小炒。
      .NET,C#,Java,j2ee,j2me,asp,delphi,汇编,PC&手机游戏开发,网络维护管理,3维建模,照片上色,平面设计,建筑效果图,flash动画,硬件设计,单片机开发,四六级替考,办证,黑枪,黑车,暗杀,洗钱,放火,要债,割双眼皮,拉单眼皮,修复处女膜,整容,养狗…


      另:本人长期代写小学生寒,暑假作业.替小学生欺负其他同学,代替学生父母开家长会,(限制5-10岁以内)
            
    有意者狂Q我

    03 Nov 2005

    新的GotDotNet

    http://gotdotnet.com/

    16 Oct 2005

    买了edong的空间没有db_securityadmin权限

    买了edong的http://www.edong.com/v8/webhosting/K1000.php这个k1000空间
    没有db_securityadmin权限装不了CommunityServer和DotNetNuke

    The account you use to run CS under must have the following minimum database roles to function corrected:

    db_securityadmin
    db_ddladmin
    db_datareader
    db_datawriter

    Use the following from Query Analyzer to ensure that your account has sufficent permissions. If you are in a host environment and can not change your database roles you will need to requrest these roles from your ISP

    sp_addrolemember ’db_securityadmin’, ’

    <your login name>
    sp_addrolemember ’db_ddladmin’, ’
    <your login name>
    sp_addrolemember ’db_datareader’, ’
    <your login name>
    sp_addrolemember ’db_datawriter’, ’
    <your login name>


    郁闷。
    看来要自己租服务器了。
    另注:本随笔不接受枪手评论,谢谢!

    15 Oct 2005

    在Asp.Net中使用HttpModule实现多个域名分别“绑定”到子目录

    作者:活靶子 发表于:AspxBoy.Com && im286.com && Cnblogs.com


    目前虚拟主机商提供将多个域名绑定到站点根目录,但是不提供类似CPanel那样可以将域名绑定到站点的子目录。
    而当你手上有多个域名,网站空间和流量又有闲置的时候,是很希望
    将这些资源利用起来,而且要做到降低做站的成本。而网络上流传的多域名绑到子目录多为判断HTTP_HOST再使用Asp的Response.Redirect或者php的header方法重订向到子目录去。这种方法在地址的请求上发生了变化,大家都知道Redirect的定向是很不友好的,在服务器端控制自动跳转会令访问者感到不安。
    所以我需要的是对这个域名下面的所有请求都转接到对应的子目录里去
    比如<
    http://www.xaradio.com/default.aspx
    实际访问的是http://www.3pub.com/xaradio/default.aspx

    http://www.xaradio.com/album.aspx?id=722
    实际访问的是http://www.3pub.com/xaradio/album.aspx?id=722

    http://www.xaradio.com/*.aspx
    实际要访问到http://www.3pub.com/xaradio/*.aspx

    而绑定到该站点根目录的其他域名和地址仍然不受影响
    如: http://www.3pub.com/ 和http://3pub.com/
     http://www.3pub.com/default.aspxhttp://3pub.com/default.aspx



    http://www.github.com/484/default.aspx该文章详细的描述了在Asp.Net中使用HttpModule和HttpHander来重写Url,读懂他特别是http://www.github.com/484/archive.aspx#ekaa将是我们下面工作的前提朋友们可以下载该文章附带的代码研究。

    如果您对HttpModule的编成非常熟悉那么可以向下进行了

    一。 先把配置文件从web.config内移出为了不让web.config变的非常臃肿,我们将配置文件从web.config内移出
    假设我们的多域名绑定配置文件为“MulitDomain.config“
    将RewriterConfiguration.cs的public static RewriterConfiguration GetConfig()方法
    修改如下:

    /// 
    /// 从XML配置文件中返回重写信息
    /// 
    /// RewriterConfiguration
    public static RewriterConfiguration GetConfig()
    {
    RewriterConfiguration config = (RewriterConfiguration) BoovooCache.Get(CacheKey);
    if(config == null)
    {
    // 2005-08-18 wu meibo update the config file to SiteUrls.config
    // HttpContext.Current.Cache.Insert("RewriterConfig", ConfigurationSettings.GetConfig("RewriterConfig"));
    ///************************************************************************************
    ///
    ///  Author:武眉博<活靶子.Net>,huobazi
    /// Date:2005-08-18
    ///
    ///  Description:将配置文件移到单独的文件内,更新以下代码,原代码(上一行)停止工作
    ///
    ///************************************************************************************
    string filePath = String.Empty;
    if(HttpContext.Current != null)
    {
    filePath = HttpContext.Current.Server.MapPath("~/MulitDomain.config");
    }
    else
    {
    filePath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "MulitDomain.config";
    }
    XmlSerializer ser = new XmlSerializer(typeof(RewriterConfiguration));
    FileStream fileReader = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read);
    StreamReader reader = new StreamReader(fileReader);
    config = (ser.Deserialize(reader)) as RewriterConfiguration;
    reader.Close();
    fileReader.Close();
    if (File.Exists(filePath))
    {
    CacheDependency dep = new CacheDependency(filePath);
    BoovooCache.Max(CacheKey,config,dep);
    BoovooCache.ReSetFactor(config.CacheFactor);
    }
    }
    return config;
    } 

    二。做一些修补
    RewriterModule.cs内

    public virtual void Init(HttpApplication app)
    {
    ///**********************************************************************************
    ///  Author:武眉博<活靶子.Net>,huobazi
    /// Date:2005-08-18
    ///  Description:增加BeginRequest,在内增加防止黑客可能利用的某些Url漏洞攻击的代码
    ///**********************************************************************************
    app.BeginRequest += new EventHandler(this.RewriterModule_BeginRequest);
    // 警告!此代码不适用于 Windows 身份验证!
    // 如果使用 Windows 身份验证,
    // 请改为 app.BeginRequest
    app.AuthorizeRequest += new EventHandler(this.RewriterModule_AuthorizeRequest);
    } 
    protected virtual void RewriterModule_BeginRequest(object o , EventArgs e)
    {
    HttpApplication app = ((HttpApplication)(o));
    HttpServerUtility Server = app.Server;
    HttpRequest Request = app.Request;
    ///************************************************************
    ///  Author:vv,huobazi
    /// Date:2005-08-18
    /// Description:修补黑客可能采用".."的方法进入其他目录的问题
    ///************************************************************
    string strURL = Server.UrlDecode(Request.RawUrl);
    if (strURL.IndexOf("..") != -1)
    {
    throw new HttpException(404, "Not Found");
    }
    ///**********************************************************************************
    ///  Author:武眉博<活靶子.Net>,huobazi
    /// Date:2005-08-18
    /// Description:修补"规范化"问题 see: http://support.microsoft.com/?kbid=887459
    ///***********************************************************************************
    if (Request.Path.IndexOf('\\') >= 0 ||
    Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath)
    {
    throw new HttpException(404, "Not Found");
    }
    } 

    三。开始匹配域名

    protected void Rewrite(string requestedPath, System.Web.HttpApplication app)
    {
    string host = app.Context.Request.Url.Host.ToString().ToLower();
    app.Context.Trace.Write("RewriterModule", "Entering ModuleRewriter");
    RewriterRuleCollection rules = RewriterConfiguration.GetConfig().Rules;
    for(int i = 0; i < rules.Count; i++)
    {//将MulitDomain.config内定义的规则LookFor的值逐个匹配当前主机名判断否被定义了需要重写
    //如果匹配则需要重写,那将请求重写到SendTo定义的目录内的该文件
    string lookFor = "^" + rules[i].LookFor + "$";
    //string lookFor = "^" + Rewriter.ResolveUrl(app.Context.Request.ApplicationPath, rules[i].LookFor + requestedPath) + "$";
    Regex re = new Regex(lookFor, RegexOptions.IgnoreCase);
    if (re.IsMatch(host))
    {
    string sendToUrl = Rewriter.ResolveUrl(app.Context.Request.ApplicationPath,  rules[i].SendTo + requestedPath);
    app.Context.Trace.Write("RewriterModule", "Rewriting URL to " + sendToUrl);
    Rewriter.RewriteUrl(app.Context, sendToUrl);
    break;
    }
    }
    app.Context.Trace.Write("RewriterModule", "Exiting ModuleRewriter");
    }
    

    四。写规则文件
    MulitDomain.config的匹配规则如下:

    <?xml version="1.0" encoding="utf-8" ?>
     <RewriterConfig>
     <Rules>
      <RewriterRule>
       <LookFor>www\.xaradio\.com</LookFor>
       <SendTo>~/xaradio</SendTo>
      </RewriterRule>
      <RewriterRule>
       <LookFor>xaradio\.com</LookFor>
       <SendTo>~/xaradio</SendTo>
      </RewriterRule>
     </Rules>
      </RewriterConfig>

    最后说明一下,根目录下一定要有一个Default.aspx如果你的所有域名都按照这种方式“绑定”那么根目录下放置一个空Default.aspx就可以,该文件来“欺骗IIS” ,防止直接使用域名访问的时候IIS查找不到default或者index文件就报404错误,等到该检查过去之后权利已经移交到aspnet_isapi.dll那里了。

     全部代码http://www.github.com/code/  Other节点

    10 Oct 2005

    哭使用Data Access 2 插入Ntext类型数据时SqlParameter不指定类型的问题 , ,请为我解惑

    实在郁闷 ,请大家为我解惑。
    同发csdn:http://community.csdn.net/Expert/topic/4315/4315539.xml?temp=.3931848

    原来的代码

     SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure,
      FullyQualifiedSprocName("P_InsertNtextData"),
      new SqlParameter("@Id", f.Id),
      new SqlParameter("@NtextData",f.Data));

    如果 f.Data过长,就莫名其妙的异常,

    ---------------------------


    ---------------------------
    当前命令发生了严重错误。应放弃任何可能产生的结果。
    ---------------------------
    确定  
    ---------------------------


    ---------------------------


    ---------------------------
    常规网络错误。请检查您的网络文档。
    ---------------------------
    确定  
    ---------------------------

    Google baidu 都翻了个底朝天,也没个能安慰我的信息。
    试验了一下午,最后试出来写个测试字符串"aaaa"就能插入
    尝试了如下代码

     SqlParameter ntext = new SqlParameter("@NtextData",SqlDbType.NText);
     ntext.Value = f.Data;
     SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure,
      FullyQualifiedSprocName("P_InsertNtextData"),
      new SqlParameter("@Id", f.Id),
      ntext);

    成功,怎么也想不通这换汤不换药的方法为何能够成功,
    翻msdn,
    打自己一巴掌

    获取或设置参数的 SqlDbType。


    [Visual Basic]
    Public Property SqlDbType As SqlDbType


    [C#]
    public SqlDbType SqlDbType {get; set;}



    属性值
    SqlDbType 值之一。默认值为 NVarChar

    然而我又看到另外一个构造器的重载这样说明

    [Visual Basic]
    Public Sub New( _
       ByVal parameterName As String, _
       ByVal value As Object _
    )


    [C#]
    public SqlParameter(
       string parameterName,
       object value
    );



    参数
    parameterName
    要映射的参数的名称。
    value
    一个 Object,它是 SqlParameter 的值。
    备注
    当在 value 参数中指定 Object 时,SqlDbType 将从 Object 的 .NET Framework 类型推断出。

    这又如何解释??