﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-紫雨轩 .Net, DNGuard HVM , .Net VMProtect</title><link>http://www.cnblogs.com/rick/</link><description>DNGuard HVM - Advanced .NET Code Protection Technology</description><language>zh-cn</language><lastBuildDate>Tue, 09 Feb 2010 22:35:36 GMT</lastBuildDate><pubDate>Tue, 09 Feb 2010 22:35:36 GMT</pubDate><ttl>60</ttl><item><title>DNGuard Enterprise v3.30 released</title><link>http://www.cnblogs.com/rick/archive/2009/11/02/1594869.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Mon, 02 Nov 2009 15:07:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2009/11/02/1594869.html</guid><description><![CDATA[<p>阅读: 310 评论: 6 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2009-11-02 23:07 <a href="http://www.cnblogs.com/rick/archive/2009/11/02/1594869.html" target="_blank">原文链接</a></p><p>&nbsp;</p>
<h4>Version 3.3.0 (November 02, 2009)</h4>
<p>[*] Improved compatibility (Windows 7).<br />[*] Internal protection improvements.<br />[+] Add Support for .Net Framework 4.0 (VS2010) beta 2.<br /></p>
<p>&nbsp;</p>
<p>针对windows7 32位和64位系统进行了更新。</p>
<p>支持.Net Framework 4.0 beta2 32位和64位版本。</p>
<p>&nbsp;</p>
<p><a href="http://www.dnguard.net/downloads.aspx" target="_blank"><font color="#009933">http://www.dnguard.net/downloads.aspx</font></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h4>Version 3.2.8 (Aug 31, 2009)</h4>
<p>[*] Fixed a Generic Type handle issue.<br />[*] Fixed a c++ mixed image handle issue.<br />[*] Fixed live update can't detect minor updates.<br />[*] Fixed output path check issue.<br />[*] Minor bugs fixed.<br /></p>
<h4>Version 3.2.5 (June 22, 2009)</h4>
<p>[*] Fixed .Net Framework 3.5 SP1 X64 Platform support issue .<br />[*] Improved compatibility .<br />[*] Improved Trial License manager.<br /></p>
<h4>Version 3.2.2 (April 18, 2009)</h4>
<p>[*] Fixed Assemblies without using System.Object can't run after protected .<br />[*] Improved compatibility .<br />[*] Improved StrongName handler.<br /></p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/rick/aggbug/1594869.html?type=1" width="1" height="1" alt=""/><p>评论: 6　<a href="http://www.cnblogs.com/rick/archive/2009/11/02/1594869.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2009/11/02/1594869.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>ComboBox 使用数据绑定时 Sorted 属性的bug</title><link>http://www.cnblogs.com/rick/archive/2009/06/25/1511120.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 25 Jun 2009 09:15:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2009/06/25/1511120.html</guid><description><![CDATA[<p>阅读: 1503 评论: 10 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2009-06-25 17:15 <a href="http://www.cnblogs.com/rick/archive/2009/06/25/1511120.html" target="_blank">原文链接</a></p><p>调查一个奇怪的系统异常时发现的这个bug，现象就是用户在ComboBox里面选择一项后，程序在SelectIndexChanged 事件中根据用户选择刷新数据时出现错误。跟踪调试后才发现原来是SelectedValue 值和用户选择的Item项不一致。</p>
<p>但是为什么会出现这样奇怪的错误呢？<br />经过调查发现是因为设置了ComboBox的Sorted属性引起的。</p>
<p>重新的测试代码如下：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;comboBox1_SelectedIndexChanged(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataRowView&nbsp;drv&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;comboBox1.SelectedItem&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;DataRowView;<br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label1.Text&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">.Format(</span><span style="color: #800000">"</span><span style="color: #800000">Value:&nbsp;{0}&nbsp;==&nbsp;{1}&nbsp;?</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;comboBox1.SelectedValue,&nbsp;drv.Row[</span><span style="color: #800000">"</span><span style="color: #800000">ID</span><span style="color: #800000">"</span><span style="color: #000000">]);<br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;frmTest_Load(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;dt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataTable();<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="color: #800000">"</span><span style="color: #800000">ID</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">));<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Columns.Add(</span><span style="color: #800000">"</span><span style="color: #800000">Name</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(</span><span style="color: #0000ff">string</span><span style="color: #000000">));<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">1</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">f&nbsp;-&nbsp;1</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">2</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">e&nbsp;-&nbsp;2</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">3</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">d&nbsp;-&nbsp;3</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">4</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">c&nbsp;-&nbsp;4</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">b&nbsp;-&nbsp;5</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dt.Rows.Add(</span><span style="color: #800080">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">a&nbsp;-&nbsp;6</span><span style="color: #800000">"</span><span style="color: #000000">);<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comboBox1.DataSource&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;dt;<br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comboBox1.ValueMember&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">ID</span><span style="color: #800000">"</span><span style="color: #000000">;<br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comboBox1.DisplayMember&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Name</span><span style="color: #800000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>&nbsp;</p>
<p>在ComboBox里面选择 a -6 的话，SelectedValue 是 1 。</p>
<p>实际上因为设置了Sorted属性为true。 a - 6 显示在第一个了，也就是说 SelectedIndex 是 1.</p>
<p>通过测试发现， SelectedValue的值 是按照原始DataTable中Row的顺序获取的。</p>
<p>但是通过 SelectedItem 获取的 ID 值是 6 ，这是正确的。所以SelectedItem的赋值还是正确的。</p>
<p>估计这应该是微软的一个bug，但奇怪的是为什么没有两个一起错，而是一个错一个对。</p>
<p>实验环境：</p>
<p>VS2005 Vista .Net Framework 3.5 SP1 v2.0.50727.3074 。</p>
<p>有其它环境的朋友可以试试在其它版本的框架中是否也有同样的bug。</p><img src="http://www.cnblogs.com/rick/aggbug/1511120.html?type=1" width="1" height="1" alt=""/><p>评论: 10　<a href="http://www.cnblogs.com/rick/archive/2009/06/25/1511120.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2009/06/25/1511120.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DNGuard Enterprise v3.2 released </title><link>http://www.cnblogs.com/rick/archive/2009/02/14/1390795.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Sat, 14 Feb 2009 15:42:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2009/02/14/1390795.html</guid><description><![CDATA[<p>阅读: 1071 评论: 12 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2009-02-14 23:42 <a href="http://www.cnblogs.com/rick/archive/2009/02/14/1390795.html" target="_blank">原文链接</a></p><h4>Version 3.2.0 (February 08, 2009)</h4>
<p>[+] Add Support for .Net Framework 4.0 (VS2010) CTP.<br />
[*] Fixed some c++ mixed images cause BadImageFormatException after protected .<br />
[*] Adjust User String protection .<br />
[*] Fixed a obfuscation issue. <br />
[*] Internal protection improvements.<br />
</p>
<p>&nbsp;</p>
<p><a href="http://www.dnguard.net/downloads.aspx">http://www.dnguard.net/downloads.aspx</a></p>
<img src="http://www.cnblogs.com/rick/aggbug/1390795.html?type=1" width="1" height="1" alt=""/><p>评论: 12　<a href="http://www.cnblogs.com/rick/archive/2009/02/14/1390795.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2009/02/14/1390795.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DNGuard 企业版 v3.1 发布</title><link>http://www.cnblogs.com/rick/archive/2008/12/12/1353352.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 11 Dec 2008 16:16:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/12/12/1353352.html</guid><description><![CDATA[<p>阅读: 725 评论: 6 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-12-12 00:16 <a href="http://www.cnblogs.com/rick/archive/2008/12/12/1353352.html" target="_blank">原文链接</a></p><h4>Version 3.1.0 (December 11, 2008)</h4>
<p>[+] 增加对 IA64&nbsp;平台的兼容.<br />
[+] 增加 ProtectUserString 辅助工具.<br />
[+] 使用DNGuard SDK，在加密后自动移除SDK属性.<br />
[+] Web应用程序过期后会显示提示信息到浏览器. <br />
[*] 修正部分 多核CPU&nbsp;环境兼容问题 .<br />
[*] Adjust obfuscation behaviour. <br />
</p>
<p><font face="Verdana"><a href="http://www.dnguard.net/downloads.aspx">http://www.dnguard.net/downloads.aspx</a></font></p>
<p>&nbsp;</p>
<img src="http://www.cnblogs.com/rick/aggbug/1353352.html?type=1" width="1" height="1" alt=""/><p>评论: 6　<a href="http://www.cnblogs.com/rick/archive/2008/12/12/1353352.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/12/12/1353352.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DNGuard 专业版 v2.95 发布</title><link>http://www.cnblogs.com/rick/archive/2008/07/11/1241171.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Fri, 11 Jul 2008 15:35:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/07/11/1241171.html</guid><description><![CDATA[<p>阅读: 1146 评论: 35 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-07-11 23:35 <a href="http://www.cnblogs.com/rick/archive/2008/07/11/1241171.html" target="_blank">原文链接</a></p><h2>&nbsp;</h2>
<p>[+] 增加试用授权sdk、安全回调函数 sdk 以及帮助文档.<br />
[*] 兼容 vs2008 sp1 beta1 及 .Net Framework 3.5 sp1 beta1.<br />
[*] 修正一处范型类型处理的bug.<br />
[*] 修正.net1.1 在 64bit iis下的问题. <br />
<br />
<a href="http://www.dnguard.net/downloads.aspx">http://www.dnguard.net/downloads.aspx</a><br />
</p>
<img src="http://www.cnblogs.com/rick/aggbug/1241171.html?type=1" width="1" height="1" alt=""/><p>评论: 35　<a href="http://www.cnblogs.com/rick/archive/2008/07/11/1241171.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/07/11/1241171.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DNGuard Enterprise v2.95 released </title><link>http://www.cnblogs.com/rick/archive/2008/07/10/1240341.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 10 Jul 2008 15:46:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/07/10/1240341.html</guid><description><![CDATA[<p>阅读: 503 评论: 2 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-07-10 23:46 <a href="http://www.cnblogs.com/rick/archive/2008/07/10/1240341.html" target="_blank">原文链接</a></p><h4>Version 2.9.5 (July 10, 2008)</h4>
<p>[+] Add secure callback sdk and Document.<br />
[*] Improved compatibility .<br />
兼容 vs2008 sp1 beta1 及 .Net Framework 3.5 sp1 beta1.<br />
[*] Fixed Generic Type handle issue.<br />
[*] Fixed .net1.1 64bit issue. <br />
<br />
<font face="Verdana"><a href="http://www.dnguard.net/downloads.aspx">http://www.dnguard.net/downloads.aspx</a></font><br />
</p>
<img src="http://www.cnblogs.com/rick/aggbug/1240341.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/rick/archive/2008/07/10/1240341.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/07/10/1240341.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>在 FlexGrid 控件中指定最右侧显示的列</title><link>http://www.cnblogs.com/rick/archive/2008/06/26/1230268.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 26 Jun 2008 03:22:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/06/26/1230268.html</guid><description><![CDATA[<p>阅读: 943 评论: 6 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-06-26 11:22 <a href="http://www.cnblogs.com/rick/archive/2008/06/26/1230268.html" target="_blank">原文链接</a></p><font face="Verdana">FlexGrid</font> 控件提供了指定左侧显示列的功能。因项目的需要，要求能够指定最右侧显示的列。<br />
实现方法：<br />
获取表格客户区宽度，然后通过每列的宽度计算出水平滚动条的位置。<br />
但是有一个麻烦，就是垂直滚动条的问题。<br />
首先要能判断是否有垂直滚动条，<br />
然后有垂直滚动条时，需要减出垂直滚动条的宽度，<br />
但是控件没有提供这方面的接口。<br />
<br />
猜想控件的滚动条可能是两种情况：<br />
1。FlexGrid是复合控件，其中包含了滚动条对象。<br />
这样的话，用reflector查看一下对象命名，可以通过反射访问到内部的滚动条对象。<br />
<br />
2。是传统Win32的滚动窗体。<br />
这样的话，可以通过win32 api函数来判断。<br />
<br />
用reflector看了一下控件代码，是第二种情况。<br />
所以用win32 api来解决。<br />
用api函数<br />
<font face="Verdana">lStyle = GetWindowLong(hWnd, GWL_STYLE);<br />
获取Style然后判断<br />
Style中是否有 <font face="Verdana">WS_VSCROLL</font>。<br />
<br />
如果有就代表有 垂直滚动条。<br />
再获取 滚动条的最大值和最小值，如果相等则滚动条不可见。不相等则可见。<br />
<br />
</font>
<img src="http://www.cnblogs.com/rick/aggbug/1230268.html?type=1" width="1" height="1" alt=""/><p>评论: 6　<a href="http://www.cnblogs.com/rick/archive/2008/06/26/1230268.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/06/26/1230268.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.Net 中枚举AppDomains</title><link>http://www.cnblogs.com/rick/archive/2008/05/22/1204904.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 22 May 2008 07:26:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/05/22/1204904.html</guid><description><![CDATA[<p>阅读: 2342 评论: 6 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-05-22 15:26 <a href="http://www.cnblogs.com/rick/archive/2008/05/22/1204904.html" target="_blank">原文链接</a></p><p>.Net 框架提供的基础类库中并没有枚举AppDomains的功能，只提供了获取当前执行代码所在的AppDomain功能。</p> <p>国外一家提供.Net保护工具的，同时提供了一个AppDomain dump工具。用来证明其保护有效。</p> <p>名称就不提了，简单介绍一下其保护原理：整体加密保护，支持嵌入程序集生成单一可执行文件。</p> <p>也就是用native loader 包裹一下，仍然还是整体加密保护模式。</p> <p>但是和其它工具有一点区别。程序集整体解密后不是放在默认AppDomain中执行的，它另外创建了一个AppDomain。</p> <p>其提供的dump 工具的原理：</p> <p>注入到选择的进程，然后获取当前AppDomain，枚举AppDomain中的 程序集，直接整体dump程序集。</p> <p>这个工具可以对付大多数整体加密保护。却对付不了他们自家的。被其用来证明自己的保护效果。</p> <p>&nbsp;</p> <p>程序集一般在默认AppDomain中执行的，其注入后，获取当前appdomain得到的使默认AppDomain，所以无法枚举被加密保护的程序集。</p> <p>如果加上AppDomain的枚举功能，这个工具就可以用来对付他们自己的保护产品了。</p> <p>&nbsp;</p> <p>基础类库中并没有枚举AppDomains的功能，那是否可以在C＃中实现呢？</p> <p>答案使肯定的。基础类库没有，但是其宿主接口提供了这个功能。</p> <p>ICorRuntimeHost 接口中的两个方法</p> <p>EnumDomains 和 NextDomain 。</p> <p>具体详情可以参考 msdn。</p> <p>在C＃中怎么使用呢？</p> <p>首先添加引用</p> <p>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscoree.tlb</p> <p>路径根据实际情况来定，版本号也不一定非得要2.0.50727 只要存在 mscoree.tlb就行。</p> <p>这个接口在 1.0 中就提供了，更高的版本就不用说了。</p> <p>&nbsp; <p>IntPtr enumHandle = IntPtr.Zero; <p>CorRuntimeHostClass host = new mscoree.CorRuntimeHostClass(); <p>host.EnumDomains(out enumHandle); <p>object domain = null; <p>while (true) <p>{ <p>host.NextDomain(enumHandle, out domain); <p>if (domain == null) break; <p>AppDomain appDomain = (AppDomain)domain; <p>//******** <p>} <p>host.CloseEnum(enumHandle);  <p>Marshal.ReleaseComObject(host);   <img src="http://www.cnblogs.com/rick/aggbug/1204904.html?type=1" width="1" height="1" alt=""/><p>评论: 6　<a href="http://www.cnblogs.com/rick/archive/2008/05/22/1204904.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/05/22/1204904.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Windows 2003 上使用 Windows Live Writer</title><link>http://www.cnblogs.com/rick/archive/2008/05/19/1202735.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Mon, 19 May 2008 09:38:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/05/19/1202735.html</guid><description><![CDATA[<p>阅读: 1433 评论: 11 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-05-19 17:38 <a href="http://www.cnblogs.com/rick/archive/2008/05/19/1202735.html" target="_blank">原文链接</a></p><p>从 <a title="http://get.live.com/writer/overview" href="http://get.live.com/writer/overview">http://get.live.com/writer/overview</a>&nbsp;下载的 Live Writer，安装时说不支持 windows server。</p>
<p>从网上搜索了一下找到一个旧版的安装包。</p>
<p><a title="Install_WLWriter.exe" href="http://download.microsoft.com/download/1/e/c/1ecbf3be-298b-467c-84d8-6f86f01478d7/ZH-CN/Install_WLWriter.exe">Install_WLWriter.exe</a></p>
<p>beta3版本，虽然刚开始用的时候会提示说试用版过期，但是至少还可以用。</p>
<p>然后可以通过 windows 的 upate来更新到新版本。</p>
<p>另外也可以找一台xp sp2 先安装 live套装。</p>
<p>然后在 </p>
<p>C:\Program Files\Common Files\WindowsLiveInstaller\MsiSources</p>
<p>中找到writer的独立安装程序，是一个msi文件，注意看属性中的信息。</p>
<p>文件夹是隐藏的，需要在文件夹选项中选中 显示所有文件，然后 取消选择 隐藏受保护的系统文件。</p>
<p>把独立安装msi文件拿到 2003 里面就可以安装了。</p>
<p>&nbsp;</p>
<p>运行 live writer 就会让你配置，我的配置如下：</p>
<p>先是输入blog地址： <a href="http://www.cnblogs.com/rick/">http://www.cnblogs.com/rick/</a></p>
<p>然后是用户名和密码。</p>
<p>再就是选择 Metaweblog API</p>
<p>URL填的：<a href="http://www.cnblogs.com/rick/services/metaweblog.aspx">http://www.cnblogs.com/rick/services/metaweblog.aspx</a> </p>
<p>&nbsp;</p>
<p>有一个郁闷的地方，刚开始把密码填错了，可是提示信息说 User does not exist。</p>
<p>被这个提示误导了，找了很久都没有找到原因。最后才发现是密码错了。</p>
<p>&nbsp;</p>
<p>顺便测试一下 live writer，这篇就是用writer写的。<br />
<br />
编辑：<br />
发布后发现一些问题。<br />
1：选择的网站分类好像无效。自己博客里面的分类有效。<br />
2。好像没有摘要发布的方式。</p>
<p>3.好像也没有专题和团队的选择。</p>
 <img src="http://www.cnblogs.com/rick/aggbug/1202735.html?type=1" width="1" height="1" alt=""/><p>评论: 11　<a href="http://www.cnblogs.com/rick/archive/2008/05/19/1202735.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/05/19/1202735.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>.Net程序集的不同加载方式，以及其在内存中格式</title><link>http://www.cnblogs.com/rick/archive/2008/05/15/1199197.html</link><dc:creator>紫雨轩 .Net</dc:creator><author>紫雨轩 .Net</author><pubDate>Thu, 15 May 2008 12:33:00 GMT</pubDate><guid>http://www.cnblogs.com/rick/archive/2008/05/15/1199197.html</guid><description><![CDATA[<p>阅读: 2714 评论: 9 作者: <a href="http://www.cnblogs.com/rick/" target="_blank">紫雨轩 .Net</a> 发表于 2008-05-15 20:33 <a href="http://www.cnblogs.com/rick/archive/2008/05/15/1199197.html" target="_blank">原文链接</a></p>.Net程序集除了正常的有框架自动按需载入外，我们还可以通过反射手动载入程序集。<br />
其中反射载入程序集有一种方式就是 以字节流的方式载入程序集。而不是直接从磁盘文件载入。<br />
很多.Net压缩壳，和整体保护壳都采用了这种方式。<br />
<br />
这种方式载入的程序集和从磁盘文件载入的程序集，其内存属性是不一样的。<br />
字节流载入的内存属性是 <font face="Verdana"><span style="color: red"><font face="Verdana">MEM_MAPPED</font> </span></font>.<br />
文件方式载入的内存属性是&nbsp;&nbsp;<font face="Verdana"><span style="color: red"><font face="Verdana">MEM_IMAGE</font> </span></font>。<br />
(注：指使用api函数 <font style="color: red" face="Verdana">VirtualQuery</font> 获取的内存信息)<br />
<br />
在 .Net 1.1中 这两种内存影像的布局是一样的，都是按照pe header的sections进行了内存映射的。<br />
<br />
但是在 .Net 2.0 中这种情况变化了，字节流加载的程序集。在内存中的布局和它原始的字节流一样。没有按照pe header进行section的映射。<br />
<br />
如果要进行程序集的整体dump，就需要考虑这两种不同的加载模式。<br />
字节流加载的程序集，在获取Assembly的Location属性时会异常。<br />
<br />
加密壳加密后的程序集，如果需要兼容后续使用压缩壳或整体加密壳再次保护，也需要在运行时考虑这种情况。<br />
DNGuard 从2.6起就已经考虑处理了这种情况。<br />
<img src="http://www.cnblogs.com/rick/aggbug/1199197.html?type=1" width="1" height="1" alt=""/><p>评论: 9　<a href="http://www.cnblogs.com/rick/archive/2008/05/15/1199197.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/rick/archive/2008/05/15/1199197.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>