搬家到 my36z.blogbus.com 。
XNA Game Studio专题
本周我们围绕最新发布的XNA Game Studio Express为大家做专题介绍。
XNA是微软迎合业界需要推出的下一代游戏开发平台,基于XNA平台的革命性系列开发工具XNA Game Studio Express可使任何人都能非常轻松地开发 Windows 游戏和 Xbox 360 控制台游戏。
XNA Game Studio Express 向每个人开放游戏开发领域介绍了XNA Game Studio Express的目标定位、功能特性以及XNA Framework等的相关概念。
Next Generation of Games Starts With XNA New Software Development Platform Integrates Innovations Across Industry从整体上阐述下一代游戏开发平台XNA在整合业界创新,领导开发潮流方面的贡献。
Microsoft Tackles Growing Demands of Game Development XNA Studio to Integrate Teams and Speed Game Production 介绍微软以XNA游戏开发平台来迎合业界日益增长的整合开发团队、加速游戏生产的需求。
XNA Game Studio Express 补充说明信息介绍了XNA Game Studio Express Beta2版本的安装要求、配置说明、功能限制等内容。
XNA Framework and XNA Game Studio Express Frequently Asked Questions XNA官方常见问题解答阐释了XNA的定位、目标、用途、优势、应用等。
Managed DirectX 1.1 to XNA Framework (Beta)讲解如何从DirectX 1.1向XNA Framework过渡进行代码迁移。
视频 XNA Overview全面介绍XNA游戏开发平台的设计理念、技术和工具,并以Mech Commander 2这一游戏为例讲解XNA和Visual Studio在开发过程中的应用。
视频 XNA Build Tutorial通过一个简单的例子讲解在Visual Studio中构建一个XNA项目,涉及图形图像处理、游戏元素设置等。
视频 XNA Build Advanced讲解在XNA项目构建中的高级内容,包括时间轴设置、独立性检查、对象关系管理等。
这里是XNA Build视频教程的指南和演示文稿。
工具介紹:Thinstall
作者:蔡學鏞
2004 年 9 月
軟體開發完畢,需要開始考慮到部署 (deployment) 的問題。部署往往不是一件簡單的事,有一些問題需要解決。早期,Java 尚未普及時,許多 Java 程式員都會面臨一個困擾,那就是:用 Java 開發出來的軟體,不保證可以在其他人的 PC 上執行,因為別人可能沒有安裝 JRE (Java Runtime Environment,Java 執行環境)。即使有安裝 JRE,JRE 的版本可能也不對。即使是現在,這個問題依然存在。
同樣地,.NET現在也遇到這個問題。目前,只有 Windows Server 2003 預先安裝好 .NET Framework,其他的作業系統都沒有預先安裝 .NET Framework。這會造成有些公司在評估開發工具時,會捨棄 .NET,而就 MFC,甚至回到 Win32 API,畢竟 MFC 和 Win32 的 DLL 在所有的 Windows 平台上都有。我常覺得這可稱為「舊技術不死,只是凋零」,凋零得還真慢呢!
如果讓安裝程式將 .NET Framework 附在其中,會造成一些問題:安裝 .NET Framework 時需要有足夠的權限,權限不夠則無法安裝。例如,Guest 帳戶無法存取 Registry,安裝 .NET Framework 需要存取 Registry。另外,體積也是一個大問題,.NET Framework 下載超過 20MB(安裝後超過100MB)。
幸好,有一些軟體廠商提供工具可以解決此問題,Thinstall 正是一個這樣的工具。在 .NET Framework 尚未普及的今日,這樣的工具更顯得重要。Thinstall 是 Jitit 公司的產品,你可以在 http://thinstall.com/ 找到它的資料,以及下載 30 天試用版。
顧名思義, Thinstall 是 Thin-Install 的意思,讓軟體免於安裝的困擾。利用 Thinstall ,可以將一個軟體的許多檔案包裝 (package) 成一個 EXE 檔,不需要解壓縮,不需要安裝 (install),就可以直接執行。利用 Thinstall ,你可以將 .NET Framework 和你的程式,以及相關的檔案都包裝在一起,變成一個自給自足的 EXE 檔。
除了將 .NET Framework 包裝進 EXE 之外,Thinstall 還有一些額外的好處,包括了:
使用 Thinstall 也不是全然沒有缺點,最明顯的缺點是,執行效率會或多或少受到影響,且浪費更多記憶體。我的經驗是,大多數的程式感覺不出效率變差,但某些用到特殊的技巧的程式,其效率的確變差了。另外,使用 Thinstall 時,必須考慮到法律的問題。因為 Thinstall 將許多程式庫都包裝進來,這些別人開發的程式庫 (包括.NET Framework) 是否可以隨著你的 EXE 而散播,Thinstall 的使用者需要好好研究其授權方式。
Thinstall 的使用方式非常容易,你可以在 Thinstall 的網站上看到用法介紹。較值得注意的是,Jitit 公司不希望 Thinstall 產品被不合法地盜用,所以對於 Thinstall 的保護相當嚴格。使用 Thinstall 時,電腦必須能上網,因為 Thinstall 需要連線到 License Server,來得知你是否為合法的用戶 (或試用戶),否則將不能執行 Thinstall。你也可以向他們購買 USB 的 Key,就可以不用上網,離線使用 Thinstall。
Thinstall 可以利用PE檔案格式的 Import Table,以及利用 .NET Metadata Table 內記錄的資訊,來得知此程式使用了哪些 DLL,Thinstall 會自動加入這些 DLL,甚至連間接使用到的 DLL (也就是 DLL 所使用的 DLL),也會被自動加入。但是,Thinstall 無法得知程式中利用 Win32 的 LoadLibrary() 或 .NET的Assembly.Load() 等API所動態載入的 DLL 有哪些,所以使用者必須自行將這些 DLL 加入到 Thinstall 中,以免包裝出來的 EXE 檔殘缺不全。
Thinstall 採用的機制相當巧妙,利用一個 Virtual OS 將程式和 OS 隔開來。如果你的程式是 .NET 程式,則在你的程式和 Virtual OS 之間,還有一個 .NET CLR,如圖 1 所示:

如果你利用Thinstall來包裝.NET程式,那麼Thinstall所產生出來的EXE檔內,除了包含你的原始EXE檔之外,還有.NET Framework,以及Thinstall Virtual OS,如圖2所示。

Thinstall Virtual OS 重新改寫了 300+ 個 Win 32 API,這些 API 大都是和檔案、Registry、Process 等有關。Virtual OS 內有自己的 Virtual File System 和 Virtual Registry。這些被改寫的 API,將 Virtual File System 和 Real File System 整合起來,成為一個新的 File System;將 Virtual Registry 和 Real Registry 整合起來,變成一個新的 Registry。
當系統載入此 Thinstall 包裝出來的 EXE 時,Virtual OS 會先被載入,Virtual OS 會接著載入原始的 EXE (以及.NET Framework),然後解壓縮與解密、並該更改此 EXE(以及.NET Framework) 所使用到的這 300+ API,使其呼叫到 Virtual OS 的版本,而不是 Real OS 的版本。最後把執行權交給此 EXE。偷天換日的工作,於是完成!
因為 Thinstall 內部使用這套 Virtual OS 的機制,而不是針對 .NET 來設計一個專屬的機制,所以 Thinstall 除了用來包裝 .NET 程式,也可以用來包裝 Java 程式,甚至 VB,或其他程式。我覺得這是一套很方便的工具,值得您也試試。
.NET 混淆 反编译
反编译
Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL.
Reflector.zip - .NET Reflector, Version 4.2.48.0
混淆
用XenoCode 2006加密dll
一直使用 XenoCode 2005 Enterprise 版来混淆保护我的 .net 程序,虽说不能做到真正意义上的安全(呵呵,我就破解了几个用XenoCode加密的软件,纯粹好玩……),但比起其他几个类似工具还是要好上很多。
昨天去XenoCode网站,发现新版2006已经推出,名字也变成 Xenocode PostBuild 2006,除了以往功能加强外,最让我惊奇的是:
这个功能可以将 .net 程序编译为无需 .net Framework 的 Native x86 executable。厉害!虽说将 .net Framework 一起打包后,程序文件变得很大(增加了十几MB),可的确能在无.net Framework环境下运行。
详细功能:http://www.xenocode.com/Products/Postbuild/Features.aspx
另外,还推出了:
Xenocode Fox,一款类似 Reflector 的 .net 反编译工具。
Xenocode Release Manager,一款用来管理软件试用和授权的工具。
加密步骤:
1、澄清:是混淆,不是加密,混淆!=加密
2、导入要加密的dotNET程序或assembly文件(.dll/.exe)
3、选择第二个选项卡“Protect”
4、点击“Select Pattern”
5、选中所有“Object Type”和所有“Visiblility”
6、“Action”选择“Do not obfuscate”,Apply,把所有的内容都设为不进行混淆
7、“Action”选择“Obfuscate”,“Visibility”只选择“Private”,Apply
8、右下角按下“XenoCode Assemblies”,导出混淆后的文件
( Xenocode Postbuild 2006 Evaluation ) [14天过期]
官方下载页面:http://www.xenocode.com/Products/Postbuild/Trial.aspx
官方下载地址:http://www.xenocode.com/Products/Postbuild/Setup.msi
相关解密资料:
解密XenoCode加密的字符串
很多 .net 程序发行时会使用混淆器进行保护,其中 XenoCode 2005 应该说是使用比较多的一个。
XenoCode会使用一个插入的类对程序集中的字符串进行保护。
本文将结合 Reflector 和反射技术解密程序集中被加密的字符串。
首先,我们使用 Reflector 对原程序进行 Disassembler,找到我们要解密的字符串代码。
如:
this.x80bb7e5ddf294933.SerialNumber = string.Intern(x1110bdd110cdcea4._d574bb1a8f3e9cbc("\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55));
找到要解密的字符串以后,开始编写反射调用代码。
class Program
{
public static void Main()
{
// 载入程序集,test.exe 为被混淆的程序集文件名。
Assembly asm = Assembly.LoadFrom(@"test.exe");
// 获取XenoCode插入的解密类型(包含其namespace),对应上面字符串前面的类名,每次混淆结果可能都不同。
Type type = asm.GetType("x293b01486f981425.x1110bdd110cdcea4");
// 字符串参数和解密参数
object[] parameters = {"\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55};
Type[] paramTypes = new Type[parameters.Length];
for (int i = 0; i < parameters.Length; i++)
paramTypes[i] = parameters[i].GetType();
// 调用解密方法
BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
MethodInfo method = type.GetMethod("_d574bb1a8f3e9cbc", flags, null, paramTypes, null);
object result = method.Invoke(null, parameters);
// 显示解密结果
Console.WriteLine(result);
Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}
保护前的Assembly. 
保护后的Assembly. 
类似加密软件:
http://www.maxtocode.com/
本软件是一款完全免费的.Net混淆程序.它不仅功能非常强大简单易用,而且核心模块的源程序是完全开放的。它可以为您的.Net程序提供全方位的代码安全保护.详情请登录www.spdevelop.com!
几家英语学习的Podcast网站
CodeHelp VisualBasic IDE 环境的增强插件
VB6滚轮补丁
自制卡巴斯基服务器版
大量Babylon 6 注册码
迅雷 FlashGot专用版 for Firefox 附去广告补丁
目前FlashGot 0.5.9.995无法识别迅雷最新版,所以要在Friefox上用迅雷,就要载旧的版本的了。5.1.5.189是最后一个支持FlashGot的版本。下载连接看下面。补丁由赢政提供。
看看下面四个方法吧。(最好把自动升级的文件删掉,要不然他会自己升级,又变广告出来)
任何版本+注册Dll文件
这个方法适合所有的迅雷,下载 xunleibho_v14.dll 文件,放在任何地方都可以,就是不要删掉就好
比如说我放 D:\dll 文件夹下 打这个命令注册一下"regsvr32 D:\dll\xunleibho_v14.dll"
OK 打开FlashGot看下吧
迅雷国际版 Gigaget
还有迅雷国际版 Gigaget ,因为更新比较慢,所以现在的最新版仍然可以使用,而且界面感觉也....出口的就是比内销的好看~
已经打好补丁的程序
讯雷 v5.1.5.189绿色完美去广告安装版http://soft.winzheng.com/SoftView/SoftView_33927.htm
原版迅雷 + 补丁
迅雷5.1.5.189.去广告+搜索栏+热门推介栏+60线程补丁(一步到位)
重新修正如下:
◆去除热门推荐内容
◆去除迅雷原版的广告,绝不会留下一条蓝色条。
◆修改下载任务数最大值改为 60。
◆去除主界面搜索工具条,完全不会留下被屏闭的阴影。
◆不会在原目录下自动生成“Res”文件夹
说明:

最好下载官方版本: http://down.sandai.net:8080/Thunder5.1.5.189.exe
补丁下载地址: http://mail36z.googlepages.com/buding.exe
注意,把补丁程序必须和迅雷放在同一个目录下。还有,打开补丁的时候最好把音响关小声点,不然会被吓到。
windows xp/2000建立smtp服务器
安装设置服务端
windows xp和2000本身就拥有构件smtp服务器的功能,只是一般还没有安装。选择“控制面板→添加/删除程序→添加/删除windows组件”,弹出 “windows组件向导”对话框,在其中双击“internet信息服务(iis)”项,就会打开详细选择项,选中“smtp service”,按“确定”,插入windows xp安装盘进行安装。
安装好smtp服务器后,选择“控制面板 →性能和维护→管理工具→internet信息服务”打开internet信息服务设置窗口,在窗口左侧点击本地计算机名,展开本地计算机目录,可以看到有两个分支“wed站点”和“默认smtp虚拟服务器”。在“默认smtp虚拟服务器”上点击鼠标右键选择“属性”,打开“默认smtp虚拟服务器属性” 窗口。
“常规”选项卡主要设置ip地址,单击ip地址下拉项选择“127.0.0.1”,表示指向本地计算机ip地址,其他项使用默认即可。如果你是局域网接入,拥有固定ip地址,那么ip地址就应该选择相应的地址。
“访问”选项卡中设置访问权限。单击“身份验证”,选择“匿名访问”,表示任何用户都可以发送,其他两项不用选择;单击“连接控制”中的“连接”和“中段限制”中的“中断”,选中“仅以下列表除外”,表示可以许接入所有用户的访问。
“邮件”选项卡中设置邮件传输条件及限制,“限制邮件大小为”等四个选项可以使用默认值,无须更改;
“将未传递报告的副本发送到”可将发送不成功的邮件返回发件人,并且写明不成功的原因;“死信目录”设置没有发送成功的邮件被存放的位置。
“传输”选项中设置邮件传递时间,这里不用修改,使用默认值;“ldap路由”选项用来指定服务器使用的目录服务器标识和属性,这里也不用启动它。
“安全”选项中设置使用发送服务器的有权用户,默认用户是“administrators”,你可以单击“添加”添加使用用户。
一切设置好后,你就拥护了自己的邮件发送服务器了!下面我们来看看在outlook express和foxmail中如何设置使用自己的smtp来发信。
设置客户端软件
打开outlook express,选择“工具→账号→邮件”,选中帐号点“属性”,在“服务器”标签下的“发送邮件(smtp)”中输入“127.0.0.1”,即本机地址,“我的服务器需要身份验证”不选择。
在foxmail中选择需要设置本机发信的帐号,然后选择“帐号→属性→邮件服务器”,在“发送邮件服务器”中输入“127.0.0.1”,“smtp邮件服务器需要身份验证”也不要选择上。
撰写发送邮件和我们平时操作一样,没有什么区别。写好后点发送,邮件会在瞬间发送完毕。
my36z:因为很多垃圾邮件都是这样发送的,所以有部分的免费邮箱是收不到的。比如126.com就过滤掉了,而 gmail,sohu 和 yahoo 可以收的到哦。
在 outlook express 中,账户属性的下面 把 "接收邮件或同步时包含此账户" 的钩去掉,这样收邮件的时候就不会使用这个账号了.这smtp是用来发邮件的!不能接收
Expression Designer系列工具汇总
用ASP.NET上传大文件
转 http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx
我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的,可以参考这个帖子研究一下产生这个错误的机理。
handling server error when upload file too large
解决的方法是利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和 ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据
IServiceProvider provider = (IServiceProvider) HttpContext.Current;
HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
byte[] bs = wr.GetPreloadedEntityBody();
....
if (!wr.IsEntireEntityBodyIsPreloaded())
{
int n = 1024;
byte[] bs2 = new byte[n];
while (wr.ReadEntityBody(bs2,n) >0)
{
.....
}
}
Chris Hynes为我们提供了这样的一个方案(用HttpModule),该方案除了允许你上传大文件外,还能实时显示上传进度:
这里有他讲座的PPT文件:
CSS2中文手册之"苏沈小雨"版
vs.net 03 & 05 Express Edition FTP 下载
Microsoft Visual Studio.NET 2003
高速下载
ftp://ftp.zgyd.com.cn/application/vs.net/vs.net2003.01.iso
ftp://ftp.zgyd.com.cn/application/vs.net/vs.net2003.02.iso
ftp://ftp.zgyd.com.cn/application/vs.net/vs.net2003.03.iso
龟速下载(因为是网通~)
ftp://ftp.pcsky.cc:1219/%D2%B5A/pcsky.cn.VSENARD1.rar
ftp://ftp.pcsky.cc:1219/%D2%B5A/pcsky.cn.VSENARD2.rar
ftp://ftp.pcsky.cc:1219/%D2%B5A/pcsky.cn.VSWCUD1.rar
不提供MSDN了,以上链接06.7.15 有效 。
Visual Studio Express 2005 中文正式版
仅微软学生中心提供龟速下载(因为是教育网). 其他提供的均为英文版 r
Visual C# 2005 Express Edition
ftp://www.msuniversity.edu.cn/Express/VCS_CHS.iso
Visual Web Developer 2005 Express Edition
ftp://www.msuniversity.edu.cn/Express/VNS_CHS.iso
Visual Basic 2005 Express Edition
ftp://www.msuniversity.edu.cn/Express/VB_CHS.iso
Visual C++ 2005 Express Edition
ftp://www.msuniversity.edu.cn/Express/VC_CHS.iso
SQL Server 2005 Express Edition
SQL Server 2005 Express Edition包含在以上四个安装包中
这些速成版都是有带中文msdn的
05的其他正式版,相对于速成正式版过于臃肿,在没有特殊的情况下哦就不用了。为什么?看下面
在详细解读Express版与付费版本的差别之后,在此列出 Express版的「十不一没有」,由前3个「不」即可发现Express版锁定在初学者及非商业用途。尽管如此,Visual Studio 2005 Express仍然是适合广大学生,软件开发爱好者,初学者的功能强大、易学易用的IDE.
1.不能远程除错:限制本机开发与除错。
2. 不能远程访问数据库(Visual Web Developer 2005 Express版可以):主从架构的应用,限制只能存取本机数据库;Visual Web Developer 2005 Exress版是针对Web开发,内建的Web Development Server是开发与测试的网页服务器,也是只能存取本机的数据,不过部署到IIS以后,当然是可以远程访问数据库,否则就「Web」不起来了。
3.数据库设计工具不能提供远程「数据连接」节点:存取数据库都限定本机,数据库的设计当然也限本机。
4.不能支持Office开发:关于企业最常见的Office整合应用-汇出/汇入数据至Excel,再进一步制作成报表,Express版无法完成。
5.不能远程部署:Standard以上版本开发的主从架构应用程序,提供ClickOnce机制,让使用者可以延用Windows Update的操作模式,由系统自动比对及下载更新程序,减少版本更新的困难度。Express版有劳手动部署。
6.不能开发行动装置解决方案:无法开发PDA、智能型手机应用程序。
7.不能整合SQL Server 2005:无法使用Express版撰写Stored Procedure(预存程序),也没有相对应的测试和版本控管功能。
8.不支持64位编译:Visual Studio Team System才有的功能。
9.不能协同开发:连远程除错与数据库联机都不行,当然不能协同开发。
10.不能软件开发生命周期管理:需要此功能请购买Visual Studio 2005 Team System。
11.没有Windows XP Style控件:没有可设定主题、颜色及渐层等外观的使用者控件(这只关乎系统的美丑,应该算是影响最小的)。
还有更重要的限制-Express版关闭了加值接口(Add-In API),就是不能调用另外安装的第三方编写的API,这才是影响最大的关键。
有一张很精简的05 Express 合集。包括了上面4张盘的内容.非官方集成。上面那段也是下面的链接里抄的 。自己看看。