﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Figo Yao &#124; AI-Hack-Thinking...</title>
	<atom:link href="http://www.figoyao.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.figoyao.com/blog</link>
	<description>我也很想让世界变得更好，可是上帝却不开放源代码。</description>
	<lastBuildDate>Fri, 25 Jun 2010 01:47:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>博客新地址</title>
		<link>http://www.figoyao.com/blog/2010/04/29/1381/</link>
		<comments>http://www.figoyao.com/blog/2010/04/29/1381/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 02:20:44 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[通知]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1381</guid>
		<description><![CDATA[考虑到数据库备份稳定和搜索引擎索引，现在你看到的是旧页面的博客，新博客地址：
<a href="http://figoyao.com/">http://figoyao.com/</a>
如果你原来主要通过RSS订阅来阅读博客，RSS地址不必变动。
有什么问题可以留言也可以通过我邮箱联系：<strong>figoyao(#)gmail.com</strong>
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/29/1381/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>考虑到数据库备份稳定和搜索引擎索引，现在你看到的是旧页面的博客，新博客地址：</p>
<h2><a href="http://figoyao.com/"><span style="color: #ff0000;">http://figoyao.com/</span></a></h2>
<p>如果你原来主要通过RSS订阅来阅读博客，RSS地址不必变动。<br />
有什么问题可以留言也可以通过我邮箱联系：<strong>figoyao(#)gmail.com</strong></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/26/778/" title="请收藏备份站点网址">请收藏备份站点网址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/29/1381/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于博客今后的定位</title>
		<link>http://www.figoyao.com/blog/2010/04/29/1373/</link>
		<comments>http://www.figoyao.com/blog/2010/04/29/1373/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 01:43:24 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[中国和全球化]]></category>
		<category><![CDATA[兰德公司]]></category>
		<category><![CDATA[博客定位]]></category>
		<category><![CDATA[屁民]]></category>
		<category><![CDATA[思考]]></category>
		<category><![CDATA[改革开放]]></category>
		<category><![CDATA[知识产权]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1373</guid>
		<description><![CDATA[<p>本次升级博客原因有：</p>
<p>1）、访问速度和稳定性问题；</p>
<p>2）、<a href="http://figoyao.com">博客重新定位</a>问题，这个问题是由<a href="http://www.lingcc.com/2010/04/27/10782/" target="_blank">lingcc同学的文章</a>以及<a href="http://www.rand.org" target="_blank">兰德公司</a>的这份2005年的报告《<a href="http://www.rand.org/pubs/testimonies/2005/RAND_CT244.chinese.pdf" target="_blank">中国和全球化</a>》引发的：<strong>我的博客要何去何从</strong>；<strong>这么些年来我对1949年后大陆政府的评价是否真的如我以为的那么较为客观</strong>，虽然，共产党人可能没有意识到他们80年代的开放政策和逐渐融入全球的做法的对全球的深刻意义，但是，我们看到了他们的迷茫、困顿以及人性中的种种黑暗。兰德公司这份报告大部分写的比较客观：[......]</p><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/29/1373/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>本次升级博客原因有：</p>
<p>1）、访问速度和稳定性问题；</p>
<p>2）、<a href="http://figoyao.com">博客重新定位</a>问题，这个问题是由<a href="http://www.lingcc.com/2010/04/27/10782/" target="_blank">lingcc同学的文章</a>以及<a href="http://www.rand.org" target="_blank">兰德公司</a>的这份2005年的报告《<a href="http://www.rand.org/pubs/testimonies/2005/RAND_CT244.chinese.pdf" target="_blank">中国和全球化</a>》引发的：<strong>我的博客要何去何从</strong>；<strong>这么些年来我对1949年后大陆政府的评价是否真的如我以为的那么较为客观</strong>，虽然，共产党人可能没有意识到他们80年代的开放政策和逐渐融入全球的做法的对全球的深刻意义，但是，我们看到了他们的迷茫、困顿以及人性中的种种黑暗。兰德公司这份报告大部分写的比较客观：<span id="more-1373"></span>“&#8230;中国的崛起所产生的最重要的结果与美国崛起以及日本和欧洲经济 复苏对世界的作用是一样的。比起和一个贫民窟的人做邻居，你和一个富人做邻 居将会变得更加富有&#8230;中国的知识产权问题与印度和俄罗斯的问题没有什么不同。但是，中国的规模和效率，以及外国直接投资的程度都将这个问题放大了。事实上，中国造成的知识产权方面的损失与其它主要新兴市场造成的损失差不多。对我们来说，强烈谴责对知识产权的滥用是合理的。惩罚坏的行为，奖励好的行为也是恰当的。但是，保持一种历史的眼光看待问题也是有用的。&#8230;从中期来看中国面临着严峻的挑战。它的银行是我们所知道的世界上最糟糕的银行。中国的每一代人，都有相当于美国规模的人口从农村涌入城市。每年，都有1200—1300 万新工人加入就业大军。在制造业，生产力对就业的影响比我们国家要严重得多。所有这些人都需要工作。在相当长的时期里，中国的高增长只能通过中国领导人英雄式的改革措施得以维持。如果中国权力穿透了这些问题，到2020 年，中国人口老龄化会使工作与非工作人口的比率成为世界上最糟糕的，包括日本在内。那就是说，如果没有奇迹般的新政策的话，中国的经济在那个时期就会碰壁。到2020 年，以我们的标准来看，它仍会是一个非常贫穷的国家。即使他们的成功保持到了那个时候，他们也不会控制世界&#8230;”</p>
<p>博客中写那么多改变不了的事情又有何益呢？包括上个月因为外挂教程莫名其妙收到某公司的律师函，我表现出了一个<strong>中华P民</strong>应有的素养。我不是文人骚客，只是个小技术员而已，我也不喜欢无病呻吟式的博客，当然，韩寒式社会杂谈的博客已经有了太多太多，批评和挑刺较之出谋划策容易得多，虽然政府现在还不大会听取你我的声音。</p>
<p>我打算把这个博客做成一个较为单纯的技术博客：写写教程，讨论讨论信息安全，DIY一些小电子器物等，会是今后博客的方向，希望你们能够喜欢：）</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/10/1029/" title="不要勉强用奔3的CPU跑Win7的系统">不要勉强用奔3的CPU跑Win7的系统</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/29/1373/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关于613地震“谣言”我的看法</title>
		<link>http://www.figoyao.com/blog/2010/04/27/1368/</link>
		<comments>http://www.figoyao.com/blog/2010/04/27/1368/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 04:56:49 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[叫兽]]></category>
		<category><![CDATA[地震]]></category>
		<category><![CDATA[地震局]]></category>
		<category><![CDATA[地震预测]]></category>
		<category><![CDATA[砖家]]></category>
		<category><![CDATA[谣言]]></category>
		<category><![CDATA[预报]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1368</guid>
		<description><![CDATA[<p>最初的“谣言”传播者是<a href="http://news.163.com/10/0426/08/656E49H200014AEE.html" target="_blank">陕西咸阳的两名学生</a>，并且后来衍生了很多版本：<a href="http://news.163.com/10/0427/06/658MJD0R000146BD.html" target="_blank">新乡地震版</a>，<a href="http://news.163.com/10/0427/02/658C16VJ00014AED.html" target="_blank">南京地震版</a>，<a href="http://news.163.com/10/0426/08/656BLJP100014AEE.html" target="_blank">佛山地震版</a>等等。</p>
<p>首先我们从地震局的角度来考虑，认为这属于谣言，那么，最初的造谣者在考虑编造日期的时候估计是把2008年512地震的日期顺次加一【(<strong>5</strong>+1)月(<strong>12</strong>+1)日】即可得到613，其实按照这个思路今年距离08年已经2年的话，也可以预测地震将在7月14日发生：），至于地点的选择，按照<a href="http://zh.wikipedia.org/zh-cn/%E7%8A%AF%E7%BD%AA%E5%BF%83%E7%90%86%E5%AD%B8" target="_blank">犯罪心理学</a>的理论，一般会选择自己熟悉的地方，如现居住地或成长地等等。<br />
[......]</p><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/27/1368/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>最初的“谣言”传播者是<a href="http://news.163.com/10/0426/08/656E49H200014AEE.html" target="_blank">陕西咸阳的两名学生</a>，并且后来衍生了很多版本：<a href="http://news.163.com/10/0427/06/658MJD0R000146BD.html" target="_blank">新乡地震版</a>，<a href="http://news.163.com/10/0427/02/658C16VJ00014AED.html" target="_blank">南京地震版</a>，<a href="http://news.163.com/10/0426/08/656BLJP100014AEE.html" target="_blank">佛山地震版</a>等等。</p>
<p>首先我们从地震局的角度来考虑，认为这属于谣言，那么，最初的造谣者在考虑编造日期的时候估计是把2008年512地震的日期顺次加一【(<strong>5</strong>+1)月(<strong>12</strong>+1)日】即可得到613，其实按照这个思路今年距离08年已经2年的话，也可以预测地震将在7月14日发生：），至于地点的选择，按照<a href="http://zh.wikipedia.org/zh-cn/%E7%8A%AF%E7%BD%AA%E5%BF%83%E7%90%86%E5%AD%B8" target="_blank">犯罪心理学</a>的理论，一般会选择自己熟悉的地方，如现居住地或成长地等等。<br />
<span id="more-1368"></span><br />
其次，我们冷静客观的看下这些不断的所谓谣言。因为中国地震局的砖家一次次强调<a href="http://news.163.com/10/0415/17/64B17ENI000146BC.html" target="_blank">地震不可预测</a>，既然不可预测的话，那么将来的任何时刻都可能发生地震，所以谣言的说法是地震局自己扇自己耳光。日本的地震预警系统做的比较完善了已经，可以参考<a href="http://www.zaobao.com/special/newspapers/2008/06/lhwb080615a.shtml" target="_blank">这条</a>，<a href="http://news.ifeng.com/opinion/world/detail_2010_04/24/1320062_0.shtml" target="_blank">这条</a>和<a href="http://news.sciencenet.cn/htmlnews/2010/4/231247.shtm" target="_blank">这条</a>报道。热爱日本动漫的人如果留意的话，一定会注意到有时候视频中会有地震预警的<a href="http://zhidao.baidu.com/question/129290385.html" target="_blank">紧急通知</a>。这说明预警是可以做到的，大地震前的十几秒足够大部分人逃离到安全地带，如果建筑物符合抗震标准的话，我们不需要死这么多人的，难道中国老百姓的命就不是命吗？！</p>
<p>最后，我们来探讨下地震预测的可能性。如果要预测一件事情，这件事要么得是规律性出现，如日食、月食、流星雨等；要么得属于<a href="http://zh.wikipedia.org/zh/%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E9%93%BE" target="_blank">马尔科夫链</a>的范畴。就后一种情况，通俗一点说，比如民间关于地震征兆的总结：地下水的变化，如井水变混等；穴居动物的异常，如蛇、老鼠、蚯蚓等等异常活动；家畜的异常，如狗乱吠、骡子乱跳等等。这说明地震之前的征兆是确实存在的，中国人有句老话，叫做“要想人不知，除非己莫为”，用在地震预报上也是一个道理。我们已经可以预测天气，虽然预测的精度和准确度还不尽如人意，但我们是承认可以预报天气的，这说明地震也是可预报的，因为所有宣称不可预报的人的观点可类似的移植到天气不可预报上，但天气是可以预报的。我最烦那种把老百姓都看的懂听的明白的事情用一堆专业术语和符号搞得大部分人不明白的所谓砖家，因为大道至简。之所以现在没人敢站出来说地震可以预报是因为地震预报的精度和准确度要求比天气预报要高很多，没人愿意承担责任并且发布消息后产生的社会成本较高：如大规模转移百姓。以当今天朝无能政府的表现来看，建筑监管食品监管都可以不闻不问，我们别奢望它能为人民服务。</p>
<p>我知道的，目前有人在尝试通过卫星云图来分析地震等自然灾害的可能性，感兴趣的可以<a href="http://blog.sina.com.cn/windbank" target="_blank">去他博客看看</a>。</p>
<p>这个世界上有很多阴谋，你就肯定这个地震预报是世界难题不是国内外所谓砖家的阴谋吗？那些真的做出成果的人却常年被打压，这种事情不是没有可能。</p>
<p><strong><span style="color: #ff0000;">以上观点仅供参考。</span></strong></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2009/12/02/64/" title="游戏辅助工具开发教程-从入门到精通之A1_4篇">游戏辅助工具开发教程-从入门到精通之A1_4篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/11/1043/" title="CrazyData小游戏源码">CrazyData小游戏源码</a></li><li><a href="http://www.figoyao.com/blog/2010/01/06/441/" title="青春太宝贵，千万别浪费！">青春太宝贵，千万别浪费！</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/703/" title="第二次被封杀">第二次被封杀</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/27/1368/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-04-25</title>
		<link>http://www.figoyao.com/blog/2010/04/25/1365/</link>
		<comments>http://www.figoyao.com/blog/2010/04/25/1365/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 14:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/04/25/1365/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>zz&#34;将军的儿子能成为元帅吗？&#34; &#34;不可能。因为元帅都有儿子&#34; <a href="http://twitter.com/figoyao/statuses/12612310796" class="aktt_tweet_time">#</a></li>
<li>英雄迟暮,美女发福&#8230; <a href="http://twitter.com/figoyao/statuses/12628936896" class="aktt_tweet_time">#</a></li>
<li>关于中俄国界东段的补充协定 <a href="http://twitter.com/figoyao/statuses/12855478345" class="aktt_tweet_time">#</a></li>
</ul>
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Wee[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/25/1365/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>zz&quot;将军的儿子能成为元帅吗？&quot; &quot;不可能。因为元帅都有儿子&quot; <a href="http://twitter.com/figoyao/statuses/12612310796" class="aktt_tweet_time">#</a></li>
<li>英雄迟暮,美女发福&#8230; <a href="http://twitter.com/figoyao/statuses/12628936896" class="aktt_tweet_time">#</a></li>
<li>关于中俄国界东段的补充协定 <a href="http://twitter.com/figoyao/statuses/12855478345" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1118/" title="Twitter Weekly Updates for 2010-02-28">Twitter Weekly Updates for 2010-02-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/25/1365/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows网络编程技术[一]</title>
		<link>http://www.figoyao.com/blog/2010/04/25/1352/</link>
		<comments>http://www.figoyao.com/blog/2010/04/25/1352/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 12:24:03 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[MAC]]></category>
		<category><![CDATA[WAN]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[主机信息]]></category>
		<category><![CDATA[公网IP]]></category>
		<category><![CDATA[地址]]></category>
		<category><![CDATA[外网IP]]></category>
		<category><![CDATA[网卡]]></category>
		<category><![CDATA[网络编程]]></category>
		<category><![CDATA[适配器]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1352</guid>
		<description><![CDATA[<p>作者：<a href="http://www.figoyao.com" target="_blank">Figo</a></p>
<p>从今天起，我们开始Windows平台下网络编程的学习。本篇主要讲解网络基础知识和本地主机网络相关信息查看涉及的API使用：<br />
<img class="alignnone size-full wp-image-1355" title="IP View" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/IP-View.jpg" alt="IP View" width="401" height="237" /></p>
<p>在开始进入后面的实际编程之前，首先需要掌握一些网络基本知识：如TCP/IP协议中网络分为层，应用层协议都有哪些等等。因为时间关系，我不可能巨细无遗的把所有知识都说明，所以更多的还要靠自己去<a href="http://www.google.com/" target="_blank">Google</a>和<a href="http://book.douban.com/subject/1088054/" target="_blank">看书</a>。</p>
<p>在Windows中，获取和设定本地网络配置信息的API集是<a href="http://www.google.com/search?q=IP+Helper" target="_blank">IP Helper</a>，下面我以GetIfTable函数为例讲解它们的用法，[......]</p><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/25/1352/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.figoyao.com" target="_blank">Figo</a></p>
<p>从今天起，我们开始Windows平台下网络编程的学习。本篇主要讲解网络基础知识和本地主机网络相关信息查看涉及的API使用：<br />
<img class="alignnone size-full wp-image-1355" title="IP View" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/IP-View.jpg" alt="IP View" width="401" height="237" /></p>
<p>在开始进入后面的实际编程之前，首先需要掌握一些网络基本知识：如TCP/IP协议中网络分为层，应用层协议都有哪些等等。因为时间关系，我不可能巨细无遗的把所有知识都说明，所以更多的还要靠自己去<a href="http://www.google.com/" target="_blank">Google</a>和<a href="http://book.douban.com/subject/1088054/" target="_blank">看书</a>。</p>
<p>在Windows中，获取和设定本地网络配置信息的API集是<a href="http://www.google.com/search?q=IP+Helper" target="_blank">IP Helper</a>，下面我以GetIfTable函数为例讲解它们的用法，<span id="more-1352"></span>其他函数的使用大同小异。</p>
<pre class="brush: cpp;">
//...figoyao.com
//适配器信息结构定义
typedef struct _FADAPTER_INFO
{
	//接口列表次序
	DWORD dwOrder;

	//接口内部索引号
	DWORD dwIndex;
	//接口名称描述
	char szName[MAX_INTERFACE_NAME_LEN];
	//接口类型[本地回路/无线网卡/以太网卡/]
	char szAdapterType[64];
	//接口速度[Mbps为单位]
	DWORD dwSpeed_Mbps;

	//物理地址FF-FF-FF-FF-FF-FF
	char szMAC_Addr[32];
	//连接状态信息
	char szOperStatus[64];

	//发送和接收数据[bytes]
	DWORD dwOUTData;
	DWORD dwINData;

	//IP地址和子网掩码
	char szIP[32];
	char szSubMask[32];

}FADAPTER_INFO,*PFADAPTER_INFO;
</pre>
<p>下面的代码片段是获取适配器信息过程：</p>
<pre class="brush: cpp;">
//...figoyao.com
//获取网卡详细信息
				PMIB_IFTABLE pstIfTable = NULL;
				ULONG ulIfTable = 0;
				GetIfTable(NULL,&amp;ulIfTable,TRUE);
				pstIfTable = (PMIB_IFTABLE)MALLOC(ulIfTable);
				if (NULL == pstIfTable)
				{
					MessageBox(hwnd,&quot;(PMIB_IFTABLE)MALLOC(ulIfTable)失败&quot;,&quot;错误&quot;,MB_OK|MB_ICONERROR);
					SendMessage(hwnd,WM_CLOSE,0,0);
				}
				DWORD dwGetIfTableRet = GetIfTable(pstIfTable,&amp;ulIfTable,TRUE);
				if (NO_ERROR == dwGetIfTableRet)
				{
					if (pstIfTable-&gt;dwNumEntries != dwNumOfMac)
					{
						MessageBox(hwnd,&quot;请报告你的Windows系统版本&quot;,&quot;错误&quot;,MB_OK|MB_ICONERROR);
						SendMessage(hwnd,WM_CLOSE,0,0);
					}
					for (DWORD dwCnt = 0;dwCnt &lt; pstIfTable-&gt;dwNumEntries;dwCnt++)
					{
						//索引号赋值[以0为起始]
						pstAdapterInfo[dwCnt]-&gt;dwOrder = dwCnt;
						pstAdapterInfo[dwCnt]-&gt;dwIndex = pstIfTable-&gt;table[dwCnt].dwIndex;
						pstAdapterInfo[dwCnt]-&gt;dwSpeed_Mbps = pstIfTable-&gt;table[dwCnt].dwSpeed/1000000;
						switch(pstIfTable-&gt;table[dwCnt].dwType)
						{
							//以太网适配器
							case IF_TYPE_ETHERNET_CSMACD:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;以太网适配器&quot;);
							}
							break;

							//令牌环适配器
							case IF_TYPE_ISO88025_TOKENRING:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;令牌环适配器&quot;);
							}
							break;

							//点到点协议适配器
							case IF_TYPE_PPP:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;点到点协议适配器&quot;);
							}
							break;

							//An IEEE 802.11 wireless network interface
						case IF_TYPE_IEEE80211:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;IEEE 802.11无线网络适配器&quot;);
							}
							break;

							//A tunnel type encapsulation network interface.
						case IF_TYPE_TUNNEL:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;管道网络适配器&quot;);
							}
							break;

							//An ATM network interface.
						case IF_TYPE_ATM:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;ATM网络适配器&quot;);
							}
							break;

							//A software loopback network interface.
						case IF_TYPE_SOFTWARE_LOOPBACK:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;软件回路适配器&quot;);
							}
							break;

							//An IEEE 1394 (Firewire) high performance serial bus network interface.
						case IF_TYPE_IEEE1394:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;IEEE 1394高性能串口适配器&quot;);
							}
							break;

						//光纤接口适配器
						case MIB_IF_TYPE_FDDI:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;光纤接口适配器&quot;);
							}
							break;

							//串行适配器(Serial Line Interface Protocol)
						case MIB_IF_TYPE_SLIP:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;串行适配器(Serial Line Interface Protocol)&quot;);
							}
							break;

						default:
							{
								sprintf(pstAdapterInfo[dwCnt]-&gt;szAdapterType,&quot;其他类型适配器&quot;);
							}
							break;
						}

						//接口描述
						sprintf(pstAdapterInfo[dwCnt]-&gt;szName,&quot;%d-&gt;%s&quot;,dwCnt+1,pstIfTable-&gt;table[dwCnt].bDescr);
						SendMessage(GetDlgItem(hwnd,IDC_CMB_ADAPTER),CB_ADDSTRING,0,(LPARAM)pstAdapterInfo[dwCnt]-&gt;szName);
						//物理地址
						if (0 == pstIfTable-&gt;table[dwCnt].dwPhysAddrLen)
						{
							sprintf(pstAdapterInfo[dwCnt]-&gt;szMAC_Addr,&quot;00-00-00-00-00-00&quot;);
						}
						else
						{
							for (int j = 0;j &lt; pstIfTable-&gt;table[dwCnt].dwPhysAddrLen;j++)
							{
								char szMACStr[6] = &quot;&quot;;
								if (j != pstIfTable-&gt;table[dwCnt].dwPhysAddrLen - 1)
								{
									sprintf(szMACStr,&quot;%02x-&quot;,pstIfTable-&gt;table[dwCnt].bPhysAddr[j]);
								}
								else
								{
									sprintf(szMACStr,&quot;%02x&quot;,pstIfTable-&gt;table[dwCnt].bPhysAddr[j]);
								}
								strcat(pstAdapterInfo[dwCnt]-&gt;szMAC_Addr,szMACStr);
							}
						}
						//收发数据[bytes]
						pstAdapterInfo[dwCnt]-&gt;dwINData = pstIfTable-&gt;table[dwCnt].dwInOctets;
						pstAdapterInfo[dwCnt]-&gt;dwOUTData = pstIfTable-&gt;table[dwCnt].dwOutOctets;
					}
				}
				else
				{
					char szTmpGetIfTableRet[32] = &quot;&quot;;
					sprintf(szTmpGetIfTableRet,&quot;[错误代码:%d]GetIfTable失败&quot;,dwGetIfTableRet);
					MessageBox(hwnd,szTmpGetIfTableRet,&quot;错误&quot;,MB_OK|MB_ICONERROR);
					SendMessage(hwnd,WM_CLOSE,0,0);
				}
			}
			else
			{
				MessageBox(hwnd,&quot;适配器接口数量获取失败&quot;,&quot;错误&quot;,MB_OK|MB_ICONERROR);
				SendMessage(hwnd,WM_CLOSE,0,0);
			}
//.............
</pre>
<p>外网IP获取部分，这里的方法是通过访问一个脚本获取，通过<a href="http://figoyao.com/pip.php" target="_blank">http://figoyao.com/pip.php</a>即可获取客户端IP地址，在这个地址失败后，尝试<a href="http://figo.oni.cc/pip.php" target="_blank">http://figo.oni.cc/pip.php</a>，如果依旧失败则不再尝试：</p>
<pre class="brush: cpp;">
//...figoyao.com
/********************************************
*函数功能:
*获取本地主机在外网的IP地址
*入口参数:
*_out szPIP 接收外网IP的字符串地址
*
*返回值:
*成功:TRUE
*失败:FALSE
*
*注解:
*无
********************************************/
BOOL GetWANIPAddr(char *szPIP)
{
	//1.1.1.1
	if (NULL == szPIP)
	{
		return FALSE;
	}

	//检测网络状态
	char szUrl[] = &quot;http://www.baidu.com&quot;;
	BOOL bState = InternetCheckConnection(szUrl,FLAG_ICC_FORCE_CONNECTION,0);
	if (FALSE == bState)
	{
		return FALSE;
	}

	//获取公网IP的网址及备份网址
	char szPIPUrl_Bak[] = &quot;http://figoyao.com/pip.php&quot;;
	char szPIPUrl[] = &quot;http://figo.oni.cc/pip.php&quot;;

	char szUserAgent[] = &quot;figoyao/10.25 (Windows; U; Windows NT 6.4; zh-CN; rv:1.8.9) China/20121222&quot;;
	//创建会话
	HINTERNET hSession = InternetOpen(szUserAgent,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
	if (NULL == hSession)
	{
		return FALSE;
	}

	HINTERNET hOpenUrl = NULL;
	char szRequesHeader[] = &quot;Accept: text/html\r\n&quot;;

	hOpenUrl = InternetOpenUrl(hSession,szPIPUrl,szRequesHeader,strlen(szRequesHeader),\
		INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_RELOAD,0);

	if (NULL == hOpenUrl)
	{
		//如果打开第一个网址失败则尝试通过备份网址获取公网IP
		hOpenUrl = InternetOpenUrl(hSession,szPIPUrl_Bak,szRequesHeader,strlen(szRequesHeader),\
			INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_RELOAD,0);
		if (NULL == hOpenUrl)
		{
			if (hSession)
			{
				InternetCloseHandle(hSession);
			}
			return FALSE;
		}
		goto getpip;
	}

getpip:
	{
		//一次调用从服务器读取数据
		DWORD dwNumOfBufRead = 0;
		char lpGetIPBuf[32] = &quot;&quot;;
		BOOL bReadFile = InternetReadFile(hOpenUrl,lpGetIPBuf,32,&amp;dwNumOfBufRead);

		//检测读取的地址是否符合要求
		if (dwNumOfBufRead &gt; 32 || FALSE == bReadFile)
		{
			if (hSession)
			{
				InternetCloseHandle(hSession);
			}
			if (hOpenUrl)
			{
				InternetCloseHandle(hOpenUrl);
			}
			return FALSE;
		}

	//	memset(szPIP,0,sizeof(szPIP));
		DWORD dwTmpIPLen = strlen(lpGetIPBuf);
		//接收的数据是以0+\r\n\r\n结尾,故减去5
		strncpy(szPIP,lpGetIPBuf,dwTmpIPLen-5);
	}

	if (hSession)
	{
		InternetCloseHandle(hSession);
	}
	if (hOpenUrl)
	{
		InternetCloseHandle(hOpenUrl);
	}
	return TRUE;
}
</pre>
<p>程序在Windows7测试未通过，但是控制台版本的没问题，究竟是何原因暂时没有深究。<strong>这次是使用VS2003编译的</strong>。</p>
<p>源码：<a href="http://figoyao.com/blog/file/HostInfo.rar" target="_blank">点击下载</a></p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/04/25/1352" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/04/25/1352</span></a></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/12/08/152/" title="程序员的幽默">程序员的幽默</a></li><li><a href="http://www.figoyao.com/blog/2010/03/20/1196/" title="一切尽在不言中">一切尽在不言中</a></li><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅地址</a></li><li><a href="http://www.figoyao.com/blog/2009/12/31/285/" title="游戏辅助工具开发教程-从入门到精通之A3_5篇">游戏辅助工具开发教程-从入门到精通之A3_5篇</a></li><li><a href="http://www.figoyao.com/blog/2010/04/14/1315/" title="一切如常">一切如常</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/25/1352/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>折腾无极限</title>
		<link>http://www.figoyao.com/blog/2010/04/24/1338/</link>
		<comments>http://www.figoyao.com/blog/2010/04/24/1338/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 00:57:34 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[制作]]></category>
		<category><![CDATA[探照灯]]></category>
		<category><![CDATA[极客]]></category>
		<category><![CDATA[电子窗户]]></category>
		<category><![CDATA[科技]]></category>
		<category><![CDATA[虚拟3D]]></category>
		<category><![CDATA[虚拟现实]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1338</guid>
		<description><![CDATA[<p>[......]</p><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/24/1338/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><span id="more-1338"></span>首先来看一个<strong>小型探照灯</strong>的制作过程：<br />
<img class="alignnone size-full wp-image-1339" title="探照灯制作" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/500-led-flashlight.jpg" alt="探照灯制作" width="470" height="359" /><br />
<span style="color: #0000ff;">视频如下</span>：<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTQ0NzE2=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTQ0NzE2=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>其次看看所谓<strong>虚拟3D设备</strong>的手工实现，虽然这个人肩膀上扛着显示器的样子有些滑稽，但是苹果电脑当年诞生之初不也是同样的场景吗：<br />
<img class="alignnone size-full wp-image-1341" title="虚拟3D设备" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/picture-181-600x450.jpg" alt="虚拟3D设备" width="600" height="450" /></p>
<p><span style="color: #0000ff;">视频如下</span>：<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTQ2NzA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTQ2NzA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>最后看看一个<strong>虚拟窗户</strong>是如何实现的：<br />
<img class="alignnone size-full wp-image-1344" title="虚拟窗户" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/Windows_video.jpg" alt="虚拟窗户" width="600" height="338" /><br />
视频如下：<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTUwODc2=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTY3NTUwODc2=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>前几天买了500g硝酸钾[15元]动手制作烟雾弹，与学习编程的结论一样：理论和实践之间的距离是动手。不知道是在化工店买的那瓶硝酸钾的品质问题还是手艺问题，反正过程和网上说的不太一样，但是总算是冒了大量的烟雾：）</p>
<p>当房价回归到正常的时候，可怜的中华民族中的创造力才会爆发出来，不是我们爱好山寨，而是因为我们生活在一个贫穷的专制国家。最后用狄更斯的一段话作为结尾：<br />
It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way.<br />
<em>参考译文</em>：<br />
这是最好的时期，这是最坏的时期；这是智慧的岁月，这是愚昧的岁月；这是信仰坚定的时代，这是怀疑一切的时代；这是光明的季节，这是黑暗的季节；这是希望之春，这是绝望之冬；人们应有尽有，人们一无所有；人们直登天堂，人们径堕地狱。</p>
<p>转载注明出处：<a href="http://www.figoyao.com/blog/2010/04/24/1338" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/04/24/1338</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/24/1338/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>附件似乎丢失严重</title>
		<link>http://www.figoyao.com/blog/2010/04/24/1331/</link>
		<comments>http://www.figoyao.com/blog/2010/04/24/1331/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 23:18:24 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[解决办法]]></category>
		<category><![CDATA[通告]]></category>
		<category><![CDATA[附件丢失]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1331</guid>
		<description><![CDATA[<p>我原先是在千脑上存放附件，前些日子这个服务供应商在调整线路，说是有些文件会暂时不可访问，但是过了这么久了，似乎没有休整完毕的样子，比如IME文档的下载地址：<a href="http://down.qiannao.com/space/file/figoyao/share/ime_docs.rar/.page" target="_blank">http://down.qiannao.com/space/file/figoyao/share/ime_docs.rar/.page</a>，进去后会发现无法下载：<br />
<img class="alignnone size-full wp-image-1332" title="qiannao_tmp" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/qiannao_tmp.jpg" alt="qiannao_tmp" width="199" height="202" /></p>
<p>[......]</p><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/24/1331/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>我原先是在千脑上存放附件，前些日子这个服务供应商在调整线路，说是有些文件会暂时不可访问，但是过了这么久了，似乎没有休整完毕的样子，比如IME文档的下载地址：<a href="http://down.qiannao.com/space/file/figoyao/share/ime_docs.rar/.page" target="_blank">http://down.qiannao.com/space/file/figoyao/share/ime_docs.rar/.page</a>，进去后会发现无法下载：<br />
<img class="alignnone size-full wp-image-1332" title="qiannao_tmp" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/qiannao_tmp.jpg" alt="qiannao_tmp" width="199" height="202" /></p>
<p><span id="more-1331"></span>我原来是用着<a href="http://sites.google.com/" target="_blank">Google Site</a>存放文件，可是伟大的正确的英明的无敌的XXX统治下的傀儡政府把Google扫出了大陆，结果就是访问失败：<br />
<img class="alignnone size-full wp-image-1333" title="googlesite" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/googlesite.jpg" alt="googlesite" width="474" height="161" /><br />
<img class="alignnone size-full wp-image-1334" title="fuckgfw" src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/fuckgfw.jpg" alt="fuckgfw" width="375" height="278" /></p>
<p>我近期会把附件集中整理一下，然后提供新的稳定的地址供大家下载。最近正在写Windows网络编程部分的教程，会尽快放出，稍安勿躁：）</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/703/" title="第二次被封杀">第二次被封杀</a></li><li><a href="http://www.figoyao.com/blog/2010/03/20/1196/" title="一切尽在不言中">一切尽在不言中</a></li><li><a href="http://www.figoyao.com/blog/2009/12/29/245/" title="I am back">I am back</a></li><li><a href="http://www.figoyao.com/blog/2010/01/23/765/" title="冷笑话">冷笑话</a></li><li><a href="http://www.figoyao.com/blog/2009/11/28/34/" title="游戏辅助工具开发教程-从入门到精通之A1_1篇">游戏辅助工具开发教程-从入门到精通之A1_1篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/24/1331/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Looking Ahead to 2020</title>
		<link>http://www.figoyao.com/blog/2010/04/21/1321/</link>
		<comments>http://www.figoyao.com/blog/2010/04/21/1321/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 07:45:32 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[Research at Google]]></category>
		<category><![CDATA[展望]]></category>
		<category><![CDATA[演讲]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1321</guid>
		<description><![CDATA[<p>看来2012确实是个谣言啊~下面请观看演讲《我眼中的2020》：</p>
<p><object id="Main" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="271" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&#38;flv=mitw-01111-esd-int-symposium-pt5-ahead-to-2020-rouse-16jun2009&#38;preview=http://mitworld.mit.edu//uploads/mitwstill01111esdintsymposiumpt5aheadto2020rouse16jun2009.jpg" /><param name="name" value="Main" /><embed id="Main" type="application/x-shockwave-flash" width="481" height="271" src="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&#38;flv=mitw-01111-esd-int-symposium-pt5-ahead-to-2020-rouse-16jun2009&#38;preview=http://mitworld.mit.edu//uploads/mitwstill01111esdintsymposiumpt5aheadto2020rouse16jun2009.jpg" name="Main" bgcolor="#000000" quality="high" allowscriptaccess="always" align="middle"></embed></object></p>
<p>华盛顿大学的这个<strong>Research at Google</strong>也不错，可以<a title="Research at Google" href="http://www.figoyao.com/Research_at_Google.wmx" target="_blank">点击观看</a>[需要安装<a href="http://www.onlinedown.net/soft/3336.htm" target="_blank">Windows Media Player</a>]。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/697/" title="克林顿国务卿关于互联网自由的讲话">克林顿国务卿关于互联网自由的讲话</a></li><li><a href="http://www.figoyao.com/blog/2010/01/01/261/" title="2010年的碎碎念">2010年的碎碎念</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>看来2012确实是个谣言啊~下面请观看演讲《我眼中的2020》：</p>
<p><object id="Main" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="271" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="src" value="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&amp;flv=mitw-01111-esd-int-symposium-pt5-ahead-to-2020-rouse-16jun2009&amp;preview=http://mitworld.mit.edu//uploads/mitwstill01111esdintsymposiumpt5aheadto2020rouse16jun2009.jpg" /><param name="name" value="Main" /><embed id="Main" type="application/x-shockwave-flash" width="481" height="271" src="http://mitworld.mit.edu/flash/player/Main.swf?host=cp58255.edgefcs.net&amp;flv=mitw-01111-esd-int-symposium-pt5-ahead-to-2020-rouse-16jun2009&amp;preview=http://mitworld.mit.edu//uploads/mitwstill01111esdintsymposiumpt5aheadto2020rouse16jun2009.jpg" name="Main" bgcolor="#000000" quality="high" allowscriptaccess="always" align="middle"></embed></object></p>
<p>华盛顿大学的这个<strong>Research at Google</strong>也不错，可以<a title="Research at Google" href="http://www.figoyao.com/Research_at_Google.wmx" target="_blank">点击观看</a>[需要安装<a href="http://www.onlinedown.net/soft/3336.htm" target="_blank">Windows Media Player</a>]。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/697/" title="克林顿国务卿关于互联网自由的讲话">克林顿国务卿关于互联网自由的讲话</a></li><li><a href="http://www.figoyao.com/blog/2010/01/01/261/" title="2010年的碎碎念">2010年的碎碎念</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/21/1321/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://www.figoyao.com/Research_at_Google.wmx" length="294" type="video/x-ms-wmx" />
		</item>
		<item>
		<title>唐骏《我行我素》</title>
		<link>http://www.figoyao.com/blog/2010/04/17/1318/</link>
		<comments>http://www.figoyao.com/blog/2010/04/17/1318/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 10:28:09 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1318</guid>
		<description><![CDATA[<img src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/tangjun.jpg" alt="tangjun" title="tangjun" width="300" height="412" class="alignnone size-full wp-image-1319" />
今年年底或明年初可能上映，客串名单：冯仑、俞敏洪、马云、王石、李开复、潘石屹、张朝阳、李彦宏……
马云饰演一个人力资源总监，俞敏洪卖盒饭，唐骏是保安：值得期待的喜剧。
btw:
马上回归技术流：）
随机日志<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2009/12/29/245/" title="I am back">I am back</a></li><li><a href="http://www.figoyao.com/blog/2009/12/05/124/" title="游戏辅助工具开发教程-从入门到精通之A2_1篇">游戏[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/17/1318/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.figoyao.com/blog/wp-content/uploads/2010/04/tangjun.jpg" alt="tangjun" title="tangjun" width="300" height="412" class="alignnone size-full wp-image-1319" /><br />
今年年底或明年初可能上映，客串名单：冯仑、俞敏洪、马云、王石、李开复、潘石屹、张朝阳、李彦宏……<br />
马云饰演一个人力资源总监，俞敏洪卖盒饭，唐骏是保安：值得期待的喜剧。</p>
<p>btw:<br />
马上回归技术流：）</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/697/" title="克林顿国务卿关于互联网自由的讲话">克林顿国务卿关于互联网自由的讲话</a></li><li><a href="http://www.figoyao.com/blog/2009/12/11/197/" title="游戏辅助工具开发教程-从入门到精通之A3_1篇">游戏辅助工具开发教程-从入门到精通之A3_1篇</a></li><li><a href="http://www.figoyao.com/blog/2010/04/24/1338/" title="折腾无极限">折腾无极限</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/01/04/361/" title="[征求意见]关于实战讲解部分内容">[征求意见]关于实战讲解部分内容</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/17/1318/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>一切如常</title>
		<link>http://www.figoyao.com/blog/2010/04/14/1315/</link>
		<comments>http://www.figoyao.com/blog/2010/04/14/1315/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 11:09:39 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[无题]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1315</guid>
		<description><![CDATA[<p>RT<br />
如果按照<a href="http://dancyhuhu.spaces.live.com" target="_blank">小宠物</a>同学的风格应该叫做无题:-)</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/21/1073/" title="Twitter Weekly Updates for 2010-02-21">Twitter Weekly Updates for 2010-02-21</a></li><li><a href="http://www.figoyao.com/blog/2010/02/08/977/" title="写了个小游戏让大家练练手">写了个小游戏让大家练练手</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/697/" title="克林顿国务卿关于互联网自由的讲话">克林顿国务卿关于互联网自由的讲话</a></li><li><a href="http://www.figoyao.com/blog/2010/04/06/1313/" title="[水木社区]国内、美国及香港对比">[水木社区]国内、美国及香港对比</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>RT<br />
如果按照<a href="http://dancyhuhu.spaces.live.com" target="_blank">小宠物</a>同学的风格应该叫做无题:-)</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2009/11/18/16/" title="一万小时原则之番外篇&#8212;Life is about choice.">一万小时原则之番外篇&#8212;Life is about choice.</a></li><li><a href="http://www.figoyao.com/blog/2010/01/13/497/" title="私服！私服！">私服！私服！</a></li><li><a href="http://www.figoyao.com/blog/2010/02/09/994/" title="Google，你难道不知道中国是下个朝鲜吗？！">Google，你难道不知道中国是下个朝鲜吗？！</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/14/1315/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[水木社区]国内、美国及香港对比</title>
		<link>http://www.figoyao.com/blog/2010/04/06/1313/</link>
		<comments>http://www.figoyao.com/blog/2010/04/06/1313/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 10:05:52 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[唐人街的唐人]]></category>
		<category><![CDATA[国内外对比]]></category>
		<category><![CDATA[国进民退]]></category>
		<category><![CDATA[大清王朝]]></category>
		<category><![CDATA[大陆生活]]></category>
		<category><![CDATA[百家争鸣]]></category>
		<category><![CDATA[美国生活]]></category>
		<category><![CDATA[香港生活]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1313</guid>
		<description><![CDATA[任何事物都有其两面性，取其精华去其糟粕才是正确的态度。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
根据个人经验，写一篇关于国内、美国与香港的对比文章，希望对国内想出国的、国外想回国的新人朋友有点帮助。文中的美国指美国的城市区，而[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/06/1313/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>任何事物都有其两面性，取其精华去其糟粕才是正确的态度。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
根据个人经验，写一篇关于国内、美国与香港的对比文章，希望对国内想出国的、国外想回国的新人朋友有点帮助。文中的美国指美国的城市区，而国内专指北京、上海、广州、深圳四个一线城市。</p>
<p>工作及收入<br />
美国本科生起薪在4万美元左右，硕士为5万，博士为6万。如果是名校毕业，可以在这个基础上加1到2万。顶级名校的博士可以拿到10万，超过10万的毫无疑问就属于高薪阶层了。<br />
美国是工程师的天堂，搞工科的人在美国的起薪基本与金融界持平，差别只是分红少，升级慢。由于起薪是一个人挑选工作最重要的因素之一，而无论是香港还是国内，工程界的起薪都无法达到美国哪怕一半的水平，所以搞工科的人很少回国，是比较容易理解的。工科升职较慢，前几年都是在打杂，即使非常顺利，几年之后步入高职，也往往已娶妻生子，基本上在美国定居了。这种生活模式，是中国留学生最典型的模式。<br />
虽然拥有世界上最发达的金融市场，但美国金融界的起薪并不明显高于工程界。不过，由于美国市场太大，钱太好赚，金融界的分红是其他行业无法相比的。在好的年景，即使刚刚加入公司的新员工也可以得到与年薪几乎相等的分红，而老员工的分红更是呈几何级数增长。对于美国非常普遍的hedge fund，proprietary trading，private equity等等小公司，模式更加灵活，还常有按照挣的钱提成百分比的模式，高可至50%。对这一行非常有天赋的人，第一年就可以拿到几百万的分红，这样的造富之梦是其他行业不可想象的。当然，必须指出，美国金融界并不好进，即使进去90%也只是打打杂，按部就班。所以，造福之梦对于绝大多数人也只是个梦而已。<br />
另一条非常普遍的路是教职。博士毕业后当教授，相得益彰，正体现博士的价值。但是，美国的教职并不好找，一般某个学校的博士只能找次一个档次的学校的教职，而超一流名校的教职，非超级牛人就不必想了。当教授的收入不高，但学校的生活相对简单，日常支出较少，自由度高，并且在社会上很受尊重，所以适合喜欢搞科研的人。<br />
美国的个人所得税虽然在发达国家里不算高，可也相当可观。20%以上的联邦税是每个人都要交的，另外还有州税、城市税。在纽约、芝加哥之类的金融大都，总税率可以到40%以上。<br />
美国是个注重生活质量的地方，公共假期10天左右，一般还有15到20天的调休假。大多数工程公司过的是朝九晚五的规律生活。金融公司相对累一些，但是除了少数比较变态的，一般工作时间不超过每天10小时。<br />
香港的起薪分布非常不均匀。作为一个纯粹的金融都市，香港可以说是世界上贫富分化最严重的发达国家和地区之一。国际化的投行或者hedge fund之类的小公司，起薪基本与美国持平，在50到90万港元之间；而工程类的工作，起薪一般只有10到20万港元强。所以，香港不是个适合搞实业的地方，除非你有超牛的关系。<br />
由此看来，在香港搞金融似乎很好，很有家的感觉又很有优越感。但是，亚洲的金融市场比美国小的太多，所以金融公司在亚洲的盈利能力普遍无法与美国相提并论。因此，在亚洲，通常无法拿到与美国类似的分红，对于hedge fund，proprietary trading之类的纯以绩效说话小公司更是如此。当然，如果你没有成为亿万富翁的野心，老老实实的混下去也足够了。<br />
在香港从事教职也是个很好的选择。为了吸引人才，香港的大学开出的工资很有吸引力，正教授能够到200万每年。但是，香港的科研环境无法与美国相提并论，而且香港的大学更喜欢从美国的名校招已经拿到终身教职的教授，所以，这条路并不好走。<br />
香港是著名的避税天堂，个人所得税最高不超过15%。<br />
香港的公共假期很多，既有中国的春节、国庆节，也有西方的复活节、圣诞节。香港的公司一般也有每年15到20天的年假。但是金融类公司一般上班时间很长，每天12个小时以上并不鲜见。<br />
国内的起薪差别很大，极少数“牛人”可以拿到50万以上的年薪，但大多数人的起薪在4万到10万元之间。除了国际化投行和中金等少数几个大鳄，大多数金融公司的起薪也很难超过15万，即使有海外留学的背景，也一般不会为你开出更高的价码。国内金融公司的分红比较慷慨，好一些的第一年就能够达到一年工资的水平。国内的金融市场远远大于香港，机会也远远多于香港，如果能混出头，前途将不可限量。不过，在美国与香港市场上的流行做法在国内不见得能行的通，选准一个合适的回国时机很重要。<br />
国内教职起薪很低，官僚气氛重。虽然近些年都在加大对高校的扶植，“千人计划”等等也搞得如火如荼，但这些基本针对已经在美国混出名堂而想实现更大的个人价值的人，不适合初出茅庐的新人。<br />
国内税负并不轻，虽然对于一般收入者，税率低于美国，但考虑到美国有相当的退税空间，实际税负反而比美国略重。<br />
国内的假期相对较少，新人的调休假一般少于10天。由于竞争过于激烈，很多金融类公司的员工通常在周末也需要加班，并不适合享受生活的朋友。</p>
<p>物价及房价<br />
美国的肉类食品很便宜，蔬菜却很贵，一斤（美国论磅，方便起见，换算为斤。1磅大概0.9斤）西红柿可以买到两三美元。想了解美国的肉菜价格，可以逛逛国内的沃尔玛、家乐福之类，价格与美国相仿。    香港的肉菜类介于美国与内地之间，有类似于美国的超市，也有国内很常见的菜市场。<br />
三地的服装、电器等等价格类似，名牌产品国内通常更贵些。但是在国内和香港可以买到的“地摊货”在美国基本买不到。<br />
美国的服务业成本很高，出租车、理发等等的价格通常是国内的近10倍，餐馆的价格也通常是国内的四五倍。香港的服务业成本基本在美国的一半左右。<br />
综合来看，不考虑房价因素，三地的物价水平可以近似为美国：香港：国内 = 3：2：1。<br />
除了纽约、芝加哥等少数几个大城市的市中心区，美国的房价并不高。如果要购买，基本上20万美元就可以在美国绝大多数城市买到不错的别墅。但纽约、波士顿、芝加哥等城市中心的房价很贵，90平米左右的公寓也要 50万美元以上。在美国租房的价格因城市而异，差别很大。以90平米的公寓月租为例，一般的二线城市只要1000美元以内，在华盛顿、波士顿、洛杉矶、旧金山、芝加哥等大城市的市区则要2000美元，纽约市区要到3000美元以上。<br />
香港的城市布局非常集中，造成了与中环靠近的区域房间很小，房价很高。在香港，90平米以上的房子就属于豪宅了，一般人是不敢想的。普通人家多是住50 多平米的房子，甚至30平米的房子。以60平以下的房子为例，均价多在6、7万港元每平米。而香港租房的成本也很高，一般5、60平米的房子月租在 15000上下，超过100平米的房子月租一般高于30000。但是，香港的小区配套设施很完善，近几年新建的小区，都带有不错的会所，里面常有运动场、健身房、棋牌室、游戏厅、K歌房等等设施，供住户免费或以很低廉的价格使用。<br />
经过几年的疯长，国内大城市的房价已基本赶上了美国的二线城市，北京、上海、广州、深圳四地的房价，以距离市中心半小时车程为例，均已达到或超过2万元每平米。而国内的租房价格相对低廉，一套90平米，位置一般的房子，一般3000多元每月。但是，国内小区的配套设施建设不完善，除了个别的价格不低于纽约、香港房价的高级小区，一般都只是一个住的地方而已。</p>
<p>生活及其他<br />
美国的人际关系简单，公众的普遍素质较高，而且不排外，很容易融入美国社会。美国出游方便，机票、住宿、租车都很便宜，很适合喜欢旅游，并且喜欢大自然的朋友。如果愿意，周末带着家人开个把小时，都能够到达充满清新野趣、远离人烟的处所。而且，周围通常有很人性化的设施，可以供你取水、加油、用餐、休息。美国的空气质量普遍很好，绝大多数的城市都很干净。美国还是一个现代文化很丰富的国家，电影、音乐、游戏等等都引领潮流。美国的缺点也很明显，那就是没有“家”的感觉。华人在美国的人际圈子普遍比较小，呆的时间长了会觉得无聊。还有一点，美国的食物以快餐为主，喜欢美食的朋友会大失所望。<br />
香港的大陆人很多，可以很容易的找到很多有共同语言的朋友。香港与大陆一水之隔，联系起来也非常方便。香港的食物属于粤菜系，有一些川菜馆，但很难找到北方的菜系。香港有很大的自留绿地，居住的人很少，也没有除旅游业外的任何产业，很适合周末出游——爬山、冲浪、吃海鲜，应有尽有。香港的交通非常方便，公共交通系统在世界上数一数二，对于多数人的居住区域，一般上班地点在半小时以内可达。在香港居住7年以上可以申请成为香港永久居民，享受世界上180多个国家和地区的双免签政策，很适合喜欢旅游的朋友。香港的缺点同样明显，居住环境过于拥挤，文化基本属于快餐文化，而且处于落伍的边缘。社会上主要以粤语为主，北方人会有一定程度的不适应。<br />
国内是最有家的感觉的，而且对于在国内接受过本科教育的人，朋友圈子也基本集中在国内。朋友多、发展空间大，优势明显。国内的缺点已为很多人诟病，比如居住环境拥挤、空气质量差、食品不安全、网络不自由等等。不再多说。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
原文链接：<a href="http://www.newsmth.net/bbstcon.php?board=AdvancedEdu&amp;gid=10481092" target="_blank">http://www.newsmth.net/bbstcon.php?board=AdvancedEdu&amp;gid=10481092</a></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/05/343/" title="游戏辅助工具开发教程-从入门到精通之A3_8篇">游戏辅助工具开发教程-从入门到精通之A3_8篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/11/1043/" title="CrazyData小游戏源码">CrazyData小游戏源码</a></li><li><a href="http://www.figoyao.com/blog/2010/04/14/1315/" title="一切如常">一切如常</a></li><li><a href="http://www.figoyao.com/blog/2010/02/21/1068/" title="近期教程安排">近期教程安排</a></li><li><a href="http://www.figoyao.com/blog/2010/02/24/1106/" title="时间啊时间">时间啊时间</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/06/1313/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-04-04</title>
		<link>http://www.figoyao.com/blog/2010/04/04/1312/</link>
		<comments>http://www.figoyao.com/blog/2010/04/04/1312/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 14:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/04/04/1312/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>认识郭德纲的有两种人：一种人觉得郭德纲俗，没有错；一种人觉得郭德纲不俗，也没有错。但第二种人认为自己比第一种人高雅，这就错了。 <a href="http://twitter.com/figoyao/statuses/11285285349" class="aktt_tweet_time">#</a></li>
<li>自从phunter在08年光棍节写了一篇《一个科大猥琐男的自白》后，2年过去了，科大的闷骚男们言必称猥琐已蔚然成风。 <a href="http://twitter.com/figoyao/statuses/11305023187" class="aktt_tweet_time">#</a></li>
<li>zz宅男有三宝：科技，女优，人真好。型男有三[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/04/1312/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>认识郭德纲的有两种人：一种人觉得郭德纲俗，没有错；一种人觉得郭德纲不俗，也没有错。但第二种人认为自己比第一种人高雅，这就错了。 <a href="http://twitter.com/figoyao/statuses/11285285349" class="aktt_tweet_time">#</a></li>
<li>自从phunter在08年光棍节写了一篇《一个科大猥琐男的自白》后，2年过去了，科大的闷骚男们言必称猥琐已蔚然成风。 <a href="http://twitter.com/figoyao/statuses/11305023187" class="aktt_tweet_time">#</a></li>
<li>zz宅男有三宝：科技，女优，人真好。型男有三宝：亲亲，抱抱，再推倒。腐女有三宝：意淫，淘宝，节日少。韩剧有三宝：车祸，癌症，医不好。周董有三宝：哎呦，不错，这个屌。 <a href="http://twitter.com/figoyao/statuses/11305444416" class="aktt_tweet_time">#</a></li>
<li>zz毒疫苗和毒奶粉都是我国计划生育基本国策的一部分。 <a href="http://twitter.com/figoyao/statuses/11408958278" class="aktt_tweet_time">#</a></li>
<li>zz平时我对小偷和小三们充满了痛恨和鄙夷，但每当提到反腐事业的时候，我就想对她们致以最崇高的敬意。 <a href="http://twitter.com/figoyao/statuses/11506271231" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1118/" title="Twitter Weekly Updates for 2010-02-28">Twitter Weekly Updates for 2010-02-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/04/1312/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>微软系列讲座视频</title>
		<link>http://www.figoyao.com/blog/2010/04/01/1307/</link>
		<comments>http://www.figoyao.com/blog/2010/04/01/1307/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 08:57:02 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[做学问]]></category>
		<category><![CDATA[凌小宁]]></category>
		<category><![CDATA[张亚勤]]></category>
		<category><![CDATA[张宏江]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[方法]]></category>
		<category><![CDATA[林斌]]></category>
		<category><![CDATA[沈向洋]]></category>
		<category><![CDATA[编程习惯]]></category>
		<category><![CDATA[视频]]></category>
		<category><![CDATA[讲座]]></category>
		<category><![CDATA[软件测试]]></category>
		<category><![CDATA[陈宏刚]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1307</guid>
		<description><![CDATA[这套视频很不错，当时在学校的微软俱乐部服务器上下载的，现在重新观看，和当时的感触又不一样。我把能找到的视频列到下面，原始的视频总共2个G，暂时没有合适的服务器可供大家下载，所以只能提供在线观看，视频列表如下：
1、<strong>沈向洋：如何做学问[上、下]</strong>


2、<strong>林斌：如何编写优秀程序[上、下]</strong>


3、<strong>张宏江[......]</strong><p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/01/1307/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>这套视频很不错，当时在学校的微软俱乐部服务器上下载的，现在重新观看，和当时的感触又不一样。我把能找到的视频列到下面，原始的视频总共2个G，暂时没有合适的服务器可供大家下载，所以只能提供在线观看，视频列表如下：</p>
<p>1、<strong>沈向洋：如何做学问[上、下]</strong><br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzcyMTAwODA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzcyMTAwODA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzcyMTAxNDA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzcyMTAxNDA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>2、<strong>林斌：如何编写优秀程序[上、下]</strong><br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzQxNjQzMg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XNzQxNjQzMg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjMzNDAzMDg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjMzNDAzMDg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>3、<strong>张宏江：How To Get Good Research Published</strong><br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjQ1Mzk2ODg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjQ1Mzk2ODg=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>4、<strong>陈宏刚：微软是如何进行软件测试的[上、下]</strong><br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjI0ODYyMTY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjI0ODYyMTY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjI0ODYyMzI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjI0ODYyMzI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>5、<strong>张亚勤：The Future of Internet</strong><br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XODg1NjQ1NzY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XODg1NjQ1NzY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XODg1NjQ2OTI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XODg1NjQ2OTI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>6、<del datetime="2010-04-01T07:43:13+00:00">凌小宁：Software As Service</del>未找到视频。</p>
<p>7、李明镜：CBIR报告[上、中、下]<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4MzgzNDQ=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4MzgzNDQ=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4Mzk3MzI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4Mzk3MzI=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4NDAxNzY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMjc4NDAxNzY=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/26/1252/" title="电视剧时间：想做你的code">电视剧时间：想做你的code</a></li><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li><li><a href="http://www.figoyao.com/blog/2009/11/18/13/" title="不要一辈子生活在单模式中，重新认识世界的方法！">不要一辈子生活在单模式中，重新认识世界的方法！</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/01/1307/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[荣光公告]关于此次外挂问题的释疑</title>
		<link>http://www.figoyao.com/blog/2010/04/01/1304/</link>
		<comments>http://www.figoyao.com/blog/2010/04/01/1304/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 07:30:50 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[公告]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[木马]]></category>
		<category><![CDATA[病毒]]></category>
		<category><![CDATA[荣光医院]]></category>
		<category><![CDATA[辅助]]></category>
		<category><![CDATA[辅助工具]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1304</guid>
		<description><![CDATA[<a href="http://bbs.rongame.com" target="_blank">荣光医院官方</a>发布了<a href="http://bbs.rongame.com/bbs/viewthread.php?tid=4096" target="_blank">关于恶意外挂认定的标准</a>，这和当年金山事件有点类似，允许“善意”外挂的存在，说明2个问题：
1、游戏的热度已经需要升温了；
2、外挂在一定程度上会提高玩家人数，进而提高运营收入。
全文如下：
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#82[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/04/01/1304/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bbs.rongame.com" target="_blank">荣光医院官方</a>发布了<a href="http://bbs.rongame.com/bbs/viewthread.php?tid=4096" target="_blank">关于恶意外挂认定的标准</a>，这和当年金山事件有点类似，允许“善意”外挂的存在，说明2个问题：<br />
1、游戏的热度已经需要升温了；<br />
2、外挂在一定程度上会提高玩家人数，进而提高运营收入。<br />
全文如下：<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
荣光医院1.20中，已经内置了外挂检测的技术，可以自动统计异常数据，并提交给运维部门人工确认。</p>
<p>各位院长可能对这个模式并不了解，所以产生了很多疑问，在此，向大家简要介绍一下。</p>
<p>首先，外挂的区分：<br />
大家都是资深玩家，所以很清楚辅助工具和恶意外挂的区别，所谓恶意外挂，我们的界定范围是：严重影响服务器运行效率，严重影响其他玩家游戏权益的第三方工具。对于这种情况，我们已经收集了开心区、百度区的大量数据，某帐号在7小时内，向服务器发出了 41万次扫区拉人请求，相当于每秒十几次的点击速度，给服务器造成巨大额外开销，对这种情况，我们一律采取封停处理。</p>
<p>关于辅助工具，我们同样使用上面的规则：只要不出现“严重影响服务器运行效率，严重影响其他玩家游戏权益”的情况，我们不会将此类归为恶意外挂。医院是院长自己的，自己怎么玩那是您的权益，如果您喜欢，可以自己做一个客户端来提供游戏，只要不影响其他人的游戏感受，不每秒几十次的对我们服务器进行压力测试，那么您开心就好：），我们的责任就是尽可能的给您带来好心情。</p>
<p>关于外挂的处理：<br />
对于已经确认的封停帐号，帐号所有者可以通过联系版主、GM来申诉，我们会进一步核查数据，如果您也确认使用了外挂，并且感觉使用外挂并不能获得足够的快乐，以后不再尝试这种讨厌的东西，那么会转为有限封停，并根据使用外挂情况扣除该部分所得。</p>
<p>以上是我们对外挂的界定和处理方法，感谢耐心阅读。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>近百万玩家，如果有十分之一使用外挂，而这其中如果有十分之一使用了这种没有优化扫描算法的辅助工具疯狂发送请求的话，会给服务器造成压力也是情理之中的。其实，游戏运营商也是为了盈利，如果不是影响到其盈利或者不提高其盈利成本的话，一般情况，游戏公司对于外挂的态度都是睁一只眼闭一只眼的。像穿越火线这种游戏，因为外挂会造成严重的不公平从而流失玩家，同时严重影响道具的销售，所以腾讯不惜动用警力去抓捕外挂制作者。而免费发布的外挂中，基本上都是自带木马或者病毒的，所以你使用别人发布的外挂的代价就是把自己的电脑变成“跑马场”或者僵尸网络的一员，当有一天你的某些账号就被盗了，电脑中毒了，请不要奇怪，因为没有免费的午餐，只是交换的形式不同而已。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1131/" title="网页类游戏辅助工具一点说明">网页类游戏辅助工具一点说明</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1114/" title="开源是个好事情">开源是个好事情</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/04/01/1304/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具[外挂]教程汇总</title>
		<link>http://www.figoyao.com/blog/2010/03/30/1297/</link>
		<comments>http://www.figoyao.com/blog/2010/03/30/1297/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 08:52:30 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[外挂教程]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[汇总]]></category>
		<category><![CDATA[游戏辅助]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1297</guid>
		<description><![CDATA[<img class="alignnone size-full wp-image-1298" title="Police_stop" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/Police_stop.jpg" alt="Police_stop" width="440" height="293" />
一个人的精力总是有限的，生在这么一个有趣的国家是种难得的经历：它既不像非洲或拉美洲那样战乱不断，也不像文明社会那样看起来把国民当做正常人来对待；这里没有表面的混乱，但是总有一天被压抑的会爆发的。很遗憾的说，<strong>系统讲解</strong>游戏辅助工具的教程到此为止了，这也是为什么最后一篇输入法没有放出源码的原因。如果一定[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/30/1297/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1298" title="Police_stop" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/Police_stop.jpg" alt="Police_stop" width="440" height="293" /></p>
<p>一个人的精力总是有限的，生在这么一个有趣的国家是种难得的经历：它既不像非洲或拉美洲那样战乱不断，也不像文明社会那样看起来把国民当做正常人来对待；这里没有表面的混乱，但是总有一天被压抑的会爆发的。很遗憾的说，<strong>系统讲解</strong>游戏辅助工具的教程到此为止了，这也是为什么最后一篇输入法没有放出源码的原因。如果一定要隐喻的说一下为什么，我只能说，当初为啥要在中国买域名呢，各位看官请以我为戒。这是相互妥协的结果。我不是个喜欢暴力解决问题的，但有一天如果非暴力不能解决的时候，我会尽一份一个有良知的中国知识分子应尽的责任：反对暴政，人人有责。赵连海因为大陆政府在三聚氰胺牛奶上的不作为而被捕；谭作人因为大陆政府在四川地震中对豆腐渣工程的不作为而被捕&#8230;&#8230;引用赵连海Twitter的一段话：“言多无用，踏实做事，坦率做人！身为奴隶身，不能奴隶心！做好孩子的榜样，他们是我们的未来，生命的延续&#8230;&#8230; ”目前的伪政府就是一个为了利益可以出售毒牛奶的政府，一个为了利益可以出售假疫苗的政府，一个为了利益可以牺牲下一代的政府：共产党来到世间，每一个毛孔都流着血和肮脏的东西。</p>
<p>古语云：师父领进门修行在个人。除了封包那块暂时没有涉及外，基本的知识我都在过去的教程中涉及了，如果你不是专业以做外挂为生，内存和模拟按键类外挂已足够个人使用，你唯一需要做的是把自己程序的权限提升，比如进入Ring0层。易语言这种玩具都可以写外挂，你说有VC这么强大的工具，你有什么理由写不出合适的外挂呢？如果你犹豫过，迷茫过，觉得快速开发工具做出的玩具更适合你的话，我向你推荐VB也不会向你推荐易语言的。用唐伯虎的话说就是：“对对儿本为消遣作乐，今日穿肠兄竟然对得呕出几十两血，可谓空前绝后，小弟佩服佩服！ ”游戏同样只是为消遣作乐之用，如果你真的是业余爱好的话，其实不必钻这么专的，如果你是职业做挂另当别论。</p>
<p><span style="color: #0000ff;">后面的博客不再会像这样系统的讲解，但是可能会以专题的形式探讨一些技术，比如讲下winpcap在网络编程中的使用方法和注意事项等等。</span>技术本无所谓好坏，看你怎么去用。外挂的起源是人类的好胜心和懒惰，一步步走到今天这样子可能连最初一批写外挂的人都没有想到吧。不过写外挂终究不是正途，而且以后会逐步因为游戏形式以及架构的变化变得不再成为一种必要，目前游戏的设计合理性和可玩性以及游戏设备的落后，才引发外挂泛滥。游戏希望玩家长时间沉浸没有问题，但是一味的升级升级升级，使得它失去了本来的乐趣，难道不能找到一个可玩性和可盈利性的结合点吗？完全可以的！</p>
<p>理想和计划总是美好的，但谁让我们生活在一个摩擦不可以忽略不计的真实世界呢。废话不多说了，下面是把前面所有的内容汇总在本篇日志里，方便大家查阅。专业写外挂的知识基本都提及了，如果需要进一步学习请Google之。</p>
<p><a href="http://www.figoyao.com/blog/2009/11/28/24/" target="_blank">游戏辅助工具开发教程-从入门到精通之开篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/11/28/34/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_1篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/11/29/56/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_2篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/02/62/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_3篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/02/64/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_4篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/03/68/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_5篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/03/74/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_6篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/04/116/" target="_blank">游戏辅助工具开发教程-从入门到精通之A1_7篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/05/124/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_1篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/06/135/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_2篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/07/147/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_3篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/08/159/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_4篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/09/178/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_5篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/09/182/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_6篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/10/190/" target="_blank">游戏辅助工具开发教程-从入门到精通之A2_7篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/11/197/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_1篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/12/224/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_2篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/14/231/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_3篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/30/254/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_4篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/31/285/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_5篇</a></p>
<p><a href="http://www.figoyao.com/blog/2009/12/31/283/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_6篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/02/321/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_7篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/05/343/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_8篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/06/425/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_9篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/07/435/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_10篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/11/462/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_11篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/14/489/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_12篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/16/520/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/22/676/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/01/30/813/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/02/04/859/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_16篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/02/05/899/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/02/06/944/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/02/23/1074/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_19篇</a></p>
<p><a href="http://www.figoyao.com/blog/2010/03/29/1270/" target="_blank">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/02/1131/" title="网页类游戏辅助工具一点说明">网页类游戏辅助工具一点说明</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/30/1297/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_20篇</title>
		<link>http://www.figoyao.com/blog/2010/03/29/1270/</link>
		<comments>http://www.figoyao.com/blog/2010/03/29/1270/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 15:34:06 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[IME注入]]></category>
		<category><![CDATA[WinAPI]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[注入]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[输入法注入]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1270</guid>
		<description><![CDATA[作者：<a href="http://www.figoyao.com/blog/" target="_blank">Figo</a>
终于，你们盼到了教程的延续，其实网页游戏那个也算是教程的：）为了保证教程的连续性，本节内容延续<a href="http://www.figoyao.com/blog/2010/02/23/1074/" target="_blank">上节教程</a>，继续讲输入法注入。我会把编写一个输入法注入的主要涉及知识介绍完毕，但这次不会放出源码。
输入法注入的原理很简单。为了便于理解，这里先打个比方，如果让你把身份证、家庭电话以及个人手机[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/29/1270/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.figoyao.com/blog/" target="_blank">Figo</a></p>
<p>终于，你们盼到了教程的延续，其实网页游戏那个也算是教程的：）为了保证教程的连续性，本节内容延续<a href="http://www.figoyao.com/blog/2010/02/23/1074/" target="_blank">上节教程</a>，继续讲输入法注入。我会把编写一个输入法注入的主要涉及知识介绍完毕，但这次不会放出源码。</p>
<p>输入法注入的原理很简单。为了便于理解，这里先打个比方，如果让你把身份证、家庭电话以及个人手机号交给某些公司的推销员，你必然不同意。那么推销员怎么得到你的这些信息呢？买！比如去银行买信息，典型的像招商银行，给钱就卖，而且丫还不承认。这里，招商银行作为跳板，把你的信息给出卖了。而输入法注入的道理和这个类似，游戏为了保护自身进程空间的内存不被非法修改，往往会监视相关API调用的合法性，如果调用方不是自己进程，涉及敏感操作的话会被拒绝，这时候谁来充当招行的角色呢？输入法。绝大多数游戏不会屏蔽用户打字的操作，打字就要涉及输入法，在Vista之前，输入法的总体架构没有什么大的变化，示意图如下：<br />
<img class="alignnone size-full wp-image-1274" title="输入法逻辑结构" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/immframe.jpg" alt="输入法逻辑结构" width="650" height="259" /><br />
图中以ime为后缀的文件表示输入法文件，本质是动态链接库。接受输入的进程总会关联一定的输入法，这些关联和调用由输入法管理器建立和管理。比如上图中，进程1需要使用输入法B，那么IMM会遍历已经安装的输入法，然后把符合要求的输入法b.ime加载到进程1的内存空间，这也是为什么输入法需要导出一些标准函数接口，因为IMM需要调用这些接口去初始化和通知ime要处理哪些消息等等。而所谓输入法注入，就是假IMM之手，把傀儡ime文件加载如目标进程空间，然后再加载需要注入的dll文件，通过进程进通信达到操作目标进程的企图。</p>
<p>因为ime本质属于dll，所以我们可以在编写傀儡ime时候导出标准接口和我们自己定制的接口函数[如传入进程号等]。下面先介绍ime的编写过程，请结合<a href="http://www.figoyao.com/blog/2010/02/23/1074/" target="_blank">上次的教程</a>一起来看。在vc环境下编写ime的话，入口函数和dll一样，而在<a href="http://www.figoyao.com/blog/2010/03/22/1222/" target="_blank">ddk环境</a>编写的话，可以自定义ime的入口函数。一个典型的入口函数如下：<br />
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)<br />
我们需要在DLL_PROCESS_ATTACH的时候保存hinstDLL和初始化输入法需要的窗口类，类名最长为16个字符[包含NULL在内]：<br />
UIWnd<br />
<img class="alignnone size-full wp-image-1275" title="UIWndProc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/UIWndProc.jpg" alt="UIWndProc" width="160" height="36" /><br />
StatusWnd<br />
<img class="alignnone size-full wp-image-1276" title="statuswnd" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/statuswnd.jpg" alt="statuswnd" width="146" height="101" /><br />
CompWnd<br />
CandWnd<br />
<img class="alignnone size-full wp-image-1277" title="CandWndProc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/CandWndProc.jpg" alt="CandWndProc" width="291" height="76" /><br />
示例代码如下[不完整]：</p>
<pre class="brush: cpp;">
//www.figoyao.com
BOOL WINAPI DLLEntry (
    HINSTANCE    hInstDLL,
    DWORD        dwFunction,
    LPVOID       lpNot)
{
switch(dwFunction)
    {
case DLL_PROCESS_ATTACH:
hInst= hInstDLL;
            wc.style          = CS_MYCLASSFLAG | CS_IME;
            wc.lpfnWndProc    = MyUIServerWndProc;
            wc.cbClsExtra     = 0;
            wc.cbWndExtra     = 2 * sizeof(LONG);
            wc.hInstance      = hInst;
            wc.hCursor        = LoadCursor( NULL, IDC_ARROW );
            wc.hIcon          = NULL;
            wc.lpszMenuName   = (LPSTR)NULL;
wc.lpszClassName  = (LPSTR)szUIClassName;
wc.hbrBackground  = NULL;
if( !RegisterClass( (LPWNDCLASS)&amp;wc ) )
return FALSE;
            wc.style          = CS_MYCLASSFLAG | CS_IME;
            wc.lpfnWndProc    = MyCompStringWndProc;
            wc.cbClsExtra     = 0;
            wc.cbWndExtra     = cbMyWndExtra;
            wc.hInstance      = hInst;
            wc.hCursor        = LoadCursor( NULL, IDC_ARROW );
            wc.hIcon          = NULL;
            wc.lpszMenuName   = (LPSTR)NULL;
wc.lpszClassName  = (LPSTR)szUICompStringClassName;
wc.hbrBackground  = NULL;
if( !RegisterClass( (LPWNDCLASS)&amp;wc ) )
return FALSE;
break;
case DLL_PROCESS_DETACH:
UnregisterClass(szUIClassName,hInst);
UnregisterClass(szUICompStringClassName,hInst);
break;
    }
return TRUE;
}
</pre>
<p>一个典型的窗口回调函数处理过程如下，以UI窗口回调过程为例，而StatusWndProc、CompWndProc和CandWndProc与此相似：</p>
<pre class="brush: cpp;">
LRESULT UIWndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HIMC hIMC;
HGLOBAL hMyExtra;

switch(msg){
case WM_CREATE:
// Allocate the memory block for the window instance.
hMyExtra = GlobalAlloc(GHND,size_of_MyExtra);
if (!hMyExtra)
MyError();
// Set the memory handle into IMMGWL_PRIVATE
SetWindowLong(hWnd, IMMGWL_PRIVATE, (LONG)hMyExtra);
                :
                :
break;
case WM_IME_xxxx:
// Get IMC;
hIMC = GetWindowLong(hWnd,IMMGWL_IMC);
// Get the memory handle for the window instance.
hMyExtra = GetWindowLong(hWnd, IMMGWL_PRIVATE);
lpMyExtra = GlobalLock(hMyExtra);
                :
                :
GlobalUnlock(hMyExtra);
break;
            :
            :

case WM_DESTROY:
// Get the memory handle for the window instance.
hMyExtra = GetWindowLong(hWnd, IMMGWL_PRIVATE);
// Free the memory block for the window instance.
GlobalFree(hMyExtra);
break;

default:
return DefWindowProc(hWnd, msg, wParam, lParam);
    }
}
</pre>
<p>完整的标准接口导出函数清单如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
LIBRARY         WINGB

EXPORTS
                ImeConversionList
                ImeConfigure
                ImeDestroy
                ImeEscape
                ImeInquire
                ImeProcessKey
                ImeSelect
                ImeSetActiveContext
                ImeSetCompositionString
                ImeToAsciiEx
                NotifyIME

                ImeRegisterWord
                ImeUnregisterWord
                ImeGetRegisterWordStyle
                ImeEnumRegisterWord

                UIWndProc
                StatusWndProc
                CompWndProc
                CandWndProc
</pre>
<pre class="brush: cpp;">
//[IMM调用]标准导出函数声明
BOOL ImeInquire(
    LPIMEINFO lpIMEInfo,
    LPTSTR lpszWndClass,
    DWORD dwSystemInfoFlags
	);

DWORD ImeConversionList(
				  HIMC hIMC,
				  LPCTSTR lpSrc,
				  LPCANDIDATELIST lpDst,
				  DWORD dwBufLen,
				  UINT uFlag
				  );

BOOL ImeConfigure(
			 HKL hKL,
			 HWND hWnd,
			 DWORD dwMode,
			 LPVOID lpData
			 );

BOOL ImeDestroy(
		   UINT uReserved
		   );

LRESULT ImeEscape(
		  HIMC hIMC,
		  UINT uEscape,
		  LPVOID lpData
		  );

BOOL ImeProcessKey(
			  HIMC hIMC,
			  UINT uVirKey,
			  DWORD lParam,
			  CONST LPBYTE lpbKeyState
			  );

BOOL NotifyIME(
		  HIMC hIMC,
		  DWORD dwAction,
		  DWORD dwIndex,
		  DWORD dwValue
		  );

BOOL ImeSelect(
		  HIMC hIMC,
		  BOOL fSelect
		  );

BOOL WINAPI ImeSetCompositionString(
						HIMC hIMC,
						DWORD dwIndex,
						LPCVOID lpComp,
						DWORD dwCompLen,
						LPCVOID lpRead,
						DWORD dwReadLen
						);

UINT ImeToAsciiEx(
			 UINT uVirKey,
			 UINT uScanCode,
			 CONST LPBYTE lpbKeyState,
			 LPTRANSMSGLIST lpTransMsgList,
			 UINT fuState,
			 HIMC hIMC
			 );

BOOL WINAPI ImeRegisterWord(
				LPCTSTR lpszReading,
				DWORD dwStyle,
				LPCTSTR lpszString
				);

BOOL WINAPI ImeUnregisterWord(
				  LPCTSTR lpszReading,
				  DWORD dwStyle,
				  LPCTSTR lpszString
				  );

UINT WINAPI ImeGetRegisterWordStyle(
						UINT nItem,
						LPSTYLEBUF lpStyleBuf
						);

UINT WINAPI ImeEnumRegisterWord(
					HKL hKL,
					REGISTERWORDENUMPROC lpfnEnumProc,
					LPCTSTR lpszReading,
					DWORD dwStyle,
					LPCTSTR lpszString,
					LPVOID lpData
					);

DWORD WINAPI ImeGetImeMenuItems(
				   HIMC hIMC,
				   DWORD dwFlags,
				   DWORD dwType,
				   LPIMEMENUITEMINFO lpImeParentMenu,
				   LPIMEMENUITEMINFO lpImeMenu,
				   DWORD dwSize
				   );

//窗口回调过程
LRESULT CALLBACK UIWndProc(
				   HWND   hUIWnd,
				   UINT   uMsg,
				   WPARAM wParam,
				   LPARAM lParam);

LRESULT CALLBACK StatusWndProc(
					HWND   hStatusWnd,
					UINT   uMsg,
					WPARAM wParam,
				    LPARAM lParam);

LRESULT CALLBACK CompWndProc(
					HWND   hCompWnd,
					UINT   uMsg,
					WPARAM wParam,
				    LPARAM lParam);

LRESULT CALLBACK CandWndProc(
					HWND   hCandWnd,
					UINT   uMsg,
					WPARAM wParam,
					LPARAM lParam);
</pre>
<p>在注册完窗口类后，IMM会调用标准接口函数ImeInquire，用来获取UI类名[lpszWndClass]和dwSystemInfoFlags通知ime现在的输入法上下文环境：是在用户登录窗口[IME_SYSINFO_WINLOGON]还是正常的输入环境或者是16位窗口[IME_SYSINFO_WOW16]。<br />
下面四个函数用来提供用户向字典文件<strong>添加/删除</strong>自定义字符功能，一般可以忽略，<br />
<strong>ImeRegisterWord<br />
ImeUnregisterWord<br />
ImeGetRegisterWordStyle<br />
ImeEnumRegisterWord</strong><br />
一个典型的处理过程如下：</p>
<pre class="brush: cpp;">
BOOL WINAPI ImeRegisterWord(
    LPCTSTR lpszReading,
    DWORD   dwStyle,
    LPCTSTR lpszString)
{
    return (FALSE);
}

BOOL WINAPI ImeUnregisterWord(
    LPCTSTR lpszReading,
    DWORD   dwStyle,
    LPCTSTR lpszString)
{
    return (FALSE);
}

UINT WINAPI ImeGetRegisterWordStyle(
    UINT       nItem,
    LPSTYLEBUF lpStyleBuf)
{
    return (FALSE);
}

UINT WINAPI ImeEnumRegisterWord(
    REGISTERWORDENUMPROC lpfnRegisterWordEnumProc,
    LPCTSTR              lpszReading,
    DWORD                dwStyle,
    LPCTSTR              lpszString,
    LPVOID               lpData)
{
    return (FALSE);
}
</pre>
<p>其它标准函数的典型示例如下：</p>
<pre class="brush: cpp;">
UINT
    ImeToAsciiEx(
    uVirKey,
    uScanCode,
    lpbKeyState,
 lpTransMsgList,
    fuState,
    hIMC
   )
{
    DWORD dwMyNumMsg = 0;

. . .

    // Set the messages that the IME wants to generate.
    pTransMsgList-&gt;TransMsg[0].message =msg;
    pTransMsgList-&gt;TransMsg[0].wParam = wParam;
    pTransMsgList-&gt;TransMsg[0].lParam = lParam;

    // Count the number of the messages that the IME wants to generate.
    dwMyNumMsg++;

. . .

    return dwMyNumMsg;
}
//----------------------------
BOOL WINAPI ImeSelect(
    HIMC hIMC,
    BOOL fSelect)
{
    LPINPUTCONTEXT lpIMC;
    BOOL           fRet;

    if (!hIMC) {
        return (FALSE);
    }

    lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
    if (!lpIMC) {
        return (FALSE);
    }

    fRet = Select(hIMC, lpIMC, fSelect);

    ImmUnlockIMC(hIMC);

    return (fRet);
}
//------------------------------------
LRESULT WINAPI ImeEscape(       // escape function of IMEs
    HIMC   hIMC,
    UINT   uSubFunc,
    LPVOID lpData)
{
    LRESULT lRet;

    switch (uSubFunc) {
    case IME_ESC_QUERY_SUPPORT:

        if ( lpData == NULL )
           return FALSE;

        switch (*(LPUINT)lpData) {
        case IME_ESC_QUERY_SUPPORT:
        case IME_ESC_MAX_KEY:
        case IME_ESC_IME_NAME:
        case IME_ESC_GETHELPFILENAME:
            return (TRUE);
        case IME_ESC_SEQUENCE_TO_INTERNAL:
        case IME_ESC_GET_EUDC_DICTIONARY:
        case IME_ESC_SET_EUDC_DICTIONARY:
        case IME_INPUTKEYTOSEQUENCE:      // will not supported in next version
            return (FALSE);               // will not supported in GB IME
        default:
            return (FALSE);

        }
        break;
    case IME_ESC_SEQUENCE_TO_INTERNAL:
    case IME_ESC_GET_EUDC_DICTIONARY:
    case IME_ESC_SET_EUDC_DICTIONARY:
    case IME_INPUTKEYTOSEQUENCE:
        return (FALSE);
    case IME_ESC_MAX_KEY:
        return ((WORD) 4);
    case IME_ESC_IME_NAME:

        if ( lpData == NULL )
           return  FALSE;

        lstrcpy(lpData, szImeName);
        return (TRUE);

    case IME_ESC_GETHELPFILENAME:
        {
           TCHAR szIMEGUDHlpName[MAX_PATH];

           if (lpData == NULL )
              return FALSE;

           szIMEGUDHlpName[0] = 0;
           GetWindowsDirectory((LPTSTR)szIMEGUDHlpName, MAX_PATH);
           lstrcat((LPTSTR)szIMEGUDHlpName, TEXT(&quot;\\HELP\\WINGB.CHM&quot;));

           lstrcpy(lpData, szIMEGUDHlpName);

           return TRUE;

        }

    default:
        return (FALSE);
    }

    return (lRet);
}
//---------------------------------------
BOOL WINAPI ImeSetActiveContext(
    HIMC   hIMC,
    BOOL   fOn)
{
    if (!fOn) {
    } else if (!hIMC) {
    } else {
        LPINPUTCONTEXT lpIMC;

        lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
        if (!lpIMC) {
            return (FALSE);
        }

        InitContext(lpIMC);

        ImmUnlockIMC(hIMC);
    }

    return (TRUE);
}
//-------------------------------------
BOOL WINAPI ImeDestroy(         // this dll is unloaded
    UINT uReserved)
{
    if (uReserved) {
        return (FALSE);
    }

    return (TRUE);
}
//-----------------------------------
BOOL WINAPI ImeConfigure(      // configurate the IME setting
    HKL     hKL,               // hKL of this IME
    HWND    hAppWnd,           // the owner window
    DWORD   dwMode,
    LPVOID  lpData)            // mode of dialog
{
    switch (dwMode) {
    case IME_CONFIG_GENERAL:
        DialogBox(hInst, TEXT(&quot;ImeSet&quot;), (HWND)hAppWnd, (DLGPROC)ImeSetDlgProc);
        break;
    default:
        return (FALSE);
        break;
    }
    return (TRUE);
}
//-------------------------------------
BOOL WINAPI ImeSetCompositionString(
    HIMC   hIMC,
    DWORD  dwIndex,
    LPVOID lpComp,
    DWORD  dwCompLen,
    LPVOID lpRead,
    DWORD  dwReadLen)
{

    LPINPUTCONTEXT      lpIMC;
    LPCOMPOSITIONSTRING lpCompStr;
    LPPRIVCONTEXT       lpImcP;
    BOOL                fRet;

    if (!hIMC) {
        return (FALSE);
    }

    // composition string must  == reading string
    // reading is more important
    if (!dwReadLen) {
        dwReadLen = dwCompLen;
    }

    // composition string must  == reading string
    // reading is more important
    if (!lpRead) {
        lpRead = lpComp;
    }

    if (!dwReadLen) {
        lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
        if (!lpIMC) {
            return (FALSE);
        }

        CompCancel(hIMC, lpIMC);
        ImmUnlockIMC(hIMC);
        return (TRUE);
    } else if (!lpRead) {
        return (FALSE);
    } else if (!dwCompLen) {
    } else if (!lpComp) {
    } else if (dwReadLen != dwCompLen) {
        return (FALSE);
    } else if (lpRead == lpComp) {
    } else if (!lstrcmp(lpRead, lpComp)) {
        // composition string must  == reading string
    } else {
        // composition string != reading string
        return (FALSE);
    }

    if (dwIndex != SCS_SETSTR) {
        return (FALSE);
    }

    lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
    if (!lpIMC) {
        return (FALSE);
    }

    if (!lpIMC-&gt;hCompStr) {
        ImmUnlockIMC(hIMC);
        return (FALSE);
    }

    lpCompStr = (LPCOMPOSITIONSTRING)ImmLockIMCC(lpIMC-&gt;hCompStr);
    if (!lpCompStr) {
        ImmUnlockIMC(hIMC);
        return (FALSE);
    }

    lpImcP = (LPPRIVCONTEXT)ImmLockIMCC(lpIMC-&gt;hPrivate);
    if (!lpCompStr) {
        ImmUnlockIMCC(lpIMC-&gt;hCompStr);
        ImmUnlockIMC(hIMC);
        return (FALSE);
    }

    fRet = SetString(hIMC, lpIMC, lpCompStr, lpImcP, lpRead, dwReadLen);

    ImmUnlockIMCC(lpIMC-&gt;hPrivate);
    ImmUnlockIMCC(lpIMC-&gt;hCompStr);
    ImmUnlockIMC(hIMC);

    return (fRet);
}
//---------------------------------
BOOL WINAPI NotifyIME(
    HIMC        hIMC,
    DWORD       dwAction,
    DWORD       dwIndex,
    DWORD       dwValue)
{
    LPINPUTCONTEXT lpIMC;
    DWORD          fdwImeMsg;
    BOOL           fRet;

    fRet = FALSE;

    if (!hIMC) {
        return (fRet);
    }

    switch (dwAction) {
    case NI_OPENCANDIDATE:      // after a composition string is determined
                                // if an IME can open candidate, it will.
                                // if it can not, app also can not open it.
    case NI_CLOSECANDIDATE:
        return (fRet);          // not supported
    case NI_SELECTCANDIDATESTR:
    case NI_SETCANDIDATE_PAGESTART:
    case NI_SETCANDIDATE_PAGESIZE:
        break;                  // need to handle it
    case NI_CHANGECANDIDATELIST:
        break;
    case NI_CONTEXTUPDATED:
        switch (dwValue) {
        case IMC_SETCONVERSIONMODE:
        case IMC_SETOPENSTATUS:
            break;              // need to handle it
        case IMC_SETCANDIDATEPOS:
        case IMC_SETCOMPOSITIONFONT:
        case IMC_SETCOMPOSITIONWINDOW:
            return (TRUE);      // not important to the IME
        default:
            return (fRet);      // not supported
        }
        break;
    case NI_COMPOSITIONSTR:
        switch (dwIndex) {
        case CPS_COMPLETE:
            break;              // need to handle it
        case CPS_CONVERT:       // all composition string can not be convert
        case CPS_REVERT:        // any more, it maybe work for some
                                // intelligent phonetic IMEs
            return (fRet);
        case CPS_CANCEL:
            break;              // need to handle it
        default:
            return (fRet);      // not supported
        }
        break;                  // need to handle it
    default:
        return (fRet);          // not supported
    }

    lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
    if (!lpIMC) {
        return (fRet);
    }

    fRet = TRUE;

    switch (dwAction) {
    case NI_CONTEXTUPDATED:
        switch (dwValue) {
        case IMC_SETCONVERSIONMODE:
            if ((lpIMC-&gt;fdwConversion ^ dwIndex) &amp; IME_CMODE_CHARCODE) {
                // reject CHARCODE
                lpIMC-&gt;fdwConversion &amp;= ~IME_CMODE_CHARCODE;
                MessageBeep((UINT)-1);
                break;
            }

            fdwImeMsg = 0;

            if ((lpIMC-&gt;fdwConversion ^ dwIndex) &amp; IME_CMODE_NOCONVERSION) {
                lpIMC-&gt;fdwConversion |= IME_CMODE_NATIVE;
                lpIMC-&gt;fdwConversion &amp;= ~(IME_CMODE_CHARCODE|
                    IME_CMODE_EUDC|IME_CMODE_SYMBOL);
            }

            if ((lpIMC-&gt;fdwConversion ^ dwIndex) &amp; IME_CMODE_EUDC) {
                lpIMC-&gt;fdwConversion |= IME_CMODE_NATIVE;
                lpIMC-&gt;fdwConversion &amp;= ~(IME_CMODE_CHARCODE|
                    IME_CMODE_NOCONVERSION|IME_CMODE_SYMBOL);
            }

            if ((lpIMC-&gt;fdwConversion ^ dwIndex) &amp; IME_CMODE_SOFTKBD) {

                fdwImeMsg |= MSG_IMN_UPDATE_SOFTKBD;

            }

            if ((lpIMC-&gt;fdwConversion ^ dwIndex) == IME_CMODE_NATIVE) {
                lpIMC-&gt;fdwConversion &amp;= ~(IME_CMODE_CHARCODE|
                    IME_CMODE_NOCONVERSION|IME_CMODE_EUDC);
                fdwImeMsg |= MSG_IMN_UPDATE_SOFTKBD;
            }

            if (fdwImeMsg) {
                GenerateImeMessage(hIMC, lpIMC, fdwImeMsg);
            }

            if ((lpIMC-&gt;fdwConversion ^ dwIndex) &amp; ~(IME_CMODE_FULLSHAPE|
                IME_CMODE_SOFTKBD)) {
            } else {
                break;
            }

            CompCancel(hIMC, lpIMC);
            break;
        case IMC_SETOPENSTATUS:
            if (lpIMC-&gt;fdwConversion &amp; IME_CMODE_SOFTKBD) {
                GenerateImeMessage(hIMC, lpIMC, MSG_IMN_UPDATE_SOFTKBD);
            }
            CompCancel(hIMC, lpIMC);
            break;
        default:
            break;
        }
        break;
    case NI_SELECTCANDIDATESTR:
        if (!lpIMC-&gt;fOpen) {
            fRet = FALSE;
            break;
        } else if (lpIMC-&gt;fdwConversion &amp; IME_CMODE_NOCONVERSION) {
            fRet = FALSE;
            break;
        } else if (lpIMC-&gt;fdwConversion &amp; IME_CMODE_EUDC) {
            fRet = FALSE;
            break;
        } else if (!lpIMC-&gt;hCandInfo) {
            fRet = FALSE;
            break;
        } else {
            LPCANDIDATEINFO lpCandInfo;

            lpCandInfo = (LPCANDIDATEINFO)ImmLockIMCC(lpIMC-&gt;hCandInfo);
            if(!lpCandInfo){
                fRet = FALSE;
                break;
            }

            NotifySelectCand(hIMC, lpIMC, lpCandInfo, dwIndex, dwValue);

            ImmUnlockIMCC(lpIMC-&gt;hCandInfo);
        }

        break;
    case NI_CHANGECANDIDATELIST:
        fdwImeMsg = 0;

        fdwImeMsg |= MSG_CHANGE_CANDIDATE;
        GenerateImeMessage(hIMC, lpIMC, fdwImeMsg);

        break;
    case NI_SETCANDIDATE_PAGESTART:
    case NI_SETCANDIDATE_PAGESIZE:
        if (dwIndex != 0) {
            fRet = FALSE;
            break;
        } else if (!lpIMC-&gt;fOpen) {
            fRet = FALSE;
            break;
        } else if (lpIMC-&gt;fdwConversion &amp; IME_CMODE_NOCONVERSION) {
            fRet = FALSE;
            break;
        } else if (lpIMC-&gt;fdwConversion &amp; (IME_CMODE_EUDC|IME_CMODE_SYMBOL)) {
            fRet = FALSE;
            break;
        } else if (!lpIMC-&gt;hCandInfo) {
            fRet = FALSE;
            break;
        } else {
            LPCANDIDATEINFO lpCandInfo;
            LPCANDIDATELIST lpCandList;

            lpCandInfo = (LPCANDIDATEINFO)ImmLockIMCC(lpIMC-&gt;hCandInfo);
            if (!lpCandInfo) {
                fRet = FALSE;
                break;
            }

            lpCandList = (LPCANDIDATELIST)((LPBYTE)lpCandInfo +
                lpCandInfo-&gt;dwOffset[0]);

            if (dwAction == NI_SETCANDIDATE_PAGESTART) {
                if (dwValue &lt; lpCandList-&gt;dwCount) {
                    lpCandList-&gt;dwPageStart = lpCandList-&gt;dwSelection =
                        dwValue;
                }
            } else {
                if (lpCandList-&gt;dwCount) {
                    lpCandList-&gt;dwPageSize = dwValue;
                }
            }

            ImmUnlockIMCC(lpIMC-&gt;hCandInfo);
        }

        break;
    case NI_COMPOSITIONSTR:
        switch (dwIndex) {
        case CPS_CANCEL:
            CompCancel(hIMC, lpIMC);
            break;
        case CPS_COMPLETE:
            {
                LPPRIVCONTEXT lpImcP;

                lpImcP = (LPPRIVCONTEXT)ImmLockIMCC(lpIMC-&gt;hPrivate);
                if (!lpImcP) {
                    break;
                }

                if (lpImcP-&gt;iImeState == CST_INIT) {
                    CompCancel(hIMC, lpIMC);
                    // can not do any thing
                } else if (lpImcP-&gt;iImeState == CST_CHOOSE) {
                    LPCOMPOSITIONSTRING lpCompStr;
                    LPCANDIDATEINFO     lpCandInfo;

                    lpCompStr = (LPCOMPOSITIONSTRING)ImmLockIMCC(lpIMC-&gt;hCompStr);
                    if(!lpCompStr){
                        break;
                    }

                    lpCandInfo = (LPCANDIDATEINFO)ImmLockIMCC(lpIMC-&gt;hCandInfo);
                    if (lpCandInfo) {
                        LPCANDIDATELIST lpCandList;

                        lpCandList = (LPCANDIDATELIST)((LPBYTE)lpCandInfo +
                            lpCandInfo-&gt;dwOffset[0]);

                        SelectOneCand(lpIMC, lpCompStr, lpImcP, lpCandList);

                       ImmUnlockIMCC(lpIMC-&gt;hCandInfo);

                       GenerateMessage(hIMC, lpIMC, lpImcP);
                    }

                    if (lpCompStr) ImmUnlockIMCC(lpIMC-&gt;hCompStr);
                } else if ((lpIMC-&gt;fdwConversion &amp; (IME_CMODE_NATIVE|
                    IME_CMODE_EUDC|IME_CMODE_SYMBOL)) != IME_CMODE_NATIVE) {
                    CompCancel(hIMC, lpIMC);
                } else if (lpImcP-&gt;iImeState == CST_INPUT) {
                    LPCOMPOSITIONSTRING lpCompStr;
                    LPGUIDELINE         lpGuideLine;
                    LPCANDIDATEINFO     lpCandInfo;

                    lpCompStr = (LPCOMPOSITIONSTRING)ImmLockIMCC(lpIMC-&gt;hCompStr);
                    if(!lpCompStr){
                        break;
                    }

                    lpGuideLine = (LPGUIDELINE)ImmLockIMCC(lpIMC-&gt;hGuideLine);
                    if(!lpGuideLine){
                        ImmUnlockIMCC(lpIMC-&gt;hCompStr);
                        break;
                    }

                    CompWord(' ', lpIMC, lpCompStr, lpImcP, lpGuideLine);

                    if (lpImcP-&gt;iImeState == CST_INPUT) {
                        CompCancel(hIMC, lpIMC);
                    } else if (lpImcP-&gt;iImeState != CST_CHOOSE) {
                    } else if (lpCandInfo = (LPCANDIDATEINFO)ImmLockIMCC(
                        lpIMC-&gt;hCandInfo)) {
                        LPCANDIDATELIST lpCandList;

                        lpCandList = (LPCANDIDATELIST)((LPBYTE)lpCandInfo +
                            lpCandInfo-&gt;dwOffset[0]);

//                        SelectOneCand(hIMC, lpIMC, lpCompStr, lpImcP, lpCandList);
                        SelectOneCand(lpIMC, lpCompStr, lpImcP, lpCandList);

                       ImmUnlockIMCC(lpIMC-&gt;hCandInfo);
                    } else {
                    }

                    if (lpCompStr) ImmUnlockIMCC(lpIMC-&gt;hCompStr);
                    if (lpGuideLine) ImmUnlockIMCC(lpIMC-&gt;hGuideLine);

                    // don't phrase predition under this case
                    if (lpImcP-&gt;fdwImeMsg &amp; MSG_ALREADY_OPEN) {
                        lpImcP-&gt;fdwImeMsg = (lpImcP-&gt;fdwImeMsg | MSG_CLOSE_CANDIDATE) &amp;
                            ~(MSG_OPEN_CANDIDATE|MSG_CHANGE_CANDIDATE);
                    } else {
                        lpImcP-&gt;fdwImeMsg &amp;= ~(MSG_CLOSE_CANDIDATE|MSG_OPEN_CANDIDATE);
                    }

                    GenerateMessage(hIMC, lpIMC, lpImcP);
                } else {
                    CompCancel(hIMC, lpIMC);
                }

                ImmUnlockIMCC(lpIMC-&gt;hPrivate);
            }
            break;
        default:
            break;
        }
        break;
    default:
        break;
    }

    ImmUnlockIMC(hIMC);
    return (fRet);
}
</pre>
<p>输入法的安装有2种方法：复杂的和简单的：）<br />
1、所谓的简单的安装方法<br />
首先使用GetSystemDirectory获取system文件夹的路径，我们假设系统为XP，安装在C盘，那么获取的结果为C:\WINDOWS\system32。假设我们的ime文件为IMEDemo.ime，在获取完system路径后，继续合成一个szFileName为C:\WINDOWS\system32\IMEDemo.ime的路径，然后使用CopyFile函数把文件拷贝至szFileName所至的位置，此时调用函数即可，示例代码如下：</p>
<pre class="brush: cpp;">
...  ...
			//安装输入法
			char szFilePath[MAX_PATH] = &quot;&quot;;
			GetSystemDirectory(szFilePath,MAX_PATH);
			strcat(szFilePath,&quot;\\IMEDemo.IME&quot;);

			CopyFile(&quot;IMEDemo.IME&quot;,szFilePath,FALSE);

			HKL hkl = ImmInstallIME(szFilePath,&quot;微软拼音输入法[Figo]&quot;);
			if (FALSE == ImmIsIME(hkl))
			{
				MessageBoxW(hwnd,L&quot;ImmInstallIME函数失败&quot;,L&quot;出错了&quot;,MB_OK|MB_ICONERROR);
				SendMessage(hwnd,WM_CLOSE,0,0);
			}
...  ...
</pre>
<p>2、所谓复杂的安装方法<br />
这种方法我是参考<a href="http://www.wbfans.com" target="_blank">五笔爱好者论坛</a>的，未验证。<br />
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;引文&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
★Win9x/Me 系统</p>
<p>步骤一：拷贝文件。<br />
在Win9x/Me系统下, 把输入法相关文件（一般是*.IME，可能还有其它 .DLL文件）拷贝到 Win$\System$ 目录下。</p>
<p>步骤二：修改注册表。<br />
①第一处：<br />
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layouts\ 下新建主键(E0xx0804, 请替换 xx 为一不重复的十六进制数)，再在该主键下新建三个字串项，内容如下：<br />
格式为：名称 = 数据<br />
IME File = imeName.ime<br />
Layout File = kbdus.kbd<br />
Layout Text = 输入名名称<br />
②第二处：<br />
在 HKEY_CURRENT_USER\Keyboard Layout\preload 下新建一主键 x ，(数字, 比现有的主键最大数大 1)<br />
其内容为：(默认) = E0xx0804 (默认用 &#8220;&#8221; 表示键名, E0xx0804 就是上述第一处新建的那一个主键名)</p>
<p>步骤三：激活输入法。（即使桌面右下角的输入法列表中出现新安装的输入法）<br />
使用Windows API：LoadKeyoardLayout(&#8221;E0xx0804&#8243;, KLF_ACTIVATE), 激活输入法, 具体用法请查看 MSDN。</p>
<p>★WinNT/2000/XP 系统</p>
<p>步骤一：拷贝文件。<br />
在WinNT/2000/XP 系统下, 把输入法相关文件（一般是*.IME，可能还有其它 .DLL文件）拷贝到 Win$\System$ 目录下。</p>
<p>步骤二：修改注册表。<br />
①第一处：<br />
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layouts\ 下新建主键(E0xx0804, 请替换 xx 为一不重复的十六进制数)，再在该主键下新建三个字串项，内容如下：<br />
格式为：名称 = 数据<br />
IME file = imeName.ime<br />
Layout File = kbdus.DLL<br />
Layout Fext = 输入名名称<br />
②第二处：<br />
HKEY_CURRENT_USER\Keyboard Layout\Preload 下，新建字串项 x ，名称及数据为： x = E0xx0804 (x 是数字, 比现有的最大键名值大 1, E0xx0804 是上述新建的主键名)。</p>
<p>步骤三：激活输入法。（即使桌面右下角的输入法列表中出现新安装的输入法）<br />
使用Windows API：LoadKeyoardLayout(&#8221;E0xx0804&#8243;, KLF_ACTIVATE), 激活输入法, 具体用法请查看 MSDN。</p>
<p>说明：<br />
①步骤三如果不做的话，则在重启计算机后，桌面右下角的输入法列表中才会出现你安装的输入法，否则需要用户手动在“控制面板”的“输入法”中添加到桌面右下角的输入法列表中去。<br />
②Win$是指系统Windows的安装目录，Win9x/Me下一般是 x:\Windows，而 WinNT/2000 一般是 x:\Winnt，WinXP下一般是 x:\Windows。<br />
③System$是指 Windows的系统目录，Win9x/Me下一般是 Win$ 目录下的 System 目录，WinNT/2000/XP 下一般是 Win$ 下的System32目录。<br />
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;引文完&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
卸载方法如下</p>
<pre class="brush: cpp;">
...  ...
HKEY hkey;
 if(RegOpenKey(HKEY_CURRENT_USER, &quot;Keyboard Layout\\Preload&quot;, &amp;hkey) == ERROR_SUCCESS)
 {
  BOOL  bret = UnloadKeyboardLayout((HKL)0xe0270804 );
  RegDeleteValue(hkey, &quot;7&quot;);
//  ::SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
 }
...  ...
</pre>
<p>现在有个问题来了，输入法安装成功后，怎么才能注入到目标窗口呢，大致说来有三种方法：<br />
1、向目标窗口发送WM_INPUTLANGCHANGEREQUEST消息<br />
PostMessage(HWND_BROADCAST,WM_INPUTLANGCHANGEREQUEST,0,(LPARAM)hkl);<br />
HWND_BROADCAST表示一个广播消息句柄，它会向所有窗口发送INPUTLANGCHANGEREQUEST消息，当然，也可以使用具体的窗口句柄代替HWND_BROADCAST使得针对性更强。hkl是ImmInstallIME的返回值。但是此种方法有个缺陷，每次都需要发送消息。</p>
<p>2、把我们的输入法设为默认输入法<br />
使用函数<br />
BOOL WINAPI SystemParametersInfo(<br />
__in     UINT uiAction,<br />
__in     UINT uiParam,<br />
__inout  PVOID pvParam,<br />
__in     UINT fWinIni<br />
);<br />
调用方法示例如下：<br />
SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, hkl, SPIF_SENDWININICHANGE)</p>
<p>3、使用ActivateKeyboardLayout函数<br />
//获取当前线程的输入法<br />
HKL hklPre = ActivateKeyboardLayout(hkl,0);<br />
其中hklPre为前一个输入法标识句柄，hkl为我们的傀儡输入法标识句柄。<br />
//获取我们输入法对应的标识字符串<br />
char szIMEStr[MAX_LINE] = &#8220;&#8221;;<br />
GetKeyboardLayoutName(szIMEStr);<br />
LoadKeyboardLayout(szIMEStr,KLF_REORDER);<br />
如果执行成功的话，我们的傀儡输入法就成为了默认的输入法，这样会使得后面加载的程序都会被注入。</p>
<p>MSDN中说<a href="http://msdn.microsoft.com/en-us/library/ms684175%28VS.85%29.aspx" target="_blank">LoadLibrary函数</a>只可以加载.exe或者.dll后缀的文件(either a .dll or .exe file)，其实对于.ime后缀的executable module也可以加载，我已经写代码验证过了。</p>
<p>上面的信息基本足够你写出来注入的程序了。当然，我假设你懂得如何在dll中设置共享的数据段：<br />
//&#8211;=公共数据段=&#8211;<br />
#pragma data_seg(&#8221;IMESHARED&#8221;)<br />
&#8230;  &#8230;<br />
#pragma data_seg()<br />
#pragma comment(linker, &#8220;/section:IMESHARED,RWS&#8221;)<br />
//IMESHARED是数据段名，随意起。</p>
<p>上面这些知识是我的认识，必然会存在种种不足，本人不对因此造成的一切坏的结果负连带责任。一切以微软的文档和实践为准，动手写代码才是王道！<br />
关于IME的文档很少，我能找到的已经打包：<a href="http://down.qiannao.com/space/file/figoyao/share/ime_docs.rar/.page" target="_blank">点击下载</a>。当然，记得<strong>先谢国家</strong>：）同时，聪明伶俐的你如果写出来注入的完整代码后，可以拿我写的小程序来做实验，当然，这个程序未加入任何保护：<a href="http://down.qiannao.com/space/file/figoyao/share/crossfire.rar/.page" target="_blank">点击下载</a>。修改血量和子弹即可。如果你不想学习这种技术，也可以等到驱动讲解的部分再来获取权限。<span style="color: #0000ff;">You will be back!</span><br />
<img class="alignnone size-full wp-image-1283" title="crossfire" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/crossfire.png" alt="crossfire" width="222" height="231" /></p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/03/29/1270" target="_blank">http://www.figoyao.com/blog/2010/03/29/1270</a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/29/1270/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-03-28</title>
		<link>http://www.figoyao.com/blog/2010/03/28/1273/</link>
		<comments>http://www.figoyao.com/blog/2010/03/28/1273/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 14:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/03/28/1273/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>欢迎您乘坐兲朝64路公交！下车的乘客请坐好，上车的乘客请买票。下一站，朝鲜。 <a href="http://twitter.com/figoyao/statuses/10915813295" class="aktt_tweet_time">#</a></li>
<li>2015年，我兴奋得带着3岁的孩子去投下有生以来第一张选票，选举第一任总统。来到投票站，工作人员指导：你选谁，就把黄豆放在谁的照片下面。看着习近平，薄熙来，毛新宇的照片，我吞下了那颗黄豆&#8230; <a href="http://twitter.com/figoyao/statuses/11140159501" class="aktt_tweet_time">#</a></li>
<li>2015年[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/28/1273/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>欢迎您乘坐兲朝64路公交！下车的乘客请坐好，上车的乘客请买票。下一站，朝鲜。 <a href="http://twitter.com/figoyao/statuses/10915813295" class="aktt_tweet_time">#</a></li>
<li>2015年，我兴奋得带着3岁的孩子去投下有生以来第一张选票，选举第一任总统。来到投票站，工作人员指导：你选谁，就把黄豆放在谁的照片下面。看着习近平，薄熙来，毛新宇的照片，我吞下了那颗黄豆&#8230; <a href="http://twitter.com/figoyao/statuses/11140159501" class="aktt_tweet_time">#</a></li>
<li>2015年，暴雪推出了魔兽争霸5，有56个种族，56个种族同唱一支歌，56个种族是一家，从此再不争霸！ <a href="http://twitter.com/figoyao/statuses/11140165294" class="aktt_tweet_time">#</a></li>
<li>2015年元旦，谷歌作为勇于吃螃蟹的公司再次进入中国，结束了2年来中国再无外资企业的局面。李彦宏代表国资委管辖下最大国营网络公司工会主管领导欢迎了谷歌代表，李说：“感谢贵公司&#8230;”，没想到谷歌代表抽了他一耳光说：“先谢国家！” <a href="http://twitter.com/figoyao/statuses/11140171522" class="aktt_tweet_time">#</a></li>
<li>2015年，忙忙碌碌地工作了一周，周末带着妻儿去火星上新开的一家“四川菜馆”吃酸菜鱼～！但服务员推荐了三道卖的很火的菜：油炸包龙星、清蒸温家煲和水煮虎筋饕。 <a href="http://twitter.com/figoyao/statuses/11140177663" class="aktt_tweet_time">#</a></li>
<li>2015年，我到方滨兴家做客，看到搜索天安门居然页面被重置了。我大惊失色，“你……怎么还会被墙？！”方夫人说，自从GFW被推倒后，他就疯了，这是他自己在家里搭的，完全模拟有墙的日子。 <a href="http://twitter.com/figoyao/statuses/11140182100" class="aktt_tweet_time">#</a></li>
<li>2015年，我到影帝家里做客，看到桌上摆着一本《演员的自我修养》，我大惊失色：“想不到你家里还有…！”此时影帝夫人在一旁说：“自从焚书坑儒之后他就疯了，那本书就只有个封面，里面都是白纸，模仿还是演员的日子。” <a href="http://twitter.com/figoyao/statuses/11140186762" class="aktt_tweet_time">#</a></li>
<li>2015年,百度根据《中华人民共和国我高兴你们没办法》发布公告：只能搜索娱乐八卦，并对于搜索敏感词的人交公安机关处理。 <a href="http://twitter.com/figoyao/statuses/11140190803" class="aktt_tweet_time">#</a></li>
<li>2015 年，所有中小学生使用的“练习本”全改称“练功本”，在语文课本中的“温习”全部被改成“习温”。 <a href="http://twitter.com/figoyao/statuses/11140194786" class="aktt_tweet_time">#</a></li>
<li>2015年，《日人民报》头版刊登近平习的《炮打民主控：我的一张追杀令》，大量曾经“不问政治”的爱党青年纷纷加入党卫队，进行全球大串联！ <a href="http://twitter.com/figoyao/statuses/11140953850" class="aktt_tweet_time">#</a></li>
<li>2015年，香港沦陷，中国大陆网民访问g.cn，将被重定向到google.com.kp，下面写着：欢迎来到谷歌在朝鲜的新家。 <a href="http://twitter.com/figoyao/statuses/11141575524" class="aktt_tweet_time">#</a></li>
<li>2015年，7000余万中共党徒浩浩荡荡地要移民北韩，北韩同志炸桥放水，拒之于鸭绿江西岸。头人胡高喊：“老子有钱！”对岸金正淫冷笑道： “你丫就继续骗吧！洒家晓得你们的钱都在美国。 <a href="http://twitter.com/figoyao/statuses/11141580974" class="aktt_tweet_time">#</a></li>
<li>2015年春节，拜年短信“今年过节不抽烟，要抽就抽中南海”疯传。当局震怒。北京卷烟厂迫于压力，品牌改为“地中海”。 <a href="http://twitter.com/figoyao/statuses/11141585666" class="aktt_tweet_time">#</a></li>
<li>2015年，天安门城楼毛像被天安门广场管委会取下，管委会表示以后谁上台就挂谁，史称去东化事件。 <a href="http://twitter.com/figoyao/statuses/11141589750" class="aktt_tweet_time">#</a></li>
<li>2015年，我探望李毅中。看见一老年男子在书桌前签署关闭网站的命令。我大惊失色：现在居然还有网站可关闭？不是早全国断网了吗？李夫人说：自从所有网站关闭后，老李就失业了，整天闷闷不乐，这是他自己攒下以前的文件，没事签着过瘾的。 <a href="http://twitter.com/figoyao/statuses/11141593560" class="aktt_tweet_time">#</a></li>
<li>2015年，我到宋石男 家里做客，看到林志玲躺在他的床上，我大喜过望：“想不到你真的搞了…”此时宋夫人在一旁说：“这是莫之许买充气总统座机的赠品，完全模拟有林志玲日的日子。” （作者：抑扬） <a href="http://twitter.com/figoyao/statuses/11141597888" class="aktt_tweet_time">#</a></li>
<li>2015年，我到莫之许家里做客，看到彪形大汉保镖与停在草坪的总统座机，我大喜过望：“想不到你真的成了…”此时莫之许夫人在一旁说：“保镖是在劳务市场雇来的，座机是充气模型，完全模拟奥巴马的日子。”（作者：宋石男） <a href="http://twitter.com/figoyao/statuses/11141602196" class="aktt_tweet_time">#</a></li>
<li>2015年，我到一毛不拔家里做客，看到电脑里的纳斯塔客和纽约股市行情，我大喜过望。“想不到你家里还能…！”此时一毛不拔夫人在一旁说：“自从不能炒美股后，一毛不拔就疯了，这是医生吩咐道的，完全模拟有互联网的日子。”（作者：莫之许） <a href="http://twitter.com/figoyao/statuses/11141606163" class="aktt_tweet_time">#</a></li>
<li>2015年，我到连岳家做客，看到他正在写专栏，我大喜过望：“想不到你还在写啊……”此时连夫人在一旁说：“3年来他没收到过一封信，这是我写给他的，我当读者，他解答，完全模拟我爱问连岳的日子。”（作者：师北宸） <a href="http://twitter.com/figoyao/statuses/11141610303" class="aktt_tweet_time">#</a></li>
<li>2015年，我到王佩家里做客，看到他正打开twiiter，我大喜过望。“想不到你家里还能…”此时王夫人在一旁说：“这是我们家的局域网，我们互 Follow，完全模拟有twitter的日子”。（作者：连岳） <a href="http://twitter.com/figoyao/statuses/11141613777" class="aktt_tweet_time">#</a></li>
<li>2015年，我到和菜头家里做客，看到地板上的网线和正在闪烁的路由器，我大喜过望。“想不到你家里还能…！”此时菜头夫人在一旁说：“这是一毛不拔送的新款灯具，完全模拟有互联网的日子。”（作者：王佩） <a href="http://twitter.com/figoyao/statuses/11141617706" class="aktt_tweet_time">#</a></li>
<li>2015年，《日人民报》头版刊登近平习的《炮打民主控：我的一张追杀令》，大量曾经“不问政治”的爱党青年纷纷加入党卫队，进行全球大串联！ <a href="http://twitter.com/figoyao/statuses/11141621444" class="aktt_tweet_time">#</a></li>
<li>今天被Google导引进我主页的一个有趣的关键字：“封杀 温秀秀”。 <a href="http://twitter.com/figoyao/statuses/11223121598" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1118/" title="Twitter Weekly Updates for 2010-02-28">Twitter Weekly Updates for 2010-02-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/28/1273/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>电视剧时间：想做你的code</title>
		<link>http://www.figoyao.com/blog/2010/03/26/1252/</link>
		<comments>http://www.figoyao.com/blog/2010/03/26/1252/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 06:27:25 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[VS2010]]></category>
		<category><![CDATA[广告]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[视频]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1252</guid>
		<description><![CDATA[<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&#38;showAd=0&#38;show_pre=1&#38;show_next=1&#38;VideoIDS=XMTYwMjk0ODA0=&#38;isAutoPlay=false&#38;isDebug=false&#38;UserID=&#38;winType=interior&#38;playMovie=true&#38;MMControl=false&#38;MMout=false&#38;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&#38;showAd=0&#38;show_pre=1&#38;show_next=1&#38;VideoIDS=XMTYwMjk0ODA0=&#38;isAutoPlay=false&#38;isDebug=false&#38;UserID=&#38;winType=interior&#38;playMovie=true&#38;MMControl=false&#38;MMout=false&#38;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>我的一个同学说：来做我的code吧，我今晚就要来调戏你。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/01/1307/" title="微软系列讲座视频">微软系列讲座视频</a></li><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTYwMjk0ODA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTYwMjk0ODA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p>我的一个同学说：来做我的code吧，我今晚就要来调戏你。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/01/1307/" title="微软系列讲座视频">微软系列讲座视频</a></li><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/26/1252/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>赐予我智慧吧，我是接收器！</title>
		<link>http://www.figoyao.com/blog/2010/03/26/1244/</link>
		<comments>http://www.figoyao.com/blog/2010/03/26/1244/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 06:16:08 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[人工智能]]></category>
		<category><![CDATA[宠物]]></category>
		<category><![CDATA[将来]]></category>
		<category><![CDATA[未来]]></category>
		<category><![CDATA[机器狗]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1244</guid>
		<description><![CDATA[<img class="alignnone size-full wp-image-1245" title="希曼" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/希曼.jpg" alt="希曼" width="400" height="306" />
说到人工智能，我想到了06年参加大学生研究计划时我选的“课题”，号称<strong>脱</strong><strong>离病毒库的恶意软件智能判别算法</strong>，其实就是基于状态机和模式识别的一部分理论来实现的，当时觉得很cool。但是答辩的时候，一个教授问我：“你这个真的没有使用库吗？”我当时还心里暗自嘀咕这个教授为啥提这么“菜”的问题呢？可后来答辩结束[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/26/1244/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1245" title="希曼" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/希曼.jpg" alt="希曼" width="400" height="306" /><br />
说到人工智能，我想到了06年参加大学生研究计划时我选的“课题”，号称<span style="color: #0000ff;"><strong>脱</strong><strong>离病毒库的恶意软件<span style="color: #ff0000;">智能</span>判别算法</strong></span>，其实就是基于状态机和模式识别的一部分理论来实现的，当时觉得很cool。但是答辩的时候，一个教授问我：“你这个真的没有使用库吗？”我当时还心里暗自嘀咕这个教授为啥提这么“菜”的问题呢？可后来答辩结束我重新评价和审视当时的算法以及那个教授的问题时，我发现我理解错他问题的意思了：我算法的思路是不使用存储特征码的病毒库，而是分析特征行为序列，有点像现在很多杀毒软件所谓的主动防御思路，只不过我的算法是静态分析二进制文件汇编指令，设计一些初始状态指令序列并赋予权值，然后根据权值打分，最后根据分数结合预置区间来给可执行文件评级，比如超过60分但小于80分的提示用户这个程序<span style="color: #ff0000;">可能为恶意</span>等等。严格说来，这些预先设置的评分状态序列也属于<span style="color: #ff0000;">库</span>的范畴，这才是那个教授提问的本意。所以没有什么智能不智能，都是基于库，按照通俗的说法就是靠经验。</p>
<p>下面进入正题，人工智能的未来会是什么样子呢？我的感觉是，大趋势会越来越倾向于<strong><span style="color: #0000ff;">服务器-客户端</span></strong>模式的架构来实现智能化：客户端负责接收环境信息参数，服务器端负责处理这些参数并反馈给客户端，然后客户端解析反馈的信息并执行指令。单纯的想把单机实现智能是不现实或者说代价较大的一种思路，随着时间的推移，无线网络会和空气一样无处不在，并且网速已不再是瓶颈，那么可以把智能实现算法部分放在服务器端，加上现在越来越热的云计算会提供巨大的运算能力，客户端的运算负担可以减少很大一部分，借助于服务器端强大的运算能力，限制人类的就只有想象力了。</p>
<p>目前<a href="http://zh.wikipedia.org/wiki/%E4%B8%93%E5%AE%B6%E7%B3%BB%E7%BB%9F" target="_blank">专家系统</a>已经做得比较成熟了，一个协调系统加上多个专家系统会比很多人的“智力”要强大的多。下面是一个示意图：<br />
<img class="alignnone size-full wp-image-1247" title="系统整合" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/expertsys1.png" alt="系统整合" width="468" height="170" /><br />
我们对于人工智能的期待不就是希望它在一些行为上和人相似嘛。现在的人对于自身的认知还很有限，对智力的研究和认识还很肤浅，甚至连我们是进化来的还是被造出来的，至今也没有一致的意见，我们的教科书在这方面的信息已经太久没有更新了，不过也不能怪教育系统，毕竟教科书撰写者的精力、阅历以及学生的理解力、教师的能力都存在局限。加上领导同志们觉悟普遍不高，总觉得在中国，人这么多，干啥要去花大这么大力气研究一个像人的机器咧。<br />
<img class="alignnone size-full wp-image-1248" title="宠物狗" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/edog.jpg" alt="宠物狗" width="450" height="475" /><br />
将来一定会有这么一天，我们的宠物会变成机器人，养真正的狗反而成为了一种奢侈的享受。正如曾经人们身上的着装全部是手工制作的时候，我们向往机器织的布，可机器织布普及开来的时候，<strong>纯手工打造</strong>反而成为了一种奢侈的噱头。如果有一天你走在街上，看到滚动的广告屏幕把宠物的卖点定位在<span style="color: #ff0000;">纯天然真狗</span>上时，恭喜你，你穿越到了未来：）<br />
<img class="alignnone size-full wp-image-1249" title="宠物狗" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/宠物狗1.jpg" alt="宠物狗" width="450" height="300" /></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/01/261/" title="2010年的碎碎念">2010年的碎碎念</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/26/1244/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows输入法完整源码</title>
		<link>http://www.figoyao.com/blog/2010/03/22/1222/</link>
		<comments>http://www.figoyao.com/blog/2010/03/22/1222/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 11:42:43 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[WinAPI]]></category>
		<category><![CDATA[DDK]]></category>
		<category><![CDATA[IME]]></category>
		<category><![CDATA[Ring3驱动]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1222</guid>
		<description><![CDATA[这是DDK中自带的，稍后抽时间讲下。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
BUILD: Obje[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/22/1222/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>这是DDK中自带的，稍后抽时间讲下。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
BUILD: Object root set to: ==&gt; objfre<br />
BUILD: Adding /Y to COPYCMD so xcopy ops won&#8217;t hang.<br />
BUILD: /i switch ignored<br />
BUILD: Using 2 child processes<br />
BUILD: Compile and Link for i386<br />
BUILD: Loading D:\WINDDK\2600\build.dat&#8230;<br />
BUILD: Computing Include file dependencies:<br />
BUILD: Examining d:\winddk\2600\mine\chs directory for files to compile.<br />
d:\winddk\2600\mine\chs &#8211; 15 source files (12,796 lines)<br />
BUILD: Saving D:\WINDDK\2600\build.dat&#8230;<br />
BUILD: Compiling d:\winddk\2600\mine\chs directory<br />
1&gt;Compiling &#8211; wingb.rc for i386<br />
1&gt;Compiling &#8211; init.c for i386<br />
1&gt;Compiling &#8211; chcand.c for i386<br />
1&gt;Compiling &#8211; candui.c for i386<br />
1&gt;Compiling &#8211; compose.c for i386<br />
1&gt;Compiling &#8211; compui.c for i386<br />
1&gt;Compiling &#8211; data.c for i386<br />
1&gt;Compiling &#8211; ddis.c for i386<br />
1&gt;Compiling &#8211; notify.c for i386<br />
1&gt;Compiling &#8211; regword.c for i386<br />
1&gt;Compiling &#8211; statusui.c for i386<br />
1&gt;Compiling &#8211; toascii.c for i386<br />
1&gt;Compiling &#8211; ui.c for i386<br />
1&gt;Compiling &#8211; uisubs.c for i386<br />
1&gt;Compiling &#8211; mmonitor.c for i386<br />
1&gt;Building Library &#8211; objfre\i386\wingb.lib for i386<br />
BUILD: Linking d:\winddk\2600\mine\chs directory<br />
1&gt;Linking Executable &#8211; objfre\i386\wingb.ime for i386<br />
BUILD: Done</p>
<p>29 files compiled -  1828 LPS<br />
1 library built<br />
1 executable built<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p><img class="alignnone size-full wp-image-1223" title="imechscode" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/imechscode.png" alt="imechscode" width="367" height="265" /><br />
<img class="alignnone size-full wp-image-1224" title="imechsfile" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/imechsfile.png" alt="imechsfile" width="512" height="108" /></p>
<p>源代码：<a href="http://down.qiannao.com/space/file/figoyao/share/ime_chs.rar/.page" target="_blank">点击下载</a>。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1307/" title="微软系列讲座视频">微软系列讲座视频</a></li><li><a href="http://www.figoyao.com/blog/2010/03/26/1252/" title="电视剧时间：想做你的code">电视剧时间：想做你的code</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/22/1222/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-03-21</title>
		<link>http://www.figoyao.com/blog/2010/03/21/1219/</link>
		<comments>http://www.figoyao.com/blog/2010/03/21/1219/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 14:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/03/21/1219/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>zz乡亲们，太监说了，只要交出土八路，红军是不会亏待你们滴～ <a href="http://twitter.com/figoyao/statuses/10505412976" class="aktt_tweet_time">#</a></li>
<li>存照：张启发,贾士荣,郭三堆,黄季焜。难道袁隆平老糊涂了？ <a href="http://twitter.com/figoyao/statuses/10625274147" class="aktt_tweet_time">#</a></li>
</ul>
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/21/1219/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>zz乡亲们，太监说了，只要交出土八路，红军是不会亏待你们滴～ <a href="http://twitter.com/figoyao/statuses/10505412976" class="aktt_tweet_time">#</a></li>
<li>存照：张启发,贾士荣,郭三堆,黄季焜。难道袁隆平老糊涂了？ <a href="http://twitter.com/figoyao/statuses/10625274147" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1118/" title="Twitter Weekly Updates for 2010-02-28">Twitter Weekly Updates for 2010-02-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/21/1219/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一切尽在不言中</title>
		<link>http://www.figoyao.com/blog/2010/03/20/1196/</link>
		<comments>http://www.figoyao.com/blog/2010/03/20/1196/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 12:08:55 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[一万小时]]></category>
		<category><![CDATA[入侵]]></category>
		<category><![CDATA[后台]]></category>
		<category><![CDATA[招聘]]></category>
		<category><![CDATA[爱好]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[选择]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1196</guid>
		<description><![CDATA[下面是很早和我一起做大研的一个同学入侵百度招聘后台的部分截图，对于其时还是菜鸟的我觉得很神奇。当然，我们学校当时的主要服务器都不免被他入侵过，他给我的感觉是对于&#8221;奇淫巧技&#8221;很喜欢钻研。他毕业后继续热爱着他的热爱。
<img class="alignnone size-full wp-image-1197" title="baidu" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/baiduhr.jpg" alt="baiduhr" width="483" height="492" />
每个人都应该明白你要什么，你想成为哪方面的专家或者高手，因为[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/20/1196/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>下面是很早和我一起做大研的一个同学入侵百度招聘后台的部分截图，对于其时还是菜鸟的我觉得很神奇。当然，我们学校当时的主要服务器都不免被他入侵过，他给我的感觉是对于&#8221;奇淫巧技&#8221;很喜欢钻研。他毕业后继续热爱着他的热爱。<br />
<img class="alignnone size-full wp-image-1197" title="baidu" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/baiduhr.jpg" alt="baiduhr" width="483" height="492" /></p>
<p>每个人都应该明白你要什么，你想成为哪方面的专家或者高手，因为一个人的精力有限，你的选择越多反而会越迷茫。当你确定一个方向后，最好把某个具体领域钻研到你觉得已经可以在梦里都轻松应对的地步，然后你再去选择新的地域开荒的话就会很容易，可以参考我以前的文章《<a href="http://www.figoyao.com/blog/2009/11/18/16/" target="_blank">一万小时原则之番外篇</a>》。如果你仅仅是爱好技术，那就随性飘到哪里是哪里吧：）</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/703/" title="第二次被封杀">第二次被封杀</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/20/1196/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>网页游戏辅助工具实例分析</title>
		<link>http://www.figoyao.com/blog/2010/03/18/1180/</link>
		<comments>http://www.figoyao.com/blog/2010/03/18/1180/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 08:54:44 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[cJSON]]></category>
		<category><![CDATA[GET]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[POST]]></category>
		<category><![CDATA[WinINet]]></category>
		<category><![CDATA[人人网]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[荣光医院]]></category>
		<category><![CDATA[辅助]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1180</guid>
		<description><![CDATA[考虑到网页游戏的简单和不简单：简单是因为不需要考虑太多权限的问题；不简单是对于初次接触的人来说。等到网络编程部分时就不再单独涉及此内容了。这里仍以荣光医院为例，比较典型。下面我会把需要的工具和分析过程一一道来。
我的分析环境是：
1、<a href="http://www.mozillaonline.com/" target="_blank">火狐浏览器</a>（插件：<a href="https://addons.mozilla.org/zh-CN/firefox/addon/3829" target="_blank">Live Http Headers</a>）;
2、请求[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/18/1180/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>考虑到网页游戏的简单和不简单：简单是因为不需要考虑太多权限的问题；不简单是对于初次接触的人来说。等到网络编程部分时就不再单独涉及此内容了。这里仍以荣光医院为例，比较典型。下面我会把需要的工具和分析过程一一道来。</p>
<p>我的分析环境是：<br />
1、<a href="http://www.mozillaonline.com/" target="_blank">火狐浏览器</a>（插件：<a href="https://addons.mozilla.org/zh-CN/firefox/addon/3829" target="_blank">Live Http Headers</a>）;<br />
2、请求头分析软件：<a href="http://www.httpdebugger.com/" target="_blank">Http Debuger</a>;<br />
3、数据包分析软件：<a href="http://www.onlinedown.net/soft/2883.htm" target="_blank">Wireshark</a>；<br />
4、<a href="http://www.onlinedown.net/soft/44731.htm" target="_blank">Unicode查看器</a>。</p>
<p>鉴于人人网的普及和方便注册程度不如百度，这里以百度平台的荣光医院来讲解，原理是一样的，并且此次我会提供一个JSON的转换库，不必自己去分析实现了。按照《<a href="http://www.figoyao.com/blog/2010/03/02/1131/" target="_blank">网页类游戏辅助工具一点说明</a>》一文中的步骤，我们首先分析账号登陆，其次分析如何向服务器请求游戏的参数，最后是如何实现。在实践以下内容前，请确保你已经拥有一个百度的账号。</p>
<p>一、<strong>账号登陆分析</strong><br />
进入百度的<a href="http://passport.baidu.com/?login" target="_blank">登陆页面</a>，打开<strong>数据包分析软件</strong>和<strong>火狐的插件</strong>，输入账号、密码，登陆，然后分析响应的数据：<br />
<img class="alignnone size-full wp-image-1181" title="Livehttp" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/Livehttp.png" alt="Livehttp" width="275" height="375" /></p>
<p>首先看LiveHttp（<strong><span style="color: #ff0000;">以下简称LH</span></strong>）的结果：<br />
<img class="alignnone size-full wp-image-1182" title="LivehttpRon" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/LivehttpRon.png" alt="LivehttpRon" width="430" height="383" /><br />
当我们暂时不需要继续记录时，把<strong>Capture</strong>[捕获]的选项去掉。LH有用的一个功能是模拟发送报文，即Replay[回放]，我们点击此按钮，会看到以下内容：<br />
<img class="alignnone size-full wp-image-1183" title="LivehttpReplay" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/LivehttpReplay.png" alt="LivehttpReplay" width="615" height="509" /><br />
看上图：上面蓝色圈起来的框是数据请求方式（POST）和目标地址；下面的<strong>Send POST Content</strong>中是我们要提交的数据。我申请的账号为<span style="color: #ff0000;">ronnext</span>，密码是<span style="color: #ff0000;">china2010</span>。在Replay请求数据之前，我们首先要退出当前账号，如果账号和密码以及网络正常，会登陆成功百度。<br />
POST的数据中有类似此类字符串：http%3A%2F%2Fpassport.baidu.com%2Fcenter。实际上是：http://passport.baidu.com.center。其中的类似%3A%2F%2F使用百分号后跟十六进制数的表示属于<a href="http://codecodex.com/wiki/Escape_sequences_and_escape_characters" target="_blank"><strong>ESC字符</strong></a>。比如0&#215;2F表示的是&#8217;/'，可以用我前面写的<a href="http://www.figoyao.com/blog/2010/02/24/1106/" target="_blank">小工具查看</a>：<br />
<img class="alignnone size-full wp-image-1184" title="utf8esc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/utf8esc.png" alt="utf8esc" width="250" height="203" /><br />
百分号&#8217;%'用作网址URL中分割；C/C++语言中使用反斜杠&#8217;\'分割，如回车符&#8217;\n&#8217;。这里提交过程中可以使用原始字符序列构造请求的内容。考虑到有些读者没有网络基础知识欠缺，我这里简单扫盲下关于请求数据的相关知识，明白的读者可以直接跳过去，网页编程的基础知识<a href="http://www.figoyao.com/blog/2010/03/02/1142/" target="_blank">参见前面日志</a>：始终要明白一件事情，我们在和谁打交道？当然是远端的服务器，具体到登录和发送请求，这里是网页解析服务器而非游戏服务器。假设你现在要拿着你们学校A教授的推荐信去找其他院校的B教授，首先你要定位的是B教授的所在学校，其次要找到具体位置，比如说计算机学院三楼319房间，然后把推荐信交到B教授过目，如果验证该推荐信没有问题，OK，请进吧，之后你再去找B教授的时候就不必拿推荐信了。当我们要登录账号时，首先要确定主机位置（大学位置）和接受请求的位置（教授的实验室位置）；而此处的推荐信即使我们需要服务器具体模块验证的内容部分，一般来说常用的请求方式有<a href="http://dev.csdn.net/article/10/10865.shtm" target="_blank">POST和GET</a>，简单一点理解就是：GET用来从服务器上<strong>获取</strong>数据，而POST用来向服务器上<strong>传递</strong>数据。</p>
<p>二、<strong>获取游戏参数</strong><br />
百度平台荣光医院的地址是<a href="http://apps.hi.baidu.com/ronhospital" target="_blank">http://apps.hi.baidu.com/ronhospital</a>。在登录完账号后，重新开启监控，此时我们需要用到HTTP Debugger和Wireshark分析。首先看HTTP Debugger的监控结果：<br />
<img class="alignnone size-full wp-image-1185" title="ronlogin" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/ronlogin.png" alt="ronlogin" width="713" height="146" /><br />
可以看到荣光医院服务器的真实请求地址和参数，更加详细的信息我们从Wireshark中查看：<br />
<img class="alignnone size-full wp-image-1186" title="wkronlogin" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/wkronlogin.png" alt="wkronlogin" width="652" height="265" /><br />
右键导出该部分数据分析请求参数如下，其中bd_sig_session_key由于太长所以省略了：<br />
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Referer:<br />
http://<span style="color: #ff0000;">220.181.40.187</span><br />
/rghospital/bd/xn_index.php?<br />
<span style="color: #0000ff;">bd_sig_in_iframe</span>=1<br />
&amp;<span style="color: #0000ff;">bd_sig_method</span>=get<br />
&amp;<span style="color: #ff0000;">bd_sig_time</span>=1268894128087<br />
&amp;<span style="color: #0000ff;">bd_sig_added</span>=1<br />
&amp;<span style="color: #ff0000;">bd_sig_user</span>=1108272793<br />
&amp;<span style="color: #ff0000;">bd_sig_portrait</span>=a8426e657874726f6e460a<br />
&amp;<span style="color: #ff0000;">bd_sig_session_key</span>=pYJZap2U5DbFiqFM5KcLPIZXRFJrvoXE44CMtCeMD6y7JLVHd&#8230;&#8230;&#8230;.xwwUF00S3UsLPVLo0ql7<br />
&amp;<span style="color: #0000ff;">bd_sig_api_key</span>=ccf7ad450878c29c9782f0fe8cdc22fb<br />
&amp;<span style="color: #0000ff;">bd_sig_app_id</span>=10023&amp;bd_sig=8d65341a26925f8be953bdf2320961da<br />
//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
对于百度来说：上面数据中的<span style="color: #0000ff;">蓝色参数</span>是目前固定的，<span style="color: #ff0000;">红色参数</span>保险起见是要通过获取而构造的。从荣光的服务器获取玩家参数的请求为：<br />
GET /rghospital/bd/ac.php?t=<span style="color: #ff0000;">09578</span>&amp;ac=userdata&amp;uid=<span style="color: #ff0000;">1108272793</span>&amp;sk=<span style="color: #ff0000;">pYJZap2U5D</span>&amp;dn=0&amp;am=<br />
红色标注部分是需要程序构造的：<strong>t</strong>表示时间，单位是毫秒，每100000ms循环一次；<strong>uid</strong>是用户ID，和&amp;bd_sig_user为同一参数；sk为从此次会话（上面的bd_sig_session_key）截取前10个字符构成；ac表示请求的类型，此处为userdata，即请求从服务器获取玩家数据。当服务器接收到此次请求，返回如下数据（在Wireshark中获取）：<br />
<img class="alignnone size-full wp-image-1187" title="nextronuserdata" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/nextronuserdata.png" alt="nextronuserdata" width="314" height="478" /><br />
我这里简单提示几个参数的意义：<br />
1、家中监察员信息<br />
&#8220;fa1&#8243;:&#8221;0&#8243;,&#8221;fan1&#8243;:&#8221;0&#8243;,&#8221;falv1&#8243;:&#8221;0&#8243;,&#8221;fa2&#8243;:&#8221;0&#8243;,&#8221;fan2&#8243;:&#8221;0&#8243;,&#8221;falv2&#8243;:&#8221;0&#8243;,<br />
fa1在你家中派遣监察员的好友ID，fan1为好友名字。<br />
2、前台排队信息<br />
以下依次为诊断室、病房、药房和手术室数量<br />
queuenum、hsickroomnum、hmedicinenum、hoperationnum<br />
3、预约信息<br />
prrate表示进度条的百分比，如prrate为80表示进度条已经到80%的位置了。<br />
分析的乐趣是无穷的，更多乐趣请自行享受：）</p>
<p>三、<strong>如何实现</strong><br />
此处我们用到的函数为<a href="http://msdn.microsoft.com/en-us/library/aa385331%28VS.85%29.aspx" target="_blank">WinINet</a>系列函数。<br />
<img class="alignnone size-full wp-image-1188" title="Handle Hierarchy" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/Handle-Hierarchy.bmp" alt="Handle Hierarchy" /><br />
这个函数套餐比较有历史，目前微软推荐的新版本是<a href="http://msdn.microsoft.com/en-us/library/aa384273%28VS.85%29.aspx" target="_blank">WinHTTP</a>。这2个套餐的区别，某种程度你可以理解为<a href="http://www.figoyao.com/blog/2010/02/04/859/" target="_blank">按键模拟函数</a>keybd_event和SendInpu的区别。如果你们一定要问我用哪个套餐好，这就像选择动感地带还是全球通一样，<a href="http://www.ibaiku.com/wiki/doc-view-16560.html" target="_blank">抓住老鼠就好</a>。<a href="http://www.d-programming-language-china.org/" target="_blank">D语言</a>已经出来有段时间了，国内有些人已经用D写驱动了，当然，<a href="http://www.dywt.com.cn/" target="_blank">E语言</a>已经折腾好几年了，按照这个规律，将来的Z语言会是传说中的终结者吗？抑或Z++？O(∩_∩)O哈哈~扯远了。</p>
<p>我们来看如何实现登录和获取各种参数。这里以WinINet套餐为例讲解，WinHTTP套餐的使用大同小异。首先看下我们即将使用的函数：<br />
1、HINTERNET <strong><span style="color: #800000;">InternetOpen</span></strong>(<br />
__in  LPCTSTR lpszAgent,//浏览器（客户端）名称，即你是火狐还是IE，或者遨游<br />
__in  DWORD dwAccessType,//访问方式，即使用代理方式：是否使用，使用的话如何使用<br />
__in  LPCTSTR lpszProxyName,//NULL<br />
__in  LPCTSTR lpszProxyBypass,//NULL<br />
__in  DWORD dwFlags//0<br />
);<br />
执行成功返回会话句柄，只要程序不退出或者会话（Session）不过期，可以始终使用该值。当你的程序支持多账号登录的话，需要创建多个会话，也即多次调用该函数，每个会话句柄标识一个账号。<br />
2、HINTERNET <strong><span style="color: #800000;">InternetConnect</span></strong>(<br />
__in  HINTERNET hInternet,//InternetOpen返回的会话句柄<br />
__in  LPCTSTR lpszServerName,//服务器地址，可以使用IP形式：202.38.64.2;也可以使用字符串，如<span style="color: #ff0000;">passport.baidu.com</span>，即大学位置<br />
__in  INTERNET_PORT nServerPort,//此处选择INTERNET_DEFAULT_HTTP_PORT，即80端口<br />
__in  LPCTSTR lpszUsername,//FTP协议时的账号，HTTP协议忽略为NULL<br />
__in  LPCTSTR lpszPassword,//FTP协议时的密码，HTTP协议忽略为NULL<br />
__in  DWORD dwService,//服务器提供的服务类型，此处INTERNET_SERVICE_HTTP，即http服务<br />
__in  DWORD dwFlags,//0<br />
__in  DWORD_PTR dwContext//0<br />
);<br />
InternetConnect执行的话会注册一个连接类型，并向指定服务器发送连接请求，成功则连接上服务器，否则连接失败。<br />
3、HINTERNET <strong><span style="color: #800000;">HttpOpenRequest</span></strong>(<br />
__in  HINTERNET hConnect,//InternetConnect的返回值<br />
__in  LPCTSTR lpszVerb,//请求类型，即GET还是POST等<br />
__in  LPCTSTR lpszObjectName,//服务器处理请求数据的对象名称，如<span style="color: #ff0000;">/?login</span>，即教授的办公室位置<br />
__in  LPCTSTR lpszVersion,//HTTP版本，如<span style="color: #ff0000;">HTTP/1.1</span><br />
__in  LPCTSTR lpszReferer,//参考网址，即你是从哪个网址进入这里的，一般填NULL<br />
__in  LPCTSTR* lplpszAcceptTypes,//客户端能够接受/识别的数据类型<br />
__in  DWORD dwFlags,//可选标志，如是否保持连接等，此处填0，使用默认<br />
__in  DWORD_PTR dwContext//与dwFlags相关，此处填0<br />
);<br />
HttpOpenRequest执行成功的话，我们就构造了POST/GET请求的一部分，还需要使用HttpAddRequestHeaders来添加请求头，即<a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html" target="_blank">Http Header</a>。<br />
4、BOOL <strong><span style="color: #800000;">HttpAddRequestHeaders</span></strong>(<br />
__in  HINTERNET hConnect,//HttpOpenRequest返回值<br />
__in  LPCTSTR lpszHeaders,//需要添加的头部内容<br />
__in  DWORD dwHeadersLength,//头部长度，以字符为单位<br />
__in  DWORD dwModifiers//添加方式<br />
);<br />
因为我们首先使用POST方式来登录账号，所以需要添加一个<span style="color: #ff0000;">Content-Type:application/x-www-form-urlencoded\r\n</span>的头部，如果你不清楚添加什么头部，可使用Live HTTP Header来分析。如果添加成功就可以使用HttpSendRequest函数发送数据了。<br />
5、BOOL <strong><span style="color: #800000;">HttpSendRequest</span></strong>(<br />
__in  HINTERNET hRequest,//HttpOpenRequest返回值<br />
__in  LPCTSTR lpszHeaders,//请求头内容，因为不在需要添加，所以填NULL<br />
__in  DWORD dwHeadersLength,//头部长度，0<br />
__in  LPVOID lpOptional,//需要POST的数据<br />
__in  DWORD dwOptionalLength//待POST的数据的长度，以字符数量计数<br />
);<br />
HttpSendRequest执行成功表示你已经把数据发送至服务器了，如果发送的数据没有错误，登陆账号会成功登录，验证是否成功登录的方式很多很灵活，比如通过Cookie，通过返回的网页内容中的关键字符串（特征码）等等。获取Cookie的函数，比如InternetGetCookie；获取附加信息的函数，比如InternetQueryOption。<br />
6、HINTERNET <strong><span style="color: #800000;">InternetOpenUrl</span></strong>(<br />
__in  HINTERNET hInternet,//InternetOpen返回的会话句柄<br />
__in  LPCTSTR lpszUrl,//要打开的网址，如http://apps.hi.baidu.com/ronhospital<br />
__in  LPCTSTR lpszHeaders,//请求头信息，接受的文件类型和编码等信息<br />
__in  DWORD dwHeadersLength,//请求头长度，以字符数量计数<br />
__in  DWORD dwFlags,//可选标志，如是否保持连接等，此处填0，使用默认<br />
__in  DWORD_PTR dwContext//与dwFlags相关，此处填0<br />
);<br />
InternetOpenUrl的作用是打开荣光医院的网址，为获取各种请求的参数，如会话key、用户id数值等等做准备。此处使用上面的流程也是一样，只是这个简单些。<br />
7、BOOL <strong><span style="color: #800000;">InternetReadFile</span></strong>(<br />
__in   HINTERNET hFile,//InternetOpenUrl返回值<br />
__out  LPVOID lpBuffer,//接收网页内容的数据缓冲<br />
__in   DWORD dwNumberOfBytesToRead,//lpBuffer的字节数<br />
__out  LPDWORD lpdwNumberOfBytesRead//实际读入lpBuffer的字节数<br />
);<br />
InternetReadFile读取InternetOpenUrl打开的网址返回的网页内容，然后我们可以据此分析出各种参数。<br />
8、BOOL <strong><span style="color: #800000;">InternetCloseHandle</span></strong>(<br />
__in  HINTERNET hInternet<br />
);<br />
当不使用句柄时候，要用这个函数关闭，关闭前一定要检查下句柄的有效性。</p>
<p>四、<strong>JSON的解析</strong><br />
这里我使用cJSON演示，源码中有注释，使用的时候只要把cJSON.c和cJSON.h包含进你的工程，然后在需要使用的地方包含cJSON.h即可。<br />
<img class="alignnone size-full wp-image-1189" title="cjson" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/cjson.png" alt="cjson" width="442" height="232" /><br />
<img class="alignnone size-full wp-image-1190" title="cjsonresult" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/cjsonresult.png" alt="cjsonresult" width="231" height="73" /><br />
源码和分析的数据文件：<a href="http://down.qiannao.com/space/file/figoyao/share/cJSON.rar/.page" target="_blank">点击下载</a>。</p>
<p>辅助工具编写的关键部分已经介绍完毕，如有疑问请结合以前的<a href="http://www.figoyao.com/blog/2010/03/02/1119/" target="_blank">文章和代码</a>以及MSDN与Google来解决。祝大家玩的愉快。</p>
<p>作者：<a href="http://www.figoyao.com" target="_blank">Figo</a><br />
转载请注明出处：<a href="http://www.figoyao.com/blog/2010/03/18/1180/" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/03/18/1180/</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1114/" title="开源是个好事情">开源是个好事情</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/20/1196/" title="一切尽在不言中">一切尽在不言中</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/18/1180/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>有趣的西厢计划</title>
		<link>http://www.figoyao.com/blog/2010/03/16/1178/</link>
		<comments>http://www.figoyao.com/blog/2010/03/16/1178/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 01:57:21 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Hack]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[翻墙]]></category>
		<category><![CDATA[老大哥在看着你]]></category>
		<category><![CDATA[西厢计划]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1178</guid>
		<description><![CDATA[Linux已经问题不大了；Windows下项目似乎还有待完善，至少对于习惯了下一步下一步的用户来说不是那么友好，目前的作者是墙外的一个追求自由的中国人。时间允许的话，我会尽自己微薄的力量，完善下Windows的驱动和界面部分，让大部分用户更简单的享受没有<a href="http://course.ccert.edu.cn/2009/wiki/index.php/Talk:Group8" target="_blank">功夫网</a>的日子。
1、关于西厢计划原理的讲解，请[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/16/1178/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>Linux已经问题不大了；Windows下项目似乎还有待完善，至少对于习惯了下一步下一步的用户来说不是那么友好，目前的作者是墙外的一个追求自由的中国人。时间允许的话，我会尽自己微薄的力量，完善下Windows的驱动和界面部分，让大部分用户更简单的享受没有<a href="http://course.ccert.edu.cn/2009/wiki/index.php/Talk:Group8" target="_blank">功夫网</a>的日子。</p>
<p>1、关于西厢计划原理的讲解，请参考《<a href="http://blog.youxu.info/2010/03/14/west-chamber/" target="_blank">“西厢计划”原理小解</a>》<br />
2、西厢计划的项目页面：<a href="http://code.google.com/p/scholarzhang/" target="_blank">点击查看</a>。</p>
<p>btw:<br />
教程的耽搁因为个人事务，马上放出。请大家见谅：）</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/16/1178/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>也许似乎大概是，然而未必不见得。</title>
		<link>http://www.figoyao.com/blog/2010/03/15/1169/</link>
		<comments>http://www.figoyao.com/blog/2010/03/15/1169/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 14:55:40 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[上海]]></category>
		<category><![CDATA[东方明珠塔]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1169</guid>
		<description><![CDATA[<p><img class="alignnone size-full wp-image-1173" title="windows" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/windows.jpg" alt="windows" width="600" height="450" /><br />
<strong>从同学蜗居的地方窗口望去</strong></p>
<p><img class="alignnone size-full wp-image-1174" title="dfmzt" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/dfmzt.jpg" alt="dfmzt" width="600" height="450" /><br />
<strong>俗了一把当时：）</strong></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/12/31/285/" title="游戏辅助工具开发教程-从入门到精通之A3_5篇">游戏辅助工具开发教程-从入门到精通之A3_5篇</a></li><li><a href="http://www.figoyao.com/blog/2010/04/17/1318/" title="唐骏《我行我素》">唐骏《我行我素》</a></li><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/30/254/" title="游戏辅助工具开发教程-从入门到精通之A3_4篇">游戏辅助工具开发教程-从入门到精通之A3_4篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/04/859/" title="游戏辅助工具开发教程-从入门到精通之A3_16篇">游戏辅助工具开发教程-从入门到精通之A3_16篇</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1173" title="windows" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/windows.jpg" alt="windows" width="600" height="450" /><br />
<strong>从同学蜗居的地方窗口望去</strong></p>
<p><img class="alignnone size-full wp-image-1174" title="dfmzt" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/dfmzt.jpg" alt="dfmzt" width="600" height="450" /><br />
<strong>俗了一把当时：）</strong></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/14/489/" title="游戏辅助工具开发教程-从入门到精通之A3_12篇">游戏辅助工具开发教程-从入门到精通之A3_12篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li><li><a href="http://www.figoyao.com/blog/2009/12/08/152/" title="程序员的幽默">程序员的幽默</a></li><li><a href="http://www.figoyao.com/blog/2009/12/30/276/" title="Kernel版和Security版版主进入360">Kernel版和Security版版主进入360</a></li><li><a href="http://www.figoyao.com/blog/2010/01/11/462/" title="游戏辅助工具开发教程-从入门到精通之A3_11篇">游戏辅助工具开发教程-从入门到精通之A3_11篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/15/1169/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-03-07</title>
		<link>http://www.figoyao.com/blog/2010/03/07/1167/</link>
		<comments>http://www.figoyao.com/blog/2010/03/07/1167/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 13:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/03/07/1167/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>千里马常有，而母千里马不常有。 <a href="http://twitter.com/figoyao/statuses/9825011158" class="aktt_tweet_time">#</a></li>
<li>现在连笑话都不会讲了&#8230;讽刺时政类？幸灾乐祸类？牵强附会类？出人意料类？Class-&#62;可以考虑写个程序随机生成笑话了~ <a href="http://twitter.com/figoyao/statuses/9861093614" class="aktt_tweet_time">#</a></li>
<li>白色情人节，每次听到都觉得是死人们过的情人节。 <a href="http://twitter.com/figoyao/statuses/9903094844" class="aktt_tweet_time">#</a></li>
<li>云想衣裳花想容， 春风拂槛露华浓。 <a href="http://twitter.com/figoyao/statuses/9925251662" class="aktt_tweet_time">#</a></li>
<li>zz为了不民主，共产党费了多大[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/07/1167/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>千里马常有，而母千里马不常有。 <a href="http://twitter.com/figoyao/statuses/9825011158" class="aktt_tweet_time">#</a></li>
<li>现在连笑话都不会讲了&#8230;讽刺时政类？幸灾乐祸类？牵强附会类？出人意料类？Class-&gt;可以考虑写个程序随机生成笑话了~ <a href="http://twitter.com/figoyao/statuses/9861093614" class="aktt_tweet_time">#</a></li>
<li>白色情人节，每次听到都觉得是死人们过的情人节。 <a href="http://twitter.com/figoyao/statuses/9903094844" class="aktt_tweet_time">#</a></li>
<li>云想衣裳花想容， 春风拂槛露华浓。 <a href="http://twitter.com/figoyao/statuses/9925251662" class="aktt_tweet_time">#</a></li>
<li>zz为了不民主，共产党费了多大的劲儿，编造了多少理由和理论？！ <a href="http://twitter.com/figoyao/statuses/9953606464" class="aktt_tweet_time">#</a></li>
<li>zz当腐败成为一种生活方式，当腐败成为一种无可厚非的价值，当腐败成为一种人人欲诛之又人人欲得之的东西的时候，整个社会生活开始进入变态的状态。历史将会证明，“稳定”不仅不会压倒一切，很可能会毁灭一切。 <a href="http://twitter.com/figoyao/statuses/9953757783" class="aktt_tweet_time">#</a></li>
<li>不想专政的政党不是好政党，不要马屁的书记不是胡书记：家宝轻抚菊花笑而不语，安能辨尔是影帝。 <a href="http://twitter.com/figoyao/statuses/9968581603" class="aktt_tweet_time">#</a></li>
<li>有法不依、执法不严、违法不究、执法犯法、知法犯法、贪赃枉法、徇私枉法、以言代法、以权乱法、以身试法、暴力执法、暴力抗法&#8230;无法无天=&gt;中国律师面临的囧境，和流氓一起跳舞时你要注意的不只是音乐的节拍。 <a href="http://twitter.com/figoyao/statuses/10005719314" class="aktt_tweet_time">#</a></li>
<li>zz哥拉的不是屎!是朱军! <a href="http://twitter.com/figoyao/statuses/10115986726" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1118/" title="Twitter Weekly Updates for 2010-02-28">Twitter Weekly Updates for 2010-02-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/07/1167/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>莫谈国是</title>
		<link>http://www.figoyao.com/blog/2010/03/05/1153/</link>
		<comments>http://www.figoyao.com/blog/2010/03/05/1153/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 15:01:20 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[中国]]></category>
		<category><![CDATA[共产党]]></category>
		<category><![CDATA[历史]]></category>
		<category><![CDATA[国民党]]></category>
		<category><![CDATA[毛泽东]]></category>
		<category><![CDATA[蒋介石]]></category>
		<category><![CDATA[解密]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1153</guid>
		<description><![CDATA[如果将来没有大的政治格局变动或者改革出现，这是本博客最后一篇关于中国政治、历史的文章。我尽量客观平静地去叙述事情，以期抛砖引玉，唤起大家思考。鉴于大多读者和我一样从小接受的是洗脑教育，骨子里存在一些封建和洗脑毒害也不足为怪，但是，下面这些文字涉及的人和事，请不要先入为主的定性为好或者坏：<strong>没有永远的敌[......]</strong><p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/05/1153/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">如果将来没有大的政治格局变动或者改革出现，这是本博客最后一篇关于中国政治、历史的文章。</span>我尽量客观平静地去叙述事情，以期抛砖引玉，唤起大家思考。鉴于大多读者和我一样从小接受的是洗脑教育，骨子里存在一些封建和洗脑毒害也不足为怪，但是，下面这些文字涉及的人和事，请不要先入为主的定性为好或者坏：<strong>没有永远的敌人，只有永远的利益</strong>，而所谓主义，其实是为了党同伐异之用，如果这个主义阻碍利益的获取，一样会被扭曲和抛弃；胜者为王败者寇，古今中外，盖无一能免，这也是为什么绝大多数<strong>利益团体</strong>，夺权后的第一件事就是篡改历史。<br />
我们从中国处于群雄争霸时期开始说起，即上个世纪初。国民党和共产党分别声称自己为了不同理想奋斗：前者的主义概括为三民主义；后者的是共产主义。国民党的历史可以追溯到1894年的兴中会，共产党是在共产国际的资助下1920年成立的，实际上是受苏联控制：而这之前中国早已存在，因此不存在新旧中国之说，只存在不同统治者之异。<br />
<img class="alignnone size-full wp-image-1154" title="huangpu" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/huangpu.jpg" alt="huangpu" width="343" height="500" /><br />
1924年组建黄埔军校的时候周恩来是担任政治部主任的，这说明共产党是有合法地位，此时并未出现国民党取缔共产党的事态。1926年起的打土豪分田地运动中，有的农民有了土地，有的农民有了更多的土地，所有涉及到的地主失去了全部土地，甚至生命。<a href="http://news.xinhuanet.com/mil/2008-01/09/content_7391547.htm" target="_blank">新华社的文章</a>中说得好：“打土豪、分田地，真正是共产党和红军夺取胜利的一大法宝！”。在当时的条件下，共军不属于正规军，武器落后，中国刚脱离封建主义社会不久，处于动乱时期，还没有一个完全掌权的政府来改革土地所有制。共产党作为一个拥有执政目标的利益团体，必然不甘心居于人下，因此决定先下手为强，但是，这些被没收土地和生命权的地主也是有七大叔八大姨的，有些甚至是国民党中的高官。这时，一个有趣的状态就产生了，跟着蒋介石北伐的这些被没收土地的军官，一想到自己消灭军阀，共产党在后院拆家，哪个还能坐得住，这说明共产党拆迁的本事很早就有了。<br />
但当时国共还没有分得很清楚，所以出现了<strong>清共</strong>的事情，也即把共产党隔离或者清除出队伍。共产党当然不愿意了，所以就有了1927年的南昌起义，其实就是看到捂不住了，干脆扯乎，自己成立武装力量，也即毛泽东说的<strong>枪杆子里出政权</strong>。从打土豪（至于土豪的认定标准实际是很模糊的）这件事反映了共产党2个特点：急躁不成熟；不择手段。在国民党基本稳定国内局势后，也即1930年，由于共产党之前的所作所为，此时已经被定性为共匪：本质仍属于利益之争，因为两者在<span style="color: #ff0000;">当时</span>都不是为了最广大人民的利益，作为中国老百姓，他是不管国民党统治还是共产党统治，只要有口饭可以活命就行，这就是最底层百姓的想法！也因此有了第一次围剿，由于对局势估计的失误，第一次围剿没有达到预期，反而激怒共产党同意苏联的要求于1931年11月成立了<a href="http://baike.baidu.com/view/94413.htm" target="_blank">中华苏维埃共和国</a>，共产党在搞两个中国；同年的9月18号，即九一八事变，在借鉴了共产党的做法后，日本于1932年3月在东北成立了<a href="http://baike.baidu.com/view/38996.htm" target="_blank">满洲国</a>。<br />
按道理蒋介石应该全力以赴抗日，但是，在国民党政府眼中，共产党是作为一个独立割据的军阀存在的，这个军阀不同于其他军阀的地方在于：游击战和搞破坏是它的强项。基于日本短期不会再继续侵占东北以外地域的判断，在分析完主次矛盾后，蒋介石提出：“攘外必先安内，统一方能御侮，未有国不能统一而能取胜于外者。”这个想法很好，也很正当。但是考虑到当时国民政府的军队组成就知道为什么五次围剿都没有彻底消灭共产党，这些军人原先属于各个军阀，刚刚统一编制不久，蒋介石的个人威信还没有达到一定的渗透度，国民政府内部存在矛盾因素和妇人之仁去对付共产党是注定失败的。即使这样，截止<a href="http://baike.baidu.com/view/762548.htm" target="_blank">第五次围剿</a>结束，也即长征结束，共产党的军队仅剩几万人。<br />
这时候该张学良出场了，1936年，张学良和杨虎城杀死了蒋介石的卫队士兵，绑架了蒋。这之前张学良和共产党是有来往的，因为本来张学良宣称要杀蒋，但处于弱势的共产党居然可以说服张学良不杀，张学良所以绑架蒋介石要求抗日，我想这其中没有多伟大的民族气节在里面，只有利益，最后的结果是蒋介石答应抗日，而且确实做到了，这说明蒋介石本来确实是要抗日的，只是对时机的有他自己的考量而已。这之后的正面战场主要是国民政府军队在和日军交锋；共军此时做了2件事：拉拢一切可以拉拢的人加入自己的队伍，积极储备力量壮大自身，即建立统一战线，这个战线中的统一指的是加入共产党一方的就叫统一，比如毛选的<a href="http://cpc.people.com.cn/GB/69112/70190/70197/70350/4950593.html" target="_blank">论反对日本帝国主义的策略</a>说到：“假如我们能够从他们队伍中多拉一些人出来，那敌人的队伍就减少了，我们的队伍就扩大了&#8230;”这里的他们指的应该是国民党，因为不大可能是从日本人的队伍中拉些人出来加入共军，国民党一面要抗日，一面要应付共产党挖墙脚，真的是攘外必先安内；第二件就是以游击战为主，尽量避免和日军正面冲突，这是出于对自身当前实力以及保存力量的考虑（刚长征完，实力没有多少了，抗日结束还要和国民政府军队打呢）。<br />
<img class="alignnone size-full wp-image-1155" title="japfail" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/japfail.jpg" alt="japfail" width="200" height="190" /><br />
这期间苏联和日本签订了<a href="http://baike.baidu.com/view/82724.htm" target="_blank">苏日中立条约</a>，其中有个原因就是中国原来的领土外蒙古，因为外蒙古在苏联的支持下独立后，日本侵占了部分蒙古边境。这再次说明只有永远的利益，没有什么法西斯和正义之分。从一个侧面，我们也看到了一个刚组建不久的国民政府面临的内忧外患。终于在1945年日本同意投降了，共产党有牺牲，国民党也有牺牲，但是主要是国民党领导的军队在正面战场和日本交战，因为当时共产党的指导思想是<strong>农村包围城市，武装夺取政权。</strong>日本人当时的主要目标是大城市而非农村，这也给共产党以充足的时间和精力去壮大自身。<span style="color: #ff0000;">何应钦</span>代表当时中国合法政府参加了日本的投降仪式。之后的事情大家都知道了，日本投降不久，共产党突然雄起了，三大战役夺取了政权：请记住，这是内战！之后的格局就是：国民党退至台湾；共产党占领大陆。<br />
<img class="alignnone size-full wp-image-1157" title="cpc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/cpc.jpg" alt="cpc" width="661" height="397" /><br />
大陆在闭关锁国和自相残杀以及大饥荒、大跃进、大革命之后，终于在30多年前决定不闭关锁国了，也即所谓的改革开放，其实就是决定开始做一个正常一点的国家应该做的事情而已；同期的被国民党统治的台湾已经走上了经济高速发展、政治较为民主的道路。其实，以中国人的勤奋和智慧，称霸世界是绝对没问题的，韩国人、日本人和台湾人都是与大陆人同种的亚洲黄种人，唯独走所谓社会主义道路的朝鲜和大陆人如此野蛮和落后。社会主义和共产主义是个好的设想，但是急躁是没用的，如果打着社会主义旗号做肮脏的事情就另当别论了。<br />
看到这里，不知你会怎么想，这些基本的史实和事实让我们再次看到“没有永远的敌人，只有永远的利益”和“胜者为王败者寇”。共产党没有救中国，毛泽东也不是大救星；国民党也没有卖国，蒋介石也不是不抗日。中国一直是中国，只是“<strong><span style="color: #ff0000;">城头变换大王旗</span></strong>”而已。我不想去做“如果大陆和台湾都是国民党统治的话”之类不切实际的假设，现在的事实是，战时承诺民主、为人民服务的共产党，其实一直在做秀而已，它们已经做秀做了快八十年了，除了做秀就是内斗：和国民党斗，和自己人斗，难道，与人斗其乐真无穷吗？！</p>
<p>有的人说：“你与其抱怨社会不如奋斗。”请问，我这是抱怨吗？<br />
有的人说：“你看看，现在过的不是挺好吗？”当然，如果你满足于你自己的富足无可厚非，你继续做你的小资产阶级，每个人的想法不可能相同。<br />
有的人说：“你怎么不去行动推翻政府啊？”你傻啊~不知道啥叫保存实力啊？在审时度势和周密计划后不是不可以，但是有个前提是，这个政府确实该推翻了。<br />
有的人说：“&#8230;”我只能劝你多看些书，自己多思考思考不是啥子坏事。</p>
<p>从明天起，做一个幸福的人，<br />
读书，工作，写写代码，<br />
从明天起，享受生活和时间，<br />
人生如梦，一尊还酹江月。</p>
<p>btw：<br />
1、今天听到的一个小笑话：<br />
政府派了几千人来代表我们，又派了七十万武装力量来保护他们，以免我们知道他们提的议案以后冲过去把他们掐死。<br />
2、以后专心维护教程：）</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/08/977/" title="写了个小游戏让大家练练手">写了个小游戏让大家练练手</a></li><li><a href="http://www.figoyao.com/blog/2010/02/24/1106/" title="时间啊时间">时间啊时间</a></li><li><a href="http://www.figoyao.com/blog/2010/04/14/1315/" title="一切如常">一切如常</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/02/10/1029/" title="不要勉强用奔3的CPU跑Win7的系统">不要勉强用奔3的CPU跑Win7的系统</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/05/1153/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>推荐2个站点</title>
		<link>http://www.figoyao.com/blog/2010/03/02/1142/</link>
		<comments>http://www.figoyao.com/blog/2010/03/02/1142/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:35:19 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1142</guid>
		<description><![CDATA[和辅助工具没啥大关系，是我偶尔查询网页编程知识的地方：
<a href="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/" target="_blank">清华图书馆的在线资源</a>
<a href="http://www.w3school.com/" target="_blank">W3C School</a>
<a href="http://www.w3school.com.cn/" target="_blank">W3C School汉化版</a>
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/02/1142/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>和辅助工具没啥大关系，是我偶尔查询网页编程知识的地方：<br />
<a href="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/" target="_blank">清华图书馆的在线资源</a><br />
<a href="http://www.w3school.com/" target="_blank">W3C School</a><br />
<a href="http://www.w3school.com.cn/" target="_blank">W3C School汉化版</a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/04/859/" title="游戏辅助工具开发教程-从入门到精通之A3_16篇">游戏辅助工具开发教程-从入门到精通之A3_16篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/02/1142/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页类游戏辅助工具一点说明</title>
		<link>http://www.figoyao.com/blog/2010/03/02/1131/</link>
		<comments>http://www.figoyao.com/blog/2010/03/02/1131/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 02:45:55 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[分析]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[网页游戏]]></category>
		<category><![CDATA[辅助工具]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1131</guid>
		<description><![CDATA[就网页类游戏的分类，鉴于我的读书比较少，目前知道类型只有以下几种：
1、<strong>纯网页打造</strong>
html+php+图片
2、<strong>Flash类型</strong>
php+Flash脚本
3、<strong>内嵌Java类型</strong>
微软的silverlight再等等看吧，市场份额出来就会有人用了。Java网页游戏我去年体验过欧洲的一个3D大型多人在线游戏，[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/02/1131/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>就网页类游戏的分类，鉴于我的读书比较少，目前知道类型只有以下几种：<br />
1、<strong>纯网页打造</strong><br />
html+php+图片<br />
2、<strong>Flash类型</strong><br />
php+Flash脚本<br />
3、<strong>内嵌Java类型</strong></p>
<p>微软的silverlight再等等看吧，市场份额出来就会有人用了。Java网页游戏我去年体验过欧洲的一个3D大型多人在线游戏，上面人比较多，网速慢，属于一款内涵式游戏，所以体验体验就出来了，不过当时的想法是，既然那个开发商用Java都把3D效果做的这么不错，为啥不做成客户端呢（这个Java游戏经常的场景切换造成的用户体验很不好）。<br />
架构决定的网页游戏天生对于客户端请求的不信任，所以大部分网页游戏的大部分操作都是<strong>时间累积</strong>和<strong>查询操作</strong>。所谓时间累积，比如你在线累积时间达到要求就会升级、可以领取特定任务（服务器端一般会在你提交任务完成请求时验证时间差）&#8230;；所谓查询操作，常规意义的比如查看用户参数，比如金钱、经验等等，广义的比如开心农场形式的养成类游戏里的偷菜、施肥等等，因为你提交偷菜请求的时候如果服务器端只有10颗白菜，你最多只可以摘10颗而已。这些特性，或者说缺陷也决定了网页类游戏在排除服务器架构和数据处理存在Bug的前提下，大多是提供一种自动化操作，也即模拟操作，表面上这其中不涉及恶性破坏游戏平衡性，实际由于正常玩家的时间和操作的熟练和程序相比已经输在起跑线了，加之有些辅助工具频繁的提交请求，当辅助工具的数量达到一定规模，服务器机房就可能会出现小型的暴风断网门事件，所以一般都在服务端检测请求间隔，或者设置一个动态加密字串，比如开心农场的Farmkey等等。这也提醒我们在写此类辅助工具的时候时间参数的构造不是可有可无的，算法的选择会决定你模拟的真实性。<br />
目前网页游戏架构体系为典型的【客户端&lt;-&gt;服务器】类型，因此辅助工具的流程大体如下：<br />
1、验证账号合法性，建立和服务器的对话(Session)。这里的对话你可以理解为相亲，2个人都是陌生的，在媒介（可能是你的同学或者长辈）的认证下，你和相亲对象进入媒介提供的某地点开始谈话：这就是客户端和服务器Session的作用，表示在此时此地，你是作为被认证的相亲人来和相亲对象相亲，这之后的对话都是你们之间的对话。这个相亲的比方看起来像是废话，但客户端&lt;-&gt;服务器建立对话的目的就是保证后面的请求和响应时本次对话的内容，所以你不必每次都输入账户密码来认证，只要证明你当前的请求属于本次会话，你的合法请求都是会被响应的。<br />
2、通过向服务器端发送请求，获取初始化用户参数所需数据。包括用户的各种属性和状态，然后更新辅助工具的数据。<br />
3、根据用户指令或者预先设置的规则来发送请求或开始进入循环挂机。这里需要注意的是，会话是有时限的，比如在相亲对象不变的前提下，你可以说我们谈得投机，一天一夜没合眼，但是总有停止的时候，网络会话中为了表示会话的时效性，有个会话生存期，超过这个时间咱们此次会话到此结束，想要再谈，ok，重新建立会话即可。</p>
<p>因为在前面《<a href="http://www.figoyao.com/blog/2010/01/04/361/">征求意见</a>》一文中，有人提到说希望讲下网页游戏辅助工具的编写，所以这里捎带讲了些，其实后面的网络教程里面如果对于网游的封包修改学会后，这个很容易上手的。分析请求数据的需要工具：<br />
1、火狐+插件[Live Http headers+Flash down]；<br />
2、Http Debuger；<br />
3、抓包工具；<br />
4、swf反编译工具。<br />
可以下载<a href="http://bbs.pediy.com">看雪</a>的<a href="http://bbs.pediy.com/showthread.php?t=106158">加密与解密工具新年大礼包</a>，里面也有分析工具，如Http Debuger、swf反编译工具等。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/02/1131/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>荣光医院辅助工具和源码</title>
		<link>http://www.figoyao.com/blog/2010/03/02/1119/</link>
		<comments>http://www.figoyao.com/blog/2010/03/02/1119/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 16:13:13 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[VC]]></category>
		<category><![CDATA[助手]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[荣光医院]]></category>
		<category><![CDATA[辅助工具]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1119</guid>
		<description><![CDATA[官方要<a href="http://bbs.rongame.com/bbs/viewthread.php?tid=807&#38;extra=page%3D1" target="_blank">更新游戏版本</a>至1.20，所以暂时不打算把所有占位代码填充了，等到1.20出来后我再更新这个代码吧。
<img class="alignnone size-full wp-image-1120" title="ronUpdate" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/ronUpdate.png" alt="ronUpdate" width="609" height="317" />
辅助工具目前最后的样子如下：
<img class="alignnone size-full wp-image-1121" title="RonMainDlg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/RonMainDlg.png" alt="RonMainDlg" width="619" height="450" />
本来是打算有个登录窗口用于初始化数据的，时间关系没有做，不过留了空位：）
<img class="alignnone size-full wp-image-1122" title="loginDlg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/loginDlg.png" alt="loginDlg" width="311" height="250" />
源代码中<strong>仅仅是提供了提交查询用户参数的一个实现</strong>，<strong>其它暂未实现</strong>，但是大同小异，属于力气[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/03/02/1119/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>官方要<a href="http://bbs.rongame.com/bbs/viewthread.php?tid=807&amp;extra=page%3D1" target="_blank">更新游戏版本</a>至1.20，所以暂时不打算把所有占位代码填充了，等到1.20出来后我再更新这个代码吧。<br />
<img class="alignnone size-full wp-image-1120" title="ronUpdate" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/ronUpdate.png" alt="ronUpdate" width="609" height="317" /><br />
辅助工具目前最后的样子如下：<br />
<img class="alignnone size-full wp-image-1121" title="RonMainDlg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/RonMainDlg.png" alt="RonMainDlg" width="619" height="450" /><br />
本来是打算有个登录窗口用于初始化数据的，时间关系没有做，不过留了空位：）<br />
<img class="alignnone size-full wp-image-1122" title="loginDlg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/loginDlg.png" alt="loginDlg" width="311" height="250" /><br />
源代码中<strong>仅仅是提供了提交查询用户参数的一个实现</strong>，<span style="color: #ff0000;"><strong>其它暂未实现</strong></span>，但是大同小异，属于力气活，前段时间教程拉了一段时间，放出这个源码算是对于大家的精神补偿：）里面涉及到简单的多线程和Internet编程的知识，我后面都会讲到，这个代码是花2个晚上写的，但我已经尽量给出必要注释，其中有少量地方定义了变量但暂未用到，里面<span style="color: #ff0000;">少部分代码是防止有人拿去卖钱而插入的，如果变量配置错误的话很容易被官方检测到而导致封号，但不是病毒：）</span>。<br />
<img class="alignnone size-full wp-image-1124" title="roncode" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/roncode.png" alt="roncode" width="366" height="474" /><br />
下图是正常游戏和辅助工具登录获取的数据对比，由于有先后，所以有些偏差，目前程序可以获取的数据如下：<br />
徽章信息，预约信息，金钱、声望、荣耀、元宝，前台排队信息。虽然服务器传输回来的是<a href="http://zh.wikipedia.org/wiki/JSON" target="_blank">JSON</a>格式的数据，但是本次代码没有使用<a href="http://www.json.org/" target="_blank">第三方处理代码</a>，而是简单实现了一个分析JSON变量对应数值的函数。<br />
这个账户的徽章是满的；由于刚登录领取了病人所以预约进度是0%。<br />
<img class="alignnone size-full wp-image-1123" title="roninit" src="http://www.figoyao.com/blog/wp-content/uploads/2010/03/roninit.png" alt="roninit" width="653" height="363" /><br />
程序源代码：<a href="http://down.qiannao.com/space/file/figoyao/share/RonGame.rar/.page" target="_blank">点击下载</a><br />
解压密码：<strong>figoyao</strong></p>
<p>btw:<br />
1、这里就<strong>simple同学</strong>对于输入法注入有疑惑作个简单的说明：输入法注入的目的是获取权限，如果会写驱动就不必用这个；杀毒软件报毒在于有些键盘记录木马使用了这个技术，诺顿原来有个工程师演讲的PPT说的就是这个，不过暂时找不到了。我也不推荐使用输入法注入，所以想了想还是觉得不放源码了，并且跳过这个内容。<br />
2、我暂时没有第二点需要补充的了：）</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1131/" title="网页类游戏辅助工具一点说明">网页类游戏辅助工具一点说明</a></li><li><a href="http://www.figoyao.com/blog/2010/02/28/1114/" title="开源是个好事情">开源是个好事情</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/03/02/1119/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-02-28</title>
		<link>http://www.figoyao.com/blog/2010/02/28/1118/</link>
		<comments>http://www.figoyao.com/blog/2010/02/28/1118/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 13:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/02/28/1118/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>zz他是一名共产党员，但心没有被狗吃掉。 <a href="http://twitter.com/figoyao/statuses/9521662106" class="aktt_tweet_time">#</a></li>
<li>zz蓝翔的外部口号是：不想当黑客的厨师，不是好司机；内部口号是：我运即国运，国之安危系于南翔一校。 <a href="http://twitter.com/figoyao/statuses/9521952050" class="aktt_tweet_time">#</a></li>
<li>天下熙熙皆为利来，天下攘攘皆为利往。 <a href="http://twitter.com/figoyao/statuses/9601872575" class="aktt_tweet_time">#</a></li>
<li>郭泉是个Demo产品，在当前极权专政环境测试下暴露了缺陷：如果要组党，请组地下党。这和木马软件要进入Rin[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/28/1118/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>zz他是一名共产党员，但心没有被狗吃掉。 <a href="http://twitter.com/figoyao/statuses/9521662106" class="aktt_tweet_time">#</a></li>
<li>zz蓝翔的外部口号是：不想当黑客的厨师，不是好司机；内部口号是：我运即国运，国之安危系于南翔一校。 <a href="http://twitter.com/figoyao/statuses/9521952050" class="aktt_tweet_time">#</a></li>
<li>天下熙熙皆为利来，天下攘攘皆为利往。 <a href="http://twitter.com/figoyao/statuses/9601872575" class="aktt_tweet_time">#</a></li>
<li>郭泉是个Demo产品，在当前极权专政环境测试下暴露了缺陷：如果要组党，请组地下党。这和木马软件要进入Ring0不谋而合。 <a href="http://twitter.com/figoyao/statuses/9603504726" class="aktt_tweet_time">#</a></li>
<li>中国农大、华中农大和XX农大那些帮助批准转基因作物的傻逼教授以及农业部的傻逼官员们，带着你们的一号文件滚出中国，草泥马！没有一个周期80年的数据你们怎么敢说安全？！中华民族又要被当小白鼠了。 <a href="http://twitter.com/figoyao/statuses/9722968385" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/28/1118/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>开源是个好事情</title>
		<link>http://www.figoyao.com/blog/2010/02/28/1114/</link>
		<comments>http://www.figoyao.com/blog/2010/02/28/1114/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 09:47:55 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[助手]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[荣光医院]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1114</guid>
		<description><![CDATA[<img src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/rongame.png" alt="rongame" title="rongame" width="618" height="445" class="alignnone size-full wp-image-1113" />
这些天比较忙，输入法注入代码已经写好，我在考虑要不要放出。上面是昨天写的一个小程序，<a href="http://www.renren.com">人人网</a>里的荣光医院游戏助手，百度和猫扑也有这个网页游戏。今晚加些错误处理代码，<a href="http://www.figoyao.com/blog/2010/03/02/1119/">然后放出</a>。
看起来比Python写的要好哦：）
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/28/1114/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/rongame.png" alt="rongame" title="rongame" width="618" height="445" class="alignnone size-full wp-image-1113" /><br />
这些天比较忙，输入法注入代码已经写好，我在考虑要不要放出。上面是昨天写的一个小程序，<a href="http://www.renren.com">人人网</a>里的荣光医院游戏助手，百度和猫扑也有这个网页游戏。今晚加些错误处理代码，<a href="http://www.figoyao.com/blog/2010/03/02/1119/">然后放出</a>。<br />
看起来比Python写的要好哦：）</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1131/" title="网页类游戏辅助工具一点说明">网页类游戏辅助工具一点说明</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/28/1114/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>时间啊时间</title>
		<link>http://www.figoyao.com/blog/2010/02/24/1106/</link>
		<comments>http://www.figoyao.com/blog/2010/02/24/1106/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 15:24:06 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[UTF16]]></category>
		<category><![CDATA[UTF8]]></category>
		<category><![CDATA[转换]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1106</guid>
		<description><![CDATA[本来说今天把<a href="http://www.figoyao.com/blog/2010/02/23/1074/">输入法那部分</a>教程写完的，我的一个同学打电话询问，我答应她的外挂为啥还没完成，so，给她写了个QQ游戏辅助集合，所谓N合1，都是网页游戏，耽误了安排。中间涉及到字符的转换，顺便写了个UTF16和UTF8转换的小程序，这个会在网络编程讲解。小程序功能如下：
1、查看指定UTF-16符号对应的[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/24/1106/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>本来说今天把<a href="http://www.figoyao.com/blog/2010/02/23/1074/">输入法那部分</a>教程写完的，我的一个同学打电话询问，我答应她的外挂为啥还没完成，so，给她写了个QQ游戏辅助集合，所谓N合1，都是网页游戏，耽误了安排。中间涉及到字符的转换，顺便写了个UTF16和UTF8转换的小程序，这个会在网络编程讲解。小程序功能如下：<br />
1、查看指定UTF-16符号对应的UTF-8和UTF-16编码；<br />
2、把指定的数值转换为对应UTF-16符号。<br />
<img src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/UTF16.png" alt="UTF16" title="UTF16" width="251" height="204" class="alignnone size-full wp-image-1107" /><br />
<a href="http://figoyao.com/blog/file/UTF16ToUTF8.rar">点击下载</a></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/26/778/" title="请收藏备份站点网址">请收藏备份站点网址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/703/" title="第二次被封杀">第二次被封杀</a></li><li><a href="http://www.figoyao.com/blog/2009/11/29/56/" title="游戏辅助工具开发教程-从入门到精通之A1_2篇">游戏辅助工具开发教程-从入门到精通之A1_2篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/24/1106/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_19篇</title>
		<link>http://www.figoyao.com/blog/2010/02/23/1074/</link>
		<comments>http://www.figoyao.com/blog/2010/02/23/1074/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 03:46:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[注入]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1074</guid>
		<description><![CDATA[作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a>
本篇进入输入法注入的部分。因为这种方法在很多键盘记录木马中应用不少，所以有的杀毒软件会报警，因此我的意见是：可以不用的就别用；如果会驱动就不去考虑输入法；作为最后的备选方案可以考虑。
输入法的官方称呼为：Input Method Editor（缩写IME）。从Windows2000以[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/23/1074/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a></p>
<p>本篇进入输入法注入的部分。因为这种方法在很多键盘记录木马中应用不少，所以有的杀毒软件会报警，因此我的意见是：可以不用的就别用；如果会驱动就不去考虑输入法；作为最后的备选方案可以考虑。</p>
<p>输入法的官方称呼为：Input Method Editor（缩写IME）。从Windows2000以后，所有的安装了亚洲语言包的系统都可以使用，IME实际上通过输入法管理器（Input Method Manager：缩写IMM）的调用来实现，但并非所有的系统都支持IMM，可通过向GetSystemMetrics函数传递SM_IMMENABLED参数来检测系统是否支持IMM。IME包括2个组件：转换接口，用于导出IMM需要调用的标准接口函数，也即我们所说的*.ime文件；界面接口，用于接收消息和响应用户输入，也即我们的控制窗口。</p>
<p>ime文件实际就是dll文件，下面我们来看下需要导出哪些标准接口函数供IMM调用，大家最好动手自己操作一下：<br />
<strong>1</strong>、对于Windows NT系列，进入系统目录下的system32目录，即\WINDOWS\system32，搜索*.ime文件，我的电脑搜索结果如下：<br />
<img class="alignnone size-full wp-image-1076" title="imefile" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/imefile.png" alt="imefile" width="280" height="169" /><br />
拷贝这些文件到单独的一个文件夹，我这里是新建了一个ime文件夹。<a href="http://www.onlinedown.net/soft/39557.htm" target="_blank">下载PEditor</a>或者找到VC自带的DUMPBIN。<br />
<strong>2</strong>、PEditor查看标准导出函数：<br />
搜狗拼音输入法导出函数列表如下：<br />
<img class="alignnone size-full wp-image-1077" title="sougoupy" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/sougoupy.png" alt="sougoupy" width="277" height="250" /><br />
智能ABC输入法导出函数列表如下：<br />
<img class="alignnone size-full wp-image-1078" title="winabc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/winabc.png" alt="winabc" width="275" height="302" /><br />
<strong><em>2</em><span style="color: #ff0000;">&#8216;</span></strong>、使用DUMPBIN查看导出函数：<br />
我这里把DUMPBIN拷贝一份到ime文件夹，然后通过命令行切换目录至ime：<br />
<img class="alignnone size-full wp-image-1079" title="cmdime" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/cmdime.png" alt="cmdime" width="223" height="76" /><br />
把导出函数保存在imeabc.txt中：<br />
<img class="alignnone size-full wp-image-1080" title="dumpbinabc" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/dumpbinabc.png" alt="dumpbinabc" width="390" height="71" /><br />
文本中部分内容：<br />
<img class="alignnone size-full wp-image-1081" title="imeabctxt" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/imeabctxt.png" alt="imeabctxt" width="409" height="401" /></p>
<p>通过上面操作我们看到，搜狗拼音和智能ABC导出的标准接口函数数目不一致，这说明存在一个最小导出函数集，不过此处我们先看看智能ABC导出的这19个标准接口函数的意义。此处多次出现标准接口函数一词，你可以理解为和系统标准入口WinMain函数一样的事物，只不过WinMain由系统调用，IME导出的标准函数由IMM调用而已。主要接口函数如下：<br />
1、初始化IME<br />
BOOL <strong><span style="color: #800000;">ImeInquire</span></strong>(<br />
LPIMEINFO lpIMEInfo,//需要初始化的IMEINFO结构体地址<br />
LPTSTR lpszWndClass,//接收UI类的字符串地址<br />
LPCTSTR lpszData//一般为NULL,不必关心<br />
)<br />
使用<a href="http://www.hex-rays.com/idapro/overview.htm" target="_blank">IDA</a>分析<strong>智能ABC</strong>对于该函数的执行过程：<br />
<img class="alignnone size-full wp-image-1083" title="ImeInquire" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/ImeInquire.png" alt="ImeInquire" width="625" height="500" /></p>
<p>2、//通过对话框来获取附加信息<br />
BOOL <strong><span style="color: #800000;">ImeConfigure</span></strong>(<br />
HKL hKL,//输入法句柄<br />
HWND hWnd,//对话框的父窗口句柄<br />
DWORD dwMode,//调用本函数的目的<br />
LPVOID lpData//指向REGISTERWORD结构的指针<br />
)</p>
<p>3、//格式控制字符(format effective character)转换函数<br />
DWORD <strong><span style="color: #800000;">IMEConversionList</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
LPCTSTRlpSrc,//要转换的字符<br />
LPCANDIDATELIST lpDst,//接收转换后字符的地址<br />
DWORD dwBufLen,//lpDst长度,以byte为计数单位<br />
UINT uFlag//指定lpSource和lpDest的具体用途<br />
//uFlag可为GCL_CONVERSION、GCL_REVERSECONVERSION或GCL_REVERSE_LENGTH<br />
)</p>
<p>4、//关闭当前IME<br />
BOOL <strong><span style="color: #800000;">ImeDestroy</span></strong>(<br />
UINT uReserved//系统保留,必须为0<br />
)</p>
<p>5、//运行应用程序获取其他IMM函数未能提供的信息<br />
//主要用于国家/地区相关的函数或者IME内部函数<br />
//执行成功返回非0结果<br />
LRESULT <strong><span style="color: #800000;">ImeEscape</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
UINT uEscape,//指定要获取的信息类别<br />
LPVOID lpData//存储uEscape制定信息的地址<br />
)</p>
<p>6、//当前输入法被激活或将失效<br />
BOOL <strong><span style="color: #800000;">ImeSetActiveContext</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
BOOL fFlag//TRUE:被激活;FALSE:将失效<br />
)</p>
<p>7、//处理IMM传递进来的击键消息<br />
BOOL <strong><span style="color: #800000;">ImeProcessKey</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
UINT uVirKey,//待处理的虚拟键码<br />
DWORD lParam,//击键消息中的lParam,即消息回调过程中的lParam<br />
CONST LPBYTE lpbKeyState//指向一个包含当前键盘状态的256字节长的数组<br />
)</p>
<p>8、//用于当前输入法被激活或将失效时执行初始化或清理工作<br />
BOOL <strong><span style="color: #800000;">ImeSelect</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
BOOL fSelect//TRUE:被激活;FALSE:将失效[释放资源]<br />
)</p>
<p>9、//设置字符编码,同时发送WM_IME_COMPOSITION给应用程序<br />
BOOL WINAPI <strong><span style="color: #800000;">ImeSetCompositionString</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
DWORD dwIndex,<br />
LPCVOID lpComp,<br />
DWORD dwCompLen,<br />
LPCVOID lpRead,<br />
DWORD dwReadLen<br />
);</p>
<p>10、//使用IME转换引擎把输入的虚拟键转换为指定编码字符<br />
//执行成功返回转换的击键消息数目<br />
UINT <strong><span style="color: #800000;">ImeToAsciiEx</span></strong>(<br />
UINT uVirKey,//待转换的虚拟键<br />
UINT uScanCode,//扫描码<br />
CONST LPBYTE lpbKeyState,//指向一个包含当前键盘状态的256字节长的数组<br />
LPDWORD lpdwTransBuf,//接收转换后结果的地址<br />
UINT fuState,//活动菜单标志<br />
HIMC hIMC//输入法上下文句柄<br />
)</p>
<p>11、//向当前输入法添加用户字典字符<br />
BOOL WINAPI <strong><span style="color: #800000;">ImeRegisterWord</span></strong>(<br />
LPCTSTR lpszReading,//待添加的字符<br />
DWORD dwStyle,//新字符的类型<br />
LPCTSTR lpszString//待添加字符的编码串<br />
)</p>
<p>12、//从当前输入法移除用户字典字符<br />
BOOL WINAPI <strong><span style="color: #800000;">ImeUnregisterWord</span></strong>(<br />
LPCTSTR lpszReading,//待添加的字符<br />
DWORD dwStyle,//新字符的类型<br />
LPCTSTR lpszString//待添加字符的编码串<br />
)</p>
<p>13、//获取当前IME支持的类型<br />
//返回lpStyleBuf实际获取类型数目<br />
UINT WINAPI <strong><span style="color: #800000;">ImeGetRegisterWordStyle</span></strong>(<br />
UINT nItem,//lpStyleBuf最大可以承载的类型数目<br />
LPSTYLEBUF lpStyleBuf//STYLEBUF结构地址<br />
)</p>
<p>14、//枚举所有符合入口参数指定特征的字典字符串<br />
UINT WINAPI <strong><span style="color: #800000;">ImeEnumRegisterWord</span></strong>(<br />
HKL hKL,//输入法句柄<br />
REGISTERWORDENUMPROC lpfnEnumProc,//枚举回调函数<br />
LPCTSTR lpReading,//指定字符,如果为NULL枚举所有<br />
DWORD dwStyle,//指定类型,如果为NULL枚举所有<br />
LPCTSTR lpszString,//指定编码,如果为NULL枚举所有<br />
LPVOID lpData//应用程序请求数据<br />
)</p>
<p>15、//根据入口参数改变IME状态<br />
//可在此处响应应用程序请求<br />
BOOL <strong><span style="color: #800000;">NotifyIME</span></strong>(<br />
HIMC hIMC,//输入法上下文句柄<br />
DWORD dwAction,//请求类型<br />
DWORD dwIndex,//关联dwAction<br />
DWORD dwValue //关联dwAction<br />
)</p>
<p>至此编写ime调用模块的函数介绍完毕，因为我们是要借壳上市，所以不必关心这些函数如何处理，只需研究下在哪个函数中载入我们辅助工具的dll即可。指导方向就是，初始化和我们的输入法壳将要被切换时载入，因此可选的位置有以下几个：<br />
1、<strong><span style="color: #800000;">DllMain</span></strong>中DLL_PROCESS_ATTACH处；<br />
2、<strong><span style="color: #800000;">ImeSelect</span></strong>被调用时；<br />
3、<strong><span style="color: #800000;">ImeDestroy</span></strong>被调用时；<br />
4、<strong><span style="color: #800000;">ImeInquire</span></strong>被调用时。</p>
<p>实际的情况是，我们一般在<strong><span style="color: #800000;">DllMain</span></strong>和<strong><span style="color: #800000;">ImeSelect</span></strong>中载入dll，<strong><span style="color: #800000;">ImeDestroy</span></strong>中释放dll。我们看下<a href="http://www.230it.com" target="_blank"><strong>无极辅助</strong></a>中输入法注入模块导出函数：<br />
我是在虚拟机里执行的程序，需要查看无极ime模块的可以<a href="http://down.qiannao.com/space/file/figoyao/share/ime.rar/.page" target="_blank">点击下载</a>。<br />
<img class="alignnone size-full wp-image-1096" title="wujiime" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/wujiime.png" alt="wujiime" width="518" height="303" /><br />
无极的ime模块用<a href="http://www.vmprotect.ru/" target="_blank">VMProtect</a>加壳了，下面是导出函数，可以看到多出<strong><span style="color: #800000;">ImeClass_Register</span></strong>和<strong><span style="color: #800000;">ImeClass_Unregister</span></strong>函数，其实没有必要导出这2个函数的，又不是标准函数，只是自定义的输入法UI窗口类的注册和销毁函数，内部使用即可。<br />
<img class="alignnone size-full wp-image-1097" title="wujiexports" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/wujiexports.png" alt="wujiexports" width="390" height="335" /></p>
<p>这次先讲到这里，下篇尽快放出。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/23/1074/" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/02/23/1074/</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/23/1074/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-02-21</title>
		<link>http://www.figoyao.com/blog/2010/02/21/1073/</link>
		<comments>http://www.figoyao.com/blog/2010/02/21/1073/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 13:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/02/21/1073/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>从江南七怪的徒弟郭靖和邱处机的徒弟杨康来看，启蒙导师对小孩智力的影响是多么的深远：小说是我们一厢情愿的想法，正如喜洋洋会被灰太狼吃掉一样，现实生活中，郭靖们永远斗不过杨康的。 <a href="http://twitter.com/figoyao/statuses/9167698777" class="aktt_tweet_time">#</a></li>
<li>赵本山式马屁：党的政策亚克西；余秋雨式马屁：和谐社会花似锦，科学发展势如涛。 <a href="http://twitter.com/figoyao/statuses/9167855610" class="aktt_tweet_time">#</a></li>
<li>余杰：从《中国可以说不》到《中国不高[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/21/1073/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>从江南七怪的徒弟郭靖和邱处机的徒弟杨康来看，启蒙导师对小孩智力的影响是多么的深远：小说是我们一厢情愿的想法，正如喜洋洋会被灰太狼吃掉一样，现实生活中，郭靖们永远斗不过杨康的。 <a href="http://twitter.com/figoyao/statuses/9167698777" class="aktt_tweet_time">#</a></li>
<li>赵本山式马屁：党的政策亚克西；余秋雨式马屁：和谐社会花似锦，科学发展势如涛。 <a href="http://twitter.com/figoyao/statuses/9167855610" class="aktt_tweet_time">#</a></li>
<li>余杰：从《中国可以说不》到《中国不高兴》，再到《中国站起来》，终于形成了“中国人三部曲”。这三本书的思想观念层层递进，清晰地显示了当代中国的法西斯主义思潮从萌芽到发展再到成熟的轨迹。 <a href="http://twitter.com/figoyao/statuses/9168199211" class="aktt_tweet_time">#</a></li>
<li>好铁不打钉，好男不当兵。 <a href="http://twitter.com/figoyao/statuses/9212030240" class="aktt_tweet_time">#</a></li>
<li>按照所有制和生产力水平划分，中国仍处于封建主义阶段。 <a href="http://twitter.com/figoyao/statuses/9320191719" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/21/1073/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>近期教程安排</title>
		<link>http://www.figoyao.com/blog/2010/02/21/1068/</link>
		<comments>http://www.figoyao.com/blog/2010/02/21/1068/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 08:47:49 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[输入法注入]]></category>
		<category><![CDATA[透视]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1068</guid>
		<description><![CDATA[<p>近期的教程安排如下：<br />
1、<a href="http://www.figoyao.com/blog/2010/03/29/1270/" target="_blank">输入法注入</a>；<br />
2、API Hook；<br />
3、DirectX编程基础；<br />
4、实战：FPS类游戏的透视等。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>近期的教程安排如下：<br />
1、<a href="http://www.figoyao.com/blog/2010/03/29/1270/" target="_blank">输入法注入</a>；<br />
2、API Hook；<br />
3、DirectX编程基础；<br />
4、实战：FPS类游戏的透视等。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/21/1068/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>穷则独善其身，达则兼济天下。</title>
		<link>http://www.figoyao.com/blog/2010/02/20/1064/</link>
		<comments>http://www.figoyao.com/blog/2010/02/20/1064/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 13:54:07 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[励志]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1064</guid>
		<description><![CDATA[<p>宠辱不惊，闲看庭前花开花落；<br />
去留无意，漫观天外云卷云舒。</p>
<p>btw：<br />
推荐书目《<a href="http://vip.book.sina.com.cn/book/index_37947.html" target="_blank">学会站着睡觉</a>》，书架上少有的不错的励志书籍。</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/11/29/56/" title="游戏辅助工具开发教程-从入门到精通之A1_2篇">游戏辅助工具开发教程-从入门到精通之A1_2篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2010/01/08/445/" title="跑跑卡丁车私服">跑跑卡丁车私服</a></li><li><a href="http://www.figoyao.com/blog/2010/04/24/1338/" title="折腾无极限">折腾无极限</a></li><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>宠辱不惊，闲看庭前花开花落；<br />
去留无意，漫观天外云卷云舒。</p>
<p>btw：<br />
推荐书目《<a href="http://vip.book.sina.com.cn/book/index_37947.html" target="_blank">学会站着睡觉</a>》，书架上少有的不错的励志书籍。</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/11/18/13/" title="不要一辈子生活在单模式中，重新认识世界的方法！">不要一辈子生活在单模式中，重新认识世界的方法！</a></li><li><a href="http://www.figoyao.com/blog/2010/03/26/1252/" title="电视剧时间：想做你的code">电视剧时间：想做你的code</a></li><li><a href="http://www.figoyao.com/blog/2009/11/28/34/" title="游戏辅助工具开发教程-从入门到精通之A1_1篇">游戏辅助工具开发教程-从入门到精通之A1_1篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/08/152/" title="程序员的幽默">程序员的幽默</a></li><li><a href="http://www.figoyao.com/blog/2010/02/19/1054/" title="正月结束">正月结束</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/20/1064/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>正月结束</title>
		<link>http://www.figoyao.com/blog/2010/02/19/1054/</link>
		<comments>http://www.figoyao.com/blog/2010/02/19/1054/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 01:09:12 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[正月]]></category>
		<category><![CDATA[虎年]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1054</guid>
		<description><![CDATA[<img src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/CS.jpg" alt="CS" title="CS" width="450" height="338" class="alignnone size-full wp-image-1055" />
逐渐恢复正常：）非主流造型的小盆友是越来越多了，其实她是80后：

<img src="http://figoyao.com/images/fzlan.jpg" alt="fzlan" title="fzlan" width="369" height="537" class="alignnone size-full wp-image-1055" />
随机日志<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li><li><a href="http://www.figoyao.com/blog/2009/11/28/24/" title="游戏辅助工具开发教程-从入门到精通之开篇">游戏辅助工具开发教程-从入门到精通之开篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/03/68/" title="游戏辅助工具开发教程-从入门到精通之A1_5篇">游戏辅助工具开发教程-从入门到精通之A1_5篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/12/492/" title="360、红杉和高原10亿元起飞计划的深意">360、红杉和高原10亿元起飞计划的深意</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/709/" title="你们先革命，我随后就到~">你们先革命，我随后就[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/19/1054/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/CS.jpg" alt="CS" title="CS" width="450" height="338" class="alignnone size-full wp-image-1055" /><br />
逐渐恢复正常：）非主流造型的小盆友是越来越多了，其实她是80后：<br />
<embed src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Ffigoyao.com%2Fgame%2Fwow.mp3&#038;playerID=10&#038;bg=0xeeeeee&#038;leftbg=0x99ff00&#038;lefticon=0x666666&#038;rightbg=0x666666&#038;rightbghover=0x99ff00&#038;righticon=0xffffff&#038;righticonhover=0xffffff&#038;text=0x666666&#038;slider=0x666666&#038;track=0xFFFFFF&#038;border=0x666666&#038;loader=0x99ff00&#038;loop=no&#038;autostart=no" type="application/x-shockwave-flash" wmode="transparent" height="40" width="290"></embed><br />
<img src="http://figoyao.com/images/fzlan.jpg" alt="fzlan" title="fzlan" width="369" height="537" class="alignnone size-full wp-image-1055" /></p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/08/977/" title="写了个小游戏让大家练练手">写了个小游戏让大家练练手</a></li><li><a href="http://www.figoyao.com/blog/2010/04/27/1368/" title="关于613地震“谣言”我的看法">关于613地震“谣言”我的看法</a></li><li><a href="http://www.figoyao.com/blog/2009/12/08/159/" title="游戏辅助工具开发教程-从入门到精通之A2_4篇">游戏辅助工具开发教程-从入门到精通之A2_4篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/09/178/" title="游戏辅助工具开发教程-从入门到精通之A2_5篇">游戏辅助工具开发教程-从入门到精通之A2_5篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/19/1054/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter Weekly Updates for 2010-02-14</title>
		<link>http://www.figoyao.com/blog/2010/02/14/1053/</link>
		<comments>http://www.figoyao.com/blog/2010/02/14/1053/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 13:25:00 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[fanfou]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[饭否]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/02/14/1053/</guid>
		<description><![CDATA[<ul class="aktt_tweet_digest">
<li>非我族类其心必异：我们容得下长的像中国人的美国人李彦宏的美国公司百度作恶，却容不下同样是美国公司的Google不作恶。 <a href="http://twitter.com/figoyao/statuses/8835791911" class="aktt_tweet_time">#</a></li>
<li>和编程风格一样，自身性格的缺陷经常是很隐蔽的，人的一生不是随机数生成器，而是一台模式识别、伪随机生成器和环境状态机，加上一点点情感的佐料组成的。 <a href="http://twitter.com/figoyao/statuses/8876574569" class="aktt_tweet_time">#</a></li>
<li>网络编程中同步和异步的区[......]</li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/14/1053/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>非我族类其心必异：我们容得下长的像中国人的美国人李彦宏的美国公司百度作恶，却容不下同样是美国公司的Google不作恶。 <a href="http://twitter.com/figoyao/statuses/8835791911" class="aktt_tweet_time">#</a></li>
<li>和编程风格一样，自身性格的缺陷经常是很隐蔽的，人的一生不是随机数生成器，而是一台模式识别、伪随机生成器和环境状态机，加上一点点情感的佐料组成的。 <a href="http://twitter.com/figoyao/statuses/8876574569" class="aktt_tweet_time">#</a></li>
<li>网络编程中同步和异步的区别在于:同步就是贾君鹏听到妈妈的声音立刻回家;异步状态的贾君鹏可能立刻回家也可能玩一会再回. <a href="http://twitter.com/figoyao/statuses/8882796962" class="aktt_tweet_time">#</a></li>
<li>崇洋媚外的汉奸指的是好的它不学，专制的学的很快&#8212;典型的比如，姜瑜：“美国政府也限制言论自由，也镇压百姓。” <a href="http://twitter.com/figoyao/statuses/8889312737" class="aktt_tweet_time">#</a></li>
<li>“愤青”的思维方式会让你潜移默化的被自己强迫，眼中看到的更多的是好的事物的坏的一面以及更多的关注不好的事物；纵然，作为茫茫宇宙中的一尘埃，人类的丑陋又算得了什么呢，理想只不过是自我麻醉的杜冷丁而已。 <a href="http://twitter.com/figoyao/statuses/8953950077" class="aktt_tweet_time">#</a></li>
<li>对他们来说，我们是小人物；对我们来说，他们不算人物。 <a href="http://twitter.com/figoyao/statuses/9001172658" class="aktt_tweet_time">#</a></li>
<li>梁启超:夫孰使我百业俱失，无所衣食者，政府也；夫孰使百物腾涌，致我终岁勤劳而不得养其父母者，政府也；夫孰使我一栗一缕之蓄积，皆使吏胥之婪索者，政府也；夫孰使盗贼充斥，致我晷刻不能即安者，政府也…… <a href="http://twitter.com/figoyao/statuses/9046276797" class="aktt_tweet_time">#</a></li>
<li>每年央视都要雇佣一堆专业鼓掌手和叫好嘴，真累。#chunwan <a href="http://twitter.com/figoyao/statuses/9053695581" class="aktt_tweet_time">#</a></li>
<li>影帝温秀秀：当你不为人家的一句话感激涕零的时候，你才开始活得有尊严。 <a href="http://twitter.com/figoyao/statuses/9061597905" class="aktt_tweet_time">#</a></li>
<li>岁月是调味剂 <a href="http://tv.sohu.com/s2009/shediao1983/" rel="nofollow">http://tv.sohu.com/s2009/shediao1983/</a> <a href="http://twitter.com/figoyao/statuses/9092853546" class="aktt_tweet_time">#</a></li>
</ul>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2010/04/04/1312/" title="Twitter Weekly Updates for 2010-04-04">Twitter Weekly Updates for 2010-04-04</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li><li><a href="http://www.figoyao.com/blog/2010/03/21/1219/" title="Twitter Weekly Updates for 2010-03-21">Twitter Weekly Updates for 2010-03-21</a></li><li><a href="http://www.figoyao.com/blog/2010/03/07/1167/" title="Twitter Weekly Updates for 2010-03-07">Twitter Weekly Updates for 2010-03-07</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/14/1053/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CrazyData小游戏源码</title>
		<link>http://www.figoyao.com/blog/2010/02/11/1043/</link>
		<comments>http://www.figoyao.com/blog/2010/02/11/1043/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 06:05:45 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[新年]]></category>
		<category><![CDATA[源码]]></category>
		<category><![CDATA[足球]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1043</guid>
		<description><![CDATA[源码因为写得时候只是想测试下大家的功力，加之时间很短，所以可以称作是quick and dirty code的典型，大家将就看吧：<a href="http://down.qiannao.com/space/file/figoyao/share/CrazyDataSrc.rar/.page" target="_blank">点击下载</a>。年前就暂时不更新教程了，大家都休息几天：）中国足球队总算是<a href="http://sports.163.com/special/000535TV/dongyasiqiangsai.html" target="_blank">吐了口气</a>，不过路还长，希望他们以后踢出水平，作为一个资深的业余球员加教练，我给中国队那些孩子的建议就是[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/11/1043/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>源码因为写得时候只是想测试下大家的功力，加之时间很短，所以可以称作是<span style="color: #ff0000;">quick and dirty</span> code的典型，大家将就看吧：<a href="http://down.qiannao.com/space/file/figoyao/share/CrazyDataSrc.rar/.page" target="_blank">点击下载</a>。<span style="color: #800000;">年前就暂时不更新教程了，大家都休息几天：）<span style="color: #000000;">中国足球队总算是<a href="http://sports.163.com/special/000535TV/dongyasiqiangsai.html" target="_blank">吐了口气</a>，不过路还长，希望他们以后踢出水平，作为一个资深的业余球员加教练，我给中国队那些孩子的建议就是：在满足物质生活需求后，人，还是要有一点精神和追求的，否则你永远不会懂足球运动的意义。</span></span></p>
<p>新年马上到了，身为伟大的中华民族的一份子，祝福大家新的一年里学到更多的知识，你们的不断成长会让将来的你们倍感欣慰的！时间飞逝只有真正长大了才体会的出来，觉得昨天还是小孩子的自己，突然一觉醒来已经是成人了。但是在父母眼中你永远是孩子，所以多陪陪父母，尽量不要惹他们生气，因为有时候他们的决定可能在你看来是没有替你考虑，其实等你长大了心理成熟了，你才能理解父母是多么的不容易。好了，这里就不多说了，下面有请中国娃娃为大家带来一首恭贺新春的歌曲：<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="290" height="40" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fwww.sdrt.com%2FHome%2FZhuanti%2F2Xinwenzhuanti%2FShehui%2FChunjie%2FYuhai%2FPic%2FBainian.Mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x357dce&amp;lefticon=0xFFFFFF&amp;rightbg=0xf06a51&amp;rightbghover=0xaf2910&amp;righticon=0xFFFFFF&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;loop=no&amp;autostart=no" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="290" height="40" src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fwww.sdrt.com%2FHome%2FZhuanti%2F2Xinwenzhuanti%2FShehui%2FChunjie%2FYuhai%2FPic%2FBainian.Mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x357dce&amp;lefticon=0xFFFFFF&amp;rightbg=0xf06a51&amp;rightbghover=0xaf2910&amp;righticon=0xFFFFFF&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;loop=no&amp;autostart=no" wmode="transparent"></embed></object></p>
<p><img class="alignnone size-full wp-image-1044" title="新年好" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/zgww.jpg" alt="zgww" width="550" height="722" /></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1119/" title="荣光医院辅助工具和源码">荣光医院辅助工具和源码</a></li><li><a href="http://www.figoyao.com/blog/2009/12/10/190/" title="游戏辅助工具开发教程-从入门到精通之A2_7篇">游戏辅助工具开发教程-从入门到精通之A2_7篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/11/1043/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>不要勉强用奔3的CPU跑Win7的系统</title>
		<link>http://www.figoyao.com/blog/2010/02/10/1029/</link>
		<comments>http://www.figoyao.com/blog/2010/02/10/1029/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 06:39:21 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[哲理]]></category>
		<category><![CDATA[思考]]></category>
		<category><![CDATA[门当户对]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=1029</guid>
		<description><![CDATA[<p>以前看到的文章，今天又无意中看到了，收藏之。通俗的说就是门当户对：要么天生；要么努力。<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="290" height="40" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fvideo.17173.com%2Fav%2Fmovie%2Fwar3%2Fother%2Fpikaxiu%2Fjay-yequ.mp3&#38;playerID=10&#38;bg=0xeeeeee&#38;leftbg=0x99ff00&#38;lefticon=0x666666&#38;rightbg=0x666666&#38;rightbghover=0x99ff00&#38;righticon=0xffffff&#38;righticonhover=0xffffff&#38;text=0x666666&#38;slider=0x666666&#38;track=0xFFFFFF&#38;border=0x666666&#38;loader=0x99ff00&#38;loop=no&#38;autostart=no" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="290" height="40" src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fvideo.17173.com%2Fav%2Fmovie%2Fwar3%2Fother%2Fpikaxiu%2Fjay-yequ.mp3&#38;playerID=10&#38;bg=0xeeeeee&#38;leftbg=0x99ff00&#38;lefticon=0x666666&#38;rightbg=0x666666&#38;rightbghover=0x99ff00&#38;righticon=0xffffff&#38;righticonhover=0xffffff&#38;text=0x666666&#38;slider=0x666666&#38;track=0xFFFFFF&#38;border=0x666666&#38;loader=0x99ff00&#38;loop=no&#38;autostart=no" wmode="transparent"></embed></object></p>
<p><img class="alignnone size-full wp-image-1000" title="01" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/01.jpg" alt="01" width="478" height="333" /><br />
<img class="alignnone size-full wp-image-1001" title="02" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/02.jpg" alt="02" width="477" height="358" /><br />
<img class="alignnone size-full wp-image-1002" title="03" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/03.jpg" alt="03" width="478" height="358" /><br />
<img class="alignnone size-full wp-image-1003" title="04" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/04.gif" alt="04" width="478" height="358" /><br />
<img class="alignnone size-full wp-image-1004" title="05" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/05.gif" alt="05" width="478" height="359" /><br />
<img class="alignnone size-full wp-image-1005" title="06" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/06.gif" alt="06" width="477" height="358" /><br />
<img class="alignnone size-full wp-image-1006" title="07" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/07.gif" alt="07" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1007" title="08" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/08.gif" alt="08" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1008" title="09" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/09.gif" alt="09" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1009" title="10" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/10.gif" alt="10" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1010" title="11" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/11.gif" alt="11" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1011" title="12" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/12.gif" alt="12" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1012" title="13" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/13.gif" alt="13" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1013" title="14" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/14.gif" alt="14" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1014" title="15" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/15.gif" alt="15" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1015" title="16" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/16.gif" alt="16" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1016" title="17" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/17.gif" alt="17" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1017" title="18" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/18.gif" alt="18" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1018" title="19" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/19.gif" alt="19" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1019" title="20" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/20.gif" alt="20" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1020" title="21" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/21.gif" alt="21" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1021" title="22" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/22.gif" alt="22" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1022" title="23" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/23.gif" alt="23" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1023" title="24" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/24.gif" alt="24" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1025" title="26" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/26.gif" alt="26" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1026" title="27" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/27.gif" alt="27" width="476" height="358" /><br />
<img title="25" src="../wp-content/uploads/2010/02/25.gif" alt="25" width="476" height="358" /></p>
<p>这是很早拍的一个DV，青稚溢于言表啊：）<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&#38;showAd=0&#38;show_pre=1&#38;show_next=1&#38;VideoIDS=XMTYyMDIzMDA=&#38;isAutoPlay=false&#38;isDebug=false&#38;UserID=&#38;winType=interior&#38;playMovie=true&#38;MMControl=false&#38;MMout=false&#38;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&#38;showAd=0&#38;show_pre=1&#38;show_next=1&#38;VideoIDS=XMTYyMDIzMDA=&#38;isAutoPlay=false&#38;isDebug=false&#38;UserID=&#38;winType=interior&#38;playMovie=true&#38;MMControl=false&#38;MMout=false&#38;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1373/" title="关于博客今后的定位">关于博客今后的定位</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>以前看到的文章，今天又无意中看到了，收藏之。通俗的说就是门当户对：要么天生；要么努力。<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="290" height="40" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fvideo.17173.com%2Fav%2Fmovie%2Fwar3%2Fother%2Fpikaxiu%2Fjay-yequ.mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x99ff00&amp;lefticon=0x666666&amp;rightbg=0x666666&amp;rightbghover=0x99ff00&amp;righticon=0xffffff&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x99ff00&amp;loop=no&amp;autostart=no" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="290" height="40" src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fvideo.17173.com%2Fav%2Fmovie%2Fwar3%2Fother%2Fpikaxiu%2Fjay-yequ.mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x99ff00&amp;lefticon=0x666666&amp;rightbg=0x666666&amp;rightbghover=0x99ff00&amp;righticon=0xffffff&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x99ff00&amp;loop=no&amp;autostart=no" wmode="transparent"></embed></object></p>
<p><img class="alignnone size-full wp-image-1000" title="01" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/01.jpg" alt="01" width="478" height="333" /><br />
<img class="alignnone size-full wp-image-1001" title="02" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/02.jpg" alt="02" width="477" height="358" /><br />
<img class="alignnone size-full wp-image-1002" title="03" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/03.jpg" alt="03" width="478" height="358" /><br />
<img class="alignnone size-full wp-image-1003" title="04" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/04.gif" alt="04" width="478" height="358" /><br />
<img class="alignnone size-full wp-image-1004" title="05" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/05.gif" alt="05" width="478" height="359" /><br />
<img class="alignnone size-full wp-image-1005" title="06" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/06.gif" alt="06" width="477" height="358" /><br />
<img class="alignnone size-full wp-image-1006" title="07" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/07.gif" alt="07" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1007" title="08" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/08.gif" alt="08" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1008" title="09" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/09.gif" alt="09" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1009" title="10" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/10.gif" alt="10" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1010" title="11" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/11.gif" alt="11" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1011" title="12" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/12.gif" alt="12" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1012" title="13" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/13.gif" alt="13" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1013" title="14" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/14.gif" alt="14" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1014" title="15" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/15.gif" alt="15" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1015" title="16" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/16.gif" alt="16" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1016" title="17" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/17.gif" alt="17" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1017" title="18" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/18.gif" alt="18" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1018" title="19" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/19.gif" alt="19" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1019" title="20" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/20.gif" alt="20" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1020" title="21" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/21.gif" alt="21" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1021" title="22" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/22.gif" alt="22" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1022" title="23" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/23.gif" alt="23" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1023" title="24" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/24.gif" alt="24" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1025" title="26" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/26.gif" alt="26" width="476" height="358" /><br />
<img class="alignnone size-full wp-image-1026" title="27" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/27.gif" alt="27" width="476" height="358" /><br />
<img title="25" src="../wp-content/uploads/2010/02/25.gif" alt="25" width="476" height="358" /></p>
<p>这是很早拍的一个DV，青稚溢于言表啊：）<br />
<object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTYyMDIzMDA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTYyMDIzMDA=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1373/" title="关于博客今后的定位">关于博客今后的定位</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/10/1029/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google，你难道不知道中国是下个朝鲜吗？！</title>
		<link>http://www.figoyao.com/blog/2010/02/09/994/</link>
		<comments>http://www.figoyao.com/blog/2010/02/09/994/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 02:49:47 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[天朝]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=994</guid>
		<description><![CDATA[Google计划<a href="http://net.chinabyte.com/105/11139605.shtml">为Gmail增加微博功能</a>，如果和Twitter一样可以匿名访问的话，Gmail也要被墙了。非我族类其心必异：我们容得下长的像中国人的美国人李彦宏的外国公司百度作恶，却容不下同样是外国公司的Google不作恶。
世风日下并不是江泽民之流在接受华莱士同志采访时所言的中国人素质差这么简单，[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/09/994/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>Google计划<a href="http://net.chinabyte.com/105/11139605.shtml">为Gmail增加微博功能</a>，如果和Twitter一样可以匿名访问的话，Gmail也要被墙了。非我族类其心必异：我们容得下长的像中国人的美国人李彦宏的外国公司百度作恶，却容不下同样是外国公司的Google不作恶。<br />
世风日下并不是江泽民之流在接受华莱士同志采访时所言的中国人素质差这么简单，古人云：“仓廪实而知礼节，衣食足而知荣辱！”就这么简单的道理，如果把美国人的生活水平降到和中国一样，我想，美国一定要内战了，所以中国老百姓的淳朴善良是占绝大多数的，计算机处理大规模数据还可能出错，十几亿中国人有一小撮素质差的是符合统计学规律的。钓鱼执法，老太碰瓷等等，不是我们素质不高，是无能的共匪营造的环境太糟！<br />
小平同志呢，客观的评价，他个人心理素质很好，但是大局规划和控制能力不行，所以觉得小平同志高瞻远瞩，因为后面的领导人一个比一个差，对比效应使然。什么时候中国的下水道的规划可以一百年使用，中国才走上了制度化治国而非人治的国家。<strong>邓小平文选</strong>上谈到了这个问题，他之所以早退是担心中国形成一人独大，领导人交替不畅，老干部长期占位不退等问题，并且作为妥协让所有退下来的老家伙们组伙成立了<strong>中央顾问委员会</strong>，说不好听点就是垂帘听政。<br />
胡锦涛、温家宝上台后，客观的说，从2003年起除了天灾人祸不断，房价高涨之外，没有可圈点之处。胡锦涛喊出的所谓<strong>不折腾</strong>反衬出其不思改革，平庸为官的处世哲学。中国这么好的时代，这么好的人民，你们以孩子般的智商去捣蛋，还捣的这么没有创意！你们两个傻蛋把中国搞的这样子没有创造力和发展力！<br />
在共产主义到来之前，我也希望我的祖国强大：大到她的人民都过着幸福的生活；大到别国都想着偷渡进来成为一名中国人；大到美国整天担心中国会不会制裁它；大到谁都想和中国成为盟国&#8230;可是，共产党领导下的政府能够治理好我的祖国吗？！</p>
<p>偶尔牢骚，有益健康：）</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/06/441/" title="青春太宝贵，千万别浪费！">青春太宝贵，千万别浪费！</a></li><li><a href="http://www.figoyao.com/blog/2010/02/04/851/" title="岂能因声音微小而不呐喊">岂能因声音微小而不呐喊</a></li><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li><li><a href="http://www.figoyao.com/blog/2010/04/01/1304/" title="[荣光公告]关于此次外挂问题的释疑">[荣光公告]关于此次外挂问题的释疑</a></li><li><a href="http://www.figoyao.com/blog/2010/03/26/1252/" title="电视剧时间：想做你的code">电视剧时间：想做你的code</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/09/994/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>写了个小游戏让大家练练手</title>
		<link>http://www.figoyao.com/blog/2010/02/08/977/</link>
		<comments>http://www.figoyao.com/blog/2010/02/08/977/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 15:24:03 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=977</guid>
		<description><![CDATA[<img class="alignnone size-full wp-image-978" title="CrazyData" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/CrazyData.gif" alt="CrazyData" width="554" height="402" />
<strong>要求</strong>：
1、找出攻击值并可自由修改；
2、找出血量并可自由修改；
3、写出改血和攻击力的外挂程序。
<strong>不算提示的提示</strong>：
1、在技术上，本程序没有使用教程以外的知识（控制台显示参数配置API不算）；
2、思维要开拓。
<strong>游戏程序</strong>：<a href="http://down.qiannao.com/space/file/figoyao/share/GameData.rar/.page" target="_blank">点击下载</a>。
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/12/09/178/" title="游戏辅助工具开发教程-从入门到精通之A2_5篇">游戏辅助工具开发教程-从入门到精通之A2[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/08/977/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-978" title="CrazyData" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/CrazyData.gif" alt="CrazyData" width="554" height="402" /></p>
<p><strong>要求</strong>：<br />
1、找出攻击值并可自由修改；<br />
2、找出血量并可自由修改；<br />
3、写出改血和攻击力的外挂程序。</p>
<p><strong>不算提示的提示</strong>：<br />
1、在技术上，本程序没有使用教程以外的知识（控制台显示参数配置API不算）；<br />
2、思维要开拓。</p>
<p><strong><span style="color: #ff0000;">游戏程序</span></strong>：<a href="http://down.qiannao.com/space/file/figoyao/share/GameData.rar/.page" target="_blank">点击下载</a>。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2009/12/09/178/" title="游戏辅助工具开发教程-从入门到精通之A2_5篇">游戏辅助工具开发教程-从入门到精通之A2_5篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/05/124/" title="游戏辅助工具开发教程-从入门到精通之A2_1篇">游戏辅助工具开发教程-从入门到精通之A2_1篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/04/116/" title="游戏辅助工具开发教程-从入门到精通之A1_7篇">游戏辅助工具开发教程-从入门到精通之A1_7篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/03/74/" title="游戏辅助工具开发教程-从入门到精通之A1_6篇">游戏辅助工具开发教程-从入门到精通之A1_6篇</a></li><li><a href="http://www.figoyao.com/blog/2009/12/03/68/" title="游戏辅助工具开发教程-从入门到精通之A1_5篇">游戏辅助工具开发教程-从入门到精通之A1_5篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/08/977/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[提醒]请更新订阅地址</title>
		<link>http://www.figoyao.com/blog/2010/02/08/971/</link>
		<comments>http://www.figoyao.com/blog/2010/02/08/971/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 02:17:05 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[通知]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=971</guid>
		<description><![CDATA[<img class="alignnone size-full wp-image-972" title="feed" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/feed.jpg" alt="feed" width="550" height="310" />
接到口风，原来的服务商可能会因为Google事件被封杀，所以把订阅服务器转到了国内一家运营商。这个运营商的更新速度也较之前有很大改进，省去了大家访问我主页的时间。不过，如果读者老师们觉得麻烦的话也可不换，因为我会保持对原先订阅地址的更新支持，但请自行承担某天不能更新的风险！
新的订阅地址在主页右侧[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/08/971/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-972" title="feed" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/feed.jpg" alt="feed" width="550" height="310" /></p>
<p>接到口风，原来的服务商可能会因为Google事件被封杀，所以把订阅服务器转到了国内一家运营商。这个运营商的更新速度也较之前有很大改进，省去了大家访问我主页的时间。不过，如果读者老师们觉得麻烦的话也可不换，因为我会保持对原先订阅地址的更新支持，但请自行承担某天不能更新的风险！<br />
新的订阅地址在主页右侧有，也可访问下面的链接地址：</p>
<h2><a href="http://feed.feedsky.com/figo" target="_blank">http://feed.feedsky.com/figo</a></h2>
<p>为了防止哪天因为未知原因被和谐或不能访问，请同时收藏备份站点：</p>
<h2><a href="http://mail.ustc.edu.cn/~yaof/" target="_blank">点击收藏</a></h2>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/26/778/" title="请收藏备份站点网址">请收藏备份站点网址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/08/971/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_18篇</title>
		<link>http://www.figoyao.com/blog/2010/02/06/944/</link>
		<comments>http://www.figoyao.com/blog/2010/02/06/944/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 12:42:38 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[HOOK]]></category>
		<category><![CDATA[WinAPI]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[消息钩子]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=944</guid>
		<description><![CDATA[作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a>
本篇介绍Windows钩子（HOOK）。
按照MSDN的说法，一个hook就是一个消息监视点。在Windows中，消息机制被广泛应用，因此系统提供了hook机制，用于在接受消息的目标线程处理消息之前可以预先处理得到并处理消息，但是钩子会导致系统分发消息的路径延长，从而影响速度，所以在[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/06/944/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a></p>
<p>本篇介绍Windows钩子（HOOK）。</p>
<p>按照MSDN的说法，一个hook就是一个消息监视点。在Windows中，消息机制被广泛应用，因此系统提供了hook机制，用于在接受消息的目标线程处理消息之前可以预先处理得到并处理消息，但是钩子会导致系统分发消息的路径延长，从而影响速度，所以在不需要时尽快卸载钩子。</p>
<p>截止目前，被文档化的钩子类型有十多种，常用的有以下几种类型：</p>
<pre class="brush: cpp;">
//www.figoyao.com
WH_GETMESSAGE
//用于监视GetMessage或PeekMessage发送的消息

WH_CALLWNDPROC和WH_CALLWNDPROCRET类型
//用于监视SendMessage发送的消息
//WH_CALLWNDPROC用于接收消息的目标线程处理消息前
//WH_CALLWNDPROCRET用于接收消息的目标线程处理消息后

WH_KEYBOARD
//用于监视GetMessage或PeekMessage发送的WM_KEYDOWN和WM_KEYUP消息

WH_KEYBOARD_LL
//比WH_KEYBOARD更全面监视键盘消息,任何发往线程的键盘消息都会被监视
//LL是LowLevel的缩写

WH_MOUSE
//用于监视GetMessage或PeekMessage发送的鼠标操作消息

WH_MOUSE_LL
//同WH_KEYBOARD_LL,只不过是用于监视鼠标消息
</pre>
<p>下面我以键盘消息钩子为例来讲解，其它类型的实现与此大同小异。首先看下运行状态：<br />
<img class="alignnone size-full wp-image-945" title="hook" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/hook.gif" alt="hook" width="454" height="312" /></p>
<p>大家一定注意到了有个叫做<strong>钓鱼</strong>的按钮，没吃过猪肉至少见过猪跑吧：）。钓鱼的过程大致如下：<br />
1、制作钓鱼工具，鱼竿、鱼线、鱼饵和鱼钩，完成后进入第2步；<br />
2、把带有鱼饵的鱼钩放入水中，等待鱼上钩，如果上钩进入第3步；<br />
3、把鱼放入鱼篓，是否打算回家，不是的话进入第2步，否则退出。</p>
<p>而我们设置键盘消息钩子的过程与钓鱼相似：<br />
1、调用<strong><span style="color: #800000;">SetWindowsHookEx</span></strong>函数准备设置Hook，这里的“鱼饵”根据不同目的选取不同的Hook类型，比如，想要钓兔子的话就得选胡萝卜当诱饵，完成后进入第2步；<br />
2、加入消息钩子链，等待对应Hook类型的消息，如果属于自己感兴趣的则进入第3步；<br />
3、根据自己需要处理消息，是否打算退出，不是的话进入第2步，否则退出。</p>
<p>这里需要说明的是：如果设置局部线程钩子，不需要通过DLL实现，否则必须通过DLL实现，所谓局部线程，指的是设置钩子的线程自己；因为系统中可能存在不止一个钩子，比如其他程序设置钩子，系统为了便于管理，把所有这些钩子安排成钩子链（hook chain），后安装的钩子自动进入同类型钩子链首，然后如果有相应消息产生会第一个获得通知和更改的机会，一般情况下，在你处理完消息后需要调用<strong><span style="color: #800000;">CallNextHookEx</span></strong>函数把消息传递给下个钩子处理。函数介绍如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
//--------------------------
//设置窗口钩子,成功则返回HHOOK类型的句柄
//失败则返回NULL
HHOOK SetWindowsHookEx
(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);
idHook
//指出要设置钩子的类型,即WH_KEYBOARD_LL等等
lpfn
//钩子消息处理回调函数,用于在指定挂钩消息产生时处理消息
hMod
//指向包含钩子处理回调函数的模块句柄,即你的回调函数在哪里实现的
dwThreadId
//指出需要挂钩的线程ID号,如果设置为0则全局挂钩

//-----------------
//这里需要介绍下钩子消息处理回调函数
//所以的函数入口参数一样
//此处以键盘钩子回调函数为例
LRESULT CALLBACK LowLevelKeyboardProc
(
int nCode,
WPARAM wParam,
LPARAM lParam
);
nCode
//告诉程序员应该如何处理该消息
//nCode小于0的话必须调用CallNextHookEx函数把消息传递给其他程序设置的钩子
//典型的值为HC_ACTION,表示可以处理该消息

//-----------------
//CallNextHookEx用于把消息传递给钩子链中下一个钩子
LRESULT CallNextHookEx
(
HHOOK hhk,
int nCode,
WPARAM wParam,
LPARAM lParam
);
hhk
//SetWindowsHookEx的返回值
nCode
//nCode以及最后2个参数为钩子回调函数中的入口参数
</pre>
<p>我们的DLL中钩子回调函数主要是获得消息后把按键的扫描码和虚拟键值传递给程序处理，这里使用自定义的WM_HOOK_KEYBD消息来标识我们钩子产生的消息，钩子回调函数代码如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
	static KBDLLHOOKSTRUCT hbst = {0};
	static BOOL bRec = FALSE;

	if (nCode &lt; 0)
	{
		return CallNextHookEx(g_hhk,nCode,wParam,lParam);
	}

	if (nCode == HC_ACTION)
	{
		switch (wParam)
		{
			case WM_KEYDOWN:
			case WM_SYSKEYDOWN:
				{
					DWORD dwVK = 0;
					dwVK = ((PKBDLLHOOKSTRUCT)lParam)-&gt;vkCode;
					//向主窗口发送自定义钩子消息
					PostMessageW(g_hwnd,WM_HOOK_KEYBD,((PKBDLLHOOKSTRUCT)lParam)-&gt;scanCode,dwVK);

					return CallNextHookEx(g_hhk,nCode,wParam,lParam);
				}
				break;

			default:
				break;
		}
	}

	return CallNextHookEx(g_hhk,nCode,wParam,lParam);
}
</pre>
<p>这里需要介绍下回调函数接收到的lParam和wParam的含义：</p>
<pre class="brush: cpp;">
//www.figoyao.com
wParam
//指出按键消息类型,可选值如下:
// WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, 或 WM_SYSKEYUP.
lParam
//[指针]指向一个叫做KBDLLHOOKSTRUCT的结构体
//该结构体定义如下

typedef struct
{
    DWORD vkCode;
    DWORD scanCode;
    DWORD flags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
vkCode
//虚拟键值
scanCode
//扫描码
time
//消息时间戳
</pre>
<p>当不使用钩子的时候就要卸载，我们使用UnhookWindowsHookEx函数：</p>
<pre class="brush: cpp;">
//www.figoyao.com
BOOL UnhookWindowsHookEx
(
HHOOK hhk
);
hhk
//SetWindowsHookEx的返回值
</pre>
<p>至此，一个完整的钩子过程就实现了，希望大家自己去实现一下魔兽争霸辅助工具中的改键功能。提示一下，当接收到感兴趣的按键时，如果直接使用<strong>return</strong> <strong><span style="color: #0000ff;">TRUE</span></strong>而不是传递给下个钩子的话，该键就被屏蔽了，可以用来实现屏蔽Win键；进一步，如果在<strong>return</strong> <strong><span style="color: #0000ff;">TRUE</span></strong>之前使用keybd_event等模拟函数模拟希望更改的键则可以实现改键目的。这只是一个思路，希望大家能够动手尝试实际写一下。</p>
<p>完整源码：<a href="http://down.qiannao.com/space/file/figoyao/share/ch03-002d18.rar/.page" target="_blank">点击下载</a>。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/06/944" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/02/06/944</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/14/489/" title="游戏辅助工具开发教程-从入门到精通之A3_12篇">游戏辅助工具开发教程-从入门到精通之A3_12篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/29/1270/" title="游戏辅助工具开发教程-从入门到精通之A3_20篇">游戏辅助工具开发教程-从入门到精通之A3_20篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/06/944/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_17篇</title>
		<link>http://www.figoyao.com/blog/2010/02/05/899/</link>
		<comments>http://www.figoyao.com/blog/2010/02/05/899/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 07:56:55 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[自定义资源]]></category>
		<category><![CDATA[解压缩]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=899</guid>
		<description><![CDATA[作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a>
本次讲解自定义资源的解压缩和载入。
有时为了保证程序的完整性或易操作性，我们会使用自定义资源来保存动态链接库或驱动程序的磁盘文件，在使用的时候才解压，下面我以DLL作为自定义资源来讲解。下面例子中的DLL是之前教程中实现过的，当执行程序时，首先解压dll至当前目录，然后载入dll调用[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/05/899/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="http://www.figoyao.com/blog" target="_blank">Figo</a></p>
<p>本次讲解自定义资源的解压缩和载入。</p>
<p>有时为了保证程序的完整性或易操作性，我们会使用自定义资源来保存动态链接库或驱动程序的磁盘文件，在使用的时候才解压，下面我以DLL作为自定义资源来讲解。下面例子中的DLL是之前教程中实现过的，当执行程序时，首先解压dll至当前目录，然后载入dll调用函数，退出程序时删除创建的dll文件：<br />
<img class="alignnone size-full wp-image-900" title="ExtraDLL" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/ExtraDLL.gif" alt="ExtraDLL" width="394" height="426" /><br />
自定义资源导入的时候需要提供一个类型名，可随便命名，只要不和系统内置的冲突即可；导入后需要再给资源命名一个标识符，类似IDM_FILE_OPEN之类的，用于标识我们导入的自定义资源。当这一切做好了，就可以通过API来使用资源了。<br />
可以把之前我们使用过的标准资源理解为人民币，把自定义资源理解为超市代金券，这两者的区别在于：人民币由国家信用保证中国的任何地方都可以流通，即你不需要考虑去哪里消费的问题；代金券由商家信用保证属于该商家的店铺可以流通，但是你需要首先找到商家的店铺才能消费。对于标准资源和自定义资源的区别与此类似：前者由微软保证在Windows系统中流通，直接使用即可；后者则需要你首先通过API来定位你的资源存储在程序的位置，找到后才能使用。这里涉及的函数如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
//-------------------------------------
//FindResource成功则返回一个指向资源块的句柄
//失败则返回NULL
HRSRC FindResource
(
HMODULE hModule,
LPCTSTR lpName,
LPCTSTR lpType
);
hModule
//程序实例句柄,即我们熟悉的HINSTANCE,一般设置为NULL即可,表示本程序
lpName
//资源名称字符串,我们一般使用宏MAKEINTRESOURCE来进行转换
lpType
//资源类型,即我们载入资源时命名的类型名

//-------------------------------------
//SizeofResource执行成功返回资源大小[以byte为计数单位]
//失败返回0
DWORD SizeofResource
(
HMODULE hModule,
HRSRC hResInfo
);
hModule
//同上
hResInfo
//FindResource函数的返回值

//-------------------------------------
//LoadResource执行成功返回指向资源包含数据的句柄
//失败返回NULL
HGLOBAL LoadResource
(
HMODULE hModule,
HRSRC hResInfo
);
hModule
//同上
hResInfo
//FindResource函数的返回值

//-------------------------------------
//LockResource执行成功则返回一个指向内存中自定义资源数据的指针
//失败则返回NULL
LPVOID LockResource
(
HGLOBAL hResData
);
hResData
//LoadResource函数的返回值
</pre>
<p>这里需要说明的是，指向资源块的句柄和指向资源块包含数据的句柄的区别：前者是一个多元结构，既有数据也有附加信息；后者仅仅是你载入的自定义资源文件的数据。到此，我们有了指向内存中自定义资源数据的指针以及数据大小，接下来就要把这些数据以文件的形式保存在硬盘上，涉及的函数如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
//-------------------------------------
//创建文件,执行成功返回文件句柄
//失败则返回INVALID_HANDLE_VALUE
HANDLE WINAPI CreateFile
(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
lpFileName
//文件名,可以是单独的文件名也可是包含路径的文件名
//figo.dll和d:\\demo\\figo.dll都是可以的
dwDesiredAccess
//访问权限
//写入数据时设置为GENERIC_WRITE或GENERIC_ALL均可
dwShareMode
//共享模式,即指出是否允许其他代码以某种方式打开文件
//此处我们赋值为0,表示不允许其他程序操作
lpSecurityAttributes
//安全属性,设置为NULL,即默认安全属性即可
dwCreationDisposition
//创建标志,指出文件已存在或不存在时的处理方式
//此处设置为CREATE_ALWAYS表示无论是否存在都创建
dwFlagsAndAttributes
//文件属性标志,
//比如是否具有隐藏、归档、只读等等属性
hTemplateFile
//文件模板句柄,设置为NULL即可

//-------------------------------------
//向指定文件写入数据,执行成功返回TRUE
//失败返回FALSE
BOOL WINAPI WriteFile
(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPDWORD lpNumberOfBytesWritten,
LPOVERLAPPED lpOverlapped
);
hFile
//CreateFile返回的文件句柄
lpBuffer
//要写入数据的缓存指针
nNumberOfBytesToWrite
//数据缓存大小[以byte为计数单位]
lpNumberOfBytesWritten
//用于保存实际写入文件中的数据大小[以byte为计数单位]
//当lpOverlapped为NULL时lpNumberOfBytesWritten不可为NULL
lpOverlapped
//异步读写的结构指针,此处设置为NULL

//-------------------------------------
//把缓冲区数据立即写入硬盘,执行成功返回TRUE
//失败返回FALSE
BOOL WINAPI FlushFileBuffers(
HANDLE hFile
);
hFile
//文件句柄
//因为WriteFile执行完毕后数据并不是立即写入硬盘
//而是存在于高速缓存,为了保证顺利调用dll
//所以我们要求写入完毕即刻存入硬盘

//-------------------------------------
//删除指定文件,执行成功返回TRUE
//失败则返回FALSE
BOOL WINAPI DeleteFile
(
LPCTSTR lpFileName
);
lpFileName
//指出要删除的文件名
</pre>
<p>有了DLL文件之后的部分和之前<a href="http://www.figoyao.com/blog/2010/01/22/676/" target="_blank">讲解动态链接库部分</a>教程的无异，故不再啰嗦。关键代码如下：</p>
<pre class="brush: cpp;">
//figoyao.com
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &quot;resource.h&quot;
typedef void(*PBox)(void);
int main()
{
	//查找自定义资源
	HRSRC hRsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_DLL_DEMO), &quot;DLL&quot;);
	if (hRsrc == NULL)
	{
		printf(&quot;hRsrc Error\n&quot;);
		return -1;
	}
	//载入自定义资源
	HGLOBAL hGlobal = LoadResource(NULL,hRsrc);
	if (hGlobal == NULL)
	{
		printf(&quot;hGlobal Error\n&quot;);
		return -1;
	}
	//锁定自定义资源数据
	LPVOID lpDLL = LockResource(hGlobal);
	if (lpDLL == NULL)
	{
		printf(&quot;lpDLL Error\n&quot;);
		return -1;
	}
	//创建Figo.dll文件
	HANDLE hDllFile = CreateFileW(L&quot;Figo.dll&quot;,GENERIC_ALL,\
		                0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
	if (hDllFile == INVALID_HANDLE_VALUE)
	{
		printf(&quot;hDllFile Error\n&quot;);
		return -1;
	}
	//获取自定义资源数据大小
	DWORD dwSizeOfDll = SizeofResource(NULL,hRsrc);
	if (dwSizeOfDll == 0)
	{
		printf(&quot;dwSizeOfDll Error\n&quot;);
		return -1;
	}
	//将自定义资源数据写入文件
	DWORD dwCBDll = 0;
	BOOL bWriteFile = WriteFile(hDllFile,lpDLL,dwSizeOfDll,&amp;dwCBDll,NULL);
	if (bWriteFile == FALSE)
	{
		printf(&quot;bWriteFile Error\n&quot;);
		return -1;
	}
	//清空高速缓存
	FlushFileBuffers(hDllFile);
	//关闭句柄
	CloseHandle(hDllFile);
	//载入Figo.dll文件
	HMODULE hDll = LoadLibrary(&quot;Figo.dll&quot;);
	if (hDll != NULL)
	{
		PBox pBoxFunc = (PBox)GetProcAddress(hDll,&quot;Box&quot;);

		if (pBoxFunc != NULL)
		{
			pBoxFunc();
		}
	}
	FreeLibrary(hDll);
	//删除Figo.dll文件
	DeleteFileW(L&quot;Figo.dll&quot;);
	getchar();

	return 0;
}
</pre>
<p>我希望大家能够踏踏实实的掌握教程中的知识，如果可能，希望结合MSDN去亲自查查API函数，虽然初期进度较慢，但是你会逐渐变得越来越强大，直到有一天，当你回首过去，不知不觉你已经是大多数人眼中的牛人了。磨刀不误砍柴工用在此处是很恰当的。完整代码：<a href="http://down.qiannao.com/space/file/figoyao/share/ExtraDLL.rar/.page" target="_blank">点击下载</a>。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/05/899/" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/02/05/899/</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/05/899/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_16篇</title>
		<link>http://www.figoyao.com/blog/2010/02/04/859/</link>
		<comments>http://www.figoyao.com/blog/2010/02/04/859/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 15:25:50 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[剪贴板]]></category>
		<category><![CDATA[卡丁车]]></category>
		<category><![CDATA[喊话器]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[模拟输入]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=859</guid>
		<description><![CDATA[作者：<a href="../../2010/01/2010/01/" target="_blank">Figo</a>
本节我介绍下游戏喊话器的原理并举简单的例子。
喊话器实现方法主要有以下几类：
1、纯模拟输入[含剪贴板实现类型]；
2、游戏程序喊话call修改；
3、通过编写一个迷你输入法来实现；
4、封包修改。
以上几种方法难度递增，囿于大家的知识储备，我这里只讲第一种，后面几种会在以后的教程逐[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/04/859/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="../../2010/01/2010/01/" target="_blank">Figo</a></p>
<p>本节我介绍下游戏喊话器的原理并举简单的例子。</p>
<p>喊话器实现方法主要有以下几类：<br />
1、纯模拟输入[含剪贴板实现类型]；<br />
2、游戏程序喊话call修改；<br />
3、通过编写一个迷你输入法来实现；<br />
4、封包修改。</p>
<p>以上几种方法难度递增，囿于大家的知识储备，我这里只讲第一种，后面几种会在以后的教程逐步引导大家学习。下面是这次的程序截图：<br />
<img class="alignnone size-full wp-image-860" title="ExePro" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/ExePro.png" alt="ExePro" width="338" height="83" /><br />
配置文件内容如下：<br />
<img class="alignnone size-full wp-image-861" title="MainIni" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/MainIni.png" alt="MainIni" width="390" height="436" /><br />
卡丁车游戏中的喊话效果动画：<br />
<img class="alignnone size-full wp-image-862" title="kartcall" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/kartcall.gif" alt="kartcall" width="650" height="361" /></p>
<p>软件的大致流程如下：<br />
<img class="alignnone size-full wp-image-865" title="loop" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/loop.png" alt="loop" width="416" height="365" /></p>
<p>本次的新内容如下：<br />
1、读取INI格式的配置文件；<br />
2、剪贴板的使用。</p>
<p>上次我介绍了<a href="http://www.figoyao.com/blog/2010/01/30/813/" target="_blank">注册表的编程方法</a>，<span style="color: #ff0000;">.ini</span>格式文件和注册表的作用一样，都是用来存储数据，只不过因为ini文件太容易修改和丢失，所以大多时候我们使用注册表来存储配置信息。考虑到用户的便于操作性，所以此次使用ini文件保存配置信息，最好结合注册表部分来帮助学习，ini文件的逻辑结构如下所示：<br />
<img class="alignnone size-full wp-image-870" title="ini_struct" src="http://www.figoyao.com/blog/wp-content/uploads/2010/02/ini_struct.png" alt="ini_struct" width="320" height="206" /><br />
我们此次涉及的函数只是读取<strong>指定段<span style="color: #0000ff;">指定键</span><span style="color: #0000ff;">名</span></strong>的<strong><span style="color: #ff0000;">键值</span></strong>，然后把读取的喊话内容保存在剪贴板。</p>
<pre class="brush: cpp;">
//www.figoyao.com
//-----------------------------
//读取数值类型键值
UINT WINAPI GetPrivateProfileInt
(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
INT nDefault,
LPCTSTR lpFileName
);
lpAppName
//要读取的段名[Section Name]
lpKeyName
//要读取的键名[Key Name]
nDefault
//如果读取失败返回该默认值
lpFileName
//ini文件全路径
//如果只给出文件名则自动去系统目录寻找

//-----------------------------
//读取字符串类型键值
DWORD WINAPI GetPrivateProfileString
(
LPCTSTR lpAppName,
LPCTSTR lpKeyName,
LPCTSTR lpDefault,
LPTSTR lpReturnedString,
DWORD nSize,
LPCTSTR lpFileName
);
lpAppName
//要读取的段名[Section Name]
lpKeyName
//要读取的键名[Key Name]
lpDefault
//如果读取失败返回该默认值
lpReturnedString
//保存键值字符串
nSize
//lpReturnedString的字符个数
lpFileName
//ini文件全路径
</pre>
<p>如果执行没有问题就把ini配置文件中的内容保存在了内存中，然后我们把该部分喊话内容复制到剪贴板，关键代码如下：</p>
<pre class="brush: cpp;">
//www.figoyao.com
//......
//申请一块共享内存
HGLOBAL hText = GlobalAlloc(GHND,MAX_LINE*sizeof(wchar_t));
wchar_t* pszText = (wchar_t*)GlobalLock(hText);
//将当前喊话字符串复制到共享内存
wcscpy(pszText,szCallStr);
GlobalUnlock(hText);

//把共享内存的内容拷贝到剪贴板
OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_UNICODETEXT,hText);
CloseClipboard();

//键盘输入模拟，依据游戏实际情况来模拟
//回车键
keybd_event(VK_RETURN,  0,  0 , 0);
keybd_event(VK_RETURN,  0,  KEYEVENTF_KEYUP , 0);

//Ctrl+V
keybd_event(VK_CONTROL,  0,  0 , 0);
keybd_event(0x56,  0,  0 , 0);
keybd_event(VK_CONTROL,  0,  KEYEVENTF_KEYUP , 0);
keybd_event(0x56,  0,  KEYEVENTF_KEYUP , 0);

//回车键
keybd_event(VK_RETURN,  0,  0 , 0);
keybd_event(VK_RETURN,  0,  KEYEVENTF_KEYUP , 0);
//......
</pre>
<p><a href="http://www.figoyao.com/blog/2010/01/02/321/" target="_blank">键盘模拟部分</a>前面已经讲过，这里就不赘述了。本来使用哈希算法在此处使用可以大大简化热键判断和热键冲突处理，但是鉴于还没有讲到数据结构部分，所以实现的有些繁琐，但好处是简单易懂：）。剪贴板部分会比着葫芦画瓢即可，不必深究，而且本次实现喊话的方法不具有通用性，因为如果游戏里不支持Ctrl+V操作那就失效了。Demo里面我只实现了3个喊话内容，ini文件中：HotKey部分用来设定初始使用的热键，1~12分别对应F1~F12；Call部分用来设定喊话内容，在没有更改程序的前提下，键名不可修改，ini文件直接用记事本编辑即可。本次的代码用在QQ或Word中也完全可以。</p>
<p>完整实现源码：<a href="http://down.qiannao.com/space/file/figoyao/share/KartCall.rar/.page" target="_blank">点击下载</a>。</p>
<p>btw:<br />
<a href="http://www.figoyao.com/blog/2010/01/11/462/comment-page-1/#comment-207" target="_blank">尘风同学</a>不辞辛劳的灌水，目的就是让大家知道ta建立了一个游戏辅助工具学习的QQ群，看在ta打字辛苦的份上，特此写在教程里面，<strong>群号</strong>是：<strong><span style="color: #ff0000;">20372561</span></strong>。我也希望及时解答大家的疑惑，但因本人精力有限，所以这个学习群可以作为你们互相交流之用，相互帮助，一起成长。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/04/859/" target="_blank">http://www.figoyao.com/blog/2010/02/04/859/</a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/04/859/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>岂能因声音微小而不呐喊</title>
		<link>http://www.figoyao.com/blog/2010/02/04/851/</link>
		<comments>http://www.figoyao.com/blog/2010/02/04/851/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 06:01:11 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[丧钟]]></category>
		<category><![CDATA[网瘾战争]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=851</guid>
		<description><![CDATA[<strong>清晰</strong><strong>完整</strong><strong>版下载</strong>：<a href="ed2k://&#124;file&#124;%5B%E7%88%B1%E8%80%81%E8%99%8E%E6%B8%B8%E5%88%9B%E4%BD%9C%E5%9B%A2%E9%98%9F%5D%5B%E7%AC%AC3%E4%BD%9C.%E7%BD%91%E7%98%BE%E6%88%98%E4%BA%89%5D%5BGB%5D%5B1024x768.x264.AAC%5D.mp4&#124;784774019&#124;67f298ca261d14367195c922ba49ce66&#124;h=qnckiy5nfnw4qqckc2jtzvi6awhvbnho&#124;/" target="_blank">点击下载</a>。
同时<strong>推荐下载</strong>：<a href="http://figoyao.com/earthquake.torrent " target="_blank">汶川地震不能说的真相</a>。
<strong>友情提示</strong>：晚上放出喊话器教程。
<strong><em>附台词</em></strong>：
我们是玩着游戏长大的一代人
这么多年来，人变了，游戏也变了
可我们对游戏的喜爱没有变
我们玩家群体在这个社会中的弱势地位也没有变
当我们累了一天，打开那扇月租2000块的房门
却面对的是一个如[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/04/851/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><object id="playerswf" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="movie_player" /><param name="bgcolor" value="#FFFFFF" /><param name="flashvars" value="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTUwMTkxOTA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" /><param name="src" value="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" /><param name="wmode" value="opaque" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /><embed id="playerswf" type="application/x-shockwave-flash" width="600" height="480" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" quality="high" allowfullscreen="true" wmode="opaque" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTUwMTkxOTA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" bgcolor="#FFFFFF" name="movie_player"></embed></object></p>
<p><strong>清晰</strong><strong>完整</strong><strong>版下载</strong>：<a href="ed2k://|file|%5B%E7%88%B1%E8%80%81%E8%99%8E%E6%B8%B8%E5%88%9B%E4%BD%9C%E5%9B%A2%E9%98%9F%5D%5B%E7%AC%AC3%E4%BD%9C.%E7%BD%91%E7%98%BE%E6%88%98%E4%BA%89%5D%5BGB%5D%5B1024x768.x264.AAC%5D.mp4|784774019|67f298ca261d14367195c922ba49ce66|h=qnckiy5nfnw4qqckc2jtzvi6awhvbnho|/" target="_blank">点击下载</a>。<br />
同时<strong>推荐下载</strong>：<a href="http://figoyao.com/earthquake.torrent " target="_blank">汶川地震不能说的真相</a>。<br />
<strong><span style="color: #ff0000;">友情提示</span></strong>：晚上放出喊话器教程。</p>
<p><strong><em>附台词</em></strong>：<br />
我们是玩着游戏长大的一代人<br />
这么多年来，人变了，游戏也变了<br />
可我们对游戏的喜爱没有变<br />
我们玩家群体在这个社会中的弱势地位也没有变<br />
当我们累了一天，打开那扇月租2000块的房门<br />
却面对的是一个如此畸形的版本时<br />
我们心里只有无奈<br />
你天天叫嚣着魔兽世界让我们沉迷<br />
没错，我们沉迷了<br />
可我们沉迷的不是游戏<br />
而是游戏给我们的那种归属感<br />
我们沉迷的是这四年来的朋友和感情<br />
是这4年来的眷恋和寄托<br />
这一年里，即便是这样一个畸形的版本<br />
我们还在坚持<br />
这一年里，我们每次点天赋<br />
都会想着什么时候能再多十点<br />
这一年里，我们每次到幽暗<br />
都会看到对面那座，永远没有飞艇停靠的塔楼<br />
这一年里，我们明知不可能<br />
却又不知疲倦地向北极游过去，游到地图的边缘，游到连海都没有的地方<br />
可我们还是看不清那片冰冷的土地！<br />
在这一年里，我和其他热爱这个游戏的人一样<br />
认真地挤着公交车上班<br />
认真地消费着各式各样的食品<br />
不管里面有没有不认识的化学成分<br />
我们没有因为工资微薄而抱怨过<br />
没有因为你们拿着从我微薄工资里扣的税<br />
住着连体排屋而心里失衡过<br />
在这一年里，我和其他热爱这个游戏的人一样<br />
为水灾，为地震而痛心哭泣<br />
为载人航天，为奥运会而加油喝彩<br />
我们打心眼里，就不想我们在任何一个方面<br />
落后于这个世界上的任何一个民族<br />
而这一年里，却因为你们这些人<br />
我们迟迟不能与地球上其他国家的玩家一起，一决高下<br />
为了真心喜爱的游戏<br />
我们委屈求全，我们被迫离开<br />
我们冒着被封号的危险去美服欧服<br />
他们骂我们是金币农民<br />
我们顶着上万的延迟去台服<br />
他们说我们是大陆蝗虫<br />
这些何其贬低的称谓<br />
我们都在默默的承受<br />
我们凭什么不能拥有每小时4毛钱的廉价娱乐？<br />
就凭我们在国服？<br />
凭我是国服的魔兽玩家吗？<br />
你们从小就对我灌输<br />
金窝、银窝不如自己的狗窝<br />
那现实呢？<br />
你们已经让我只能暂住在自己的国家<br />
难道我们精神上的家园<br />
连暂住在自己的国家，都不行吗？！</p>
<p>请举起你的手<br />
我知道，他们杀油土鳖的时候，你没举<br />
他们封推特的时候，你没举<br />
他们杀饭否的时候，你也没举<br />
现在，我们有可能连魔兽世界也失去<br />
我也知道<br />
我们都是屁民<br />
在老太碰瓷.捞尸卖钱.飞车撞人.钓鱼执法面前<br />
我们做什么，也救不了心爱的游戏<br />
但至少，你可以在电脑面通过前举起你的手<br />
并把你的声音，把你的力量通过这局域网传给我<br />
为了我们仅有的精神家园，一起高喊：<br />
我们是魔兽玩家！</p>
<p>我们不敢说话<br />
就算我们说了<br />
也会被无视或断章取义<br />
我们曾一样天真<br />
以为这里处处是花园<br />
以为光凭努力，就能触及到理想<br />
但抬头仰望金子塔顶的服务者们<br />
手捧着被赐予的“幸福感”<br />
退缩到全世界最自由的“无路网络”<br />
以低廉的成本相互沟通<br />
靠游戏来缓解生活的痛苦<br />
仅仅这样<br />
他们为了利益，仍然雁过拔毛般的想尽办法<br />
压榨<br />
我们已经惯了&#8230; 沉默<br />
但这沉默，不代表着奴颜婢膝！<br />
这钟声<br />
会传给你我们的力量<br />
今天，他们能为剥削一个游戏而不折手段<br />
明天&#8230;&#8230;</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/21/1073/" title="Twitter Weekly Updates for 2010-02-21">Twitter Weekly Updates for 2010-02-21</a></li><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2009/11/18/13/" title="不要一辈子生活在单模式中，重新认识世界的方法！">不要一辈子生活在单模式中，重新认识世界的方法！</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/703/" title="第二次被封杀">第二次被封杀</a></li><li><a href="http://www.figoyao.com/blog/2009/12/30/276/" title="Kernel版和Security版版主进入360">Kernel版和Security版版主进入360</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/04/851/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>培养良好编程习惯（二）</title>
		<link>http://www.figoyao.com/blog/2010/02/01/847/</link>
		<comments>http://www.figoyao.com/blog/2010/02/01/847/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 02:47:27 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[习惯]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[风格]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=847</guid>
		<description><![CDATA[转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/01/847/" target="_blank">http://www.figoyao.com/blog/2010/02/01/847/</a>
我会逐步把需要注意的细节写在这个系列文章中，还是那句话，太阳底下无新事，这些经验和习惯都是前人已经总结过的，你需要做的就是结合自身实际情况来学习和改进。
1、如果程序中需要计算的数据较多，尽量放在[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/02/01/847/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/02/01/847/" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/02/01/847/</span></a></p>
<p><span>我会逐步把需要注意的细节写在这个系列文章中，</span><span>还是那句话，太阳底下无新事</span><span>，这些经验和习惯都是前人已经总结过的，你需要做的就是结合自身实际情况来学习和改进。</span></p>
<p><span>1、如果程序中需要计算的数据较多，尽量放在程序启动或者空闲的时候完成，因为用户已经较为习惯程序的这些“特性”。对于商业程序，在运行前最好快速检测下用户的硬件环境，如果不满足就提示用户升级硬件，否则因为硬件资源导致程序崩溃或非正常运行会给用户留下极为不好的体验经历。</span></p>
<p><span>2、在程序运行中，任何一个执行时间超过7秒的步骤最好给出进度条或类似的进度提示，否则用户很可能认为你的程序无响应，从而影响体验。</span></p>
<p><span>3、对于程序速度的提高，要着眼于算法的改进，以及全局的考虑，并且不要一开始</span><span>编码</span><span>就打算把优化考虑进去。借用《毛泽东选集》的观点就是：要尽量保证战役的胜利而非单纯局部战争的城池得失。</span></p>
<p><span>4、可能的话使用多线程或者并行（对于多处理器）。</span></p>
<p><span>5、如果多个循环可以合并就不要多次使用循环，因为循环每次都会判断条件是否满足，这会引发多余运行时间。可能的话使用移位和加法以及嵌入式汇编。</span></p>
<p><span>6、不要拘泥于教条，结合具体情况来选择算法。<br />
</span></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/26/787/" title="培养良好编程习惯（一）">培养良好编程习惯（一）</a></li><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1142/" title="推荐2个站点">推荐2个站点</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/02/01/847/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_15篇</title>
		<link>http://www.figoyao.com/blog/2010/01/30/813/</link>
		<comments>http://www.figoyao.com/blog/2010/01/30/813/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 14:59:42 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[注册表]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=813</guid>
		<description><![CDATA[作者：<a href="../2010/01/2010/01/" target="_blank">Figo</a>
本次讲解注册表。
注册表是一个系统定义的数据库，程序可以从中获取配置信息，涉及的操作主要有插入、查询、删除表项数据。注册表的任何操作都需要首先获取一个注册表数据项的句柄，在此之前我们首先看下注册表的目录结构： <img class="alignnone size-full wp-image-814" title="reg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/reg.png" alt="reg" width="568" height="188" />
可以这么去理解：根键相当于各个逻辑盘，比如C盘、D盘等等；子键相当于各盘[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/30/813/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="../2010/01/2010/01/" target="_blank">Figo</a></p>
<p>本次讲解注册表。</p>
<p>注册表是一个系统定义的数据库，程序可以从中获取配置信息，涉及的操作主要有插入、查询、删除表项数据。注册表的任何操作都需要首先获取一个注册表数据项的句柄，在此之前我们首先看下注册表的目录结构： <img class="alignnone size-full wp-image-814" title="reg" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/reg.png" alt="reg" width="568" height="188" /><br />
可以这么去理解：根键相当于各个逻辑盘，比如C盘、D盘等等；子键相当于各盘下面的文件夹；键值相当于文件夹下的文件。下面，我们来实现一个简单的例子，开机自启动。<br />
<img class="alignnone size-full wp-image-819" title="regwarn" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/regwarn.png" alt="regwarn" width="301" height="315" /><br />
<img class="alignnone size-full wp-image-820" title="right" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/right.png" alt="right" width="268" height="216" /><br />
<img class="alignnone size-full wp-image-821" title="already" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/already.png" alt="already" width="264" height="227" /><br />
我们这里主要使用下面几个函数：</p>
<pre class="brush: cpp;">
//创建一个新子健，如果该子键已经存在则仅仅打开，执行成功返回ERROR_SUCCESS
LONG WINAPI RegCreateKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD Reserved,
LPTSTR lpClass,
DWORD dwOptions,
REGSAM samDesired,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult,
LPDWORD lpdwDisposition
);
hKey为注册表项句柄，可以是由RegOpenKeyEx函数获取，也可以为以下预定义值之一：
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

lpSubKey就是最开始图示的子键，类似路径栏的路径；
dwOptions此处设定为REG_OPTION_NON_VOLATILE即可；
samDesired为访问权限，此处我们设定为KEY_ALL_ACCESS，即所有权限；
phkResult用于接收操作lpSubKey指定子键的句柄；
lpdwDisposition用于接收该子键的存在状态，可为以下两者之一：
REG_CREATED_NEW_KEY：创建新子键；
REG_OPENED_EXISTING_KEY：子键已存在，只是打开子键；
如果lpdwDisposition设为NULL，则不接收该信息。
//--------------------------------------------
//打开一个已存在的子键，执行成功返回ERROR_SUCCESS
LONG WINAPI RegOpenKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD ulOptions,
REGSAM samDesired,
PHKEY phkResult
);
hKey为注册表项句柄，可以是由RegCreateKeyEx函数获取，也可以为以下预定义值之一：
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

lpSubKey含义同上；
samDesired为访问权限，此处我们设定为KEY_ALL_ACCESS，即所有权限；
phkResult用于接收操作lpSubKey指定子键的句柄。
//--------------------------------------------
//查询指定键值是否存在，并获取其内容，执行成功返回ERROR_SUCCESS
LONG WINAPI RegQueryValueEx(
HKEY hKey,
LPCTSTR lpValueName,
LPDWORD lpReserved,
LPDWORD lpType,
LPBYTE lpData,
LPDWORD lpcbData
);
hKey为注册表项句柄，可以是由RegCreateKeyEx和RegOpenKeyEx等函数获取，也可以为以下预定义值之一：
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_PERFORMANCE_NLSTEXT
HKEY_PERFORMANCE_TEXT
HKEY_USERS

lpValueName用于指定键值的名称；
lpType用于接收键值类型，可能的值为下列之一(更多类型参考MSDN)：
REG_BINARY 二进制数据类型
REG_DWORD 32位数值类型
REG_NONE 未定义类型
REG_QWORD 64位数值类型
REG_SZ 以0结尾的字符串

lpData用于接收数据；
lpcbData用于接收数据长度，以byte为基本单位计数。
//--------------------------------------------
//设定键值，执行成功返回ERROR_SUCCESS
LONG WINAPI RegSetValueEx(
HKEY hKey,
LPCTSTR lpValueName,
DWORD Reserved,
DWORD dwType,
const BYTE* lpData,
DWORD cbData
);
hKey为注册表项句柄，可以是由RegCreateKeyEx和RegOpenKeyEx等函数获取，也可以为以下预定义值之一：
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

lpValueName指定键值的名称；
dwType指定键值类型；
lpData指定键值内容；
cbData指定键值长度，以byte为基本单位计数。
//--------------------------------------------
//用于删除指定键值
LONG WINAPI RegDeleteValue(
HKEY hKey,
LPCTSTR lpValueName
);
hKey为注册表项句柄，可以是由RegCreateKeyEx和RegOpenKeyEx等函数获取，也可以为以下预定义值之一：
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS&lt;

lpValueName指定要删除的键值名称
//--------------------------------------------
//关闭句柄
LONG WINAPI RegCloseKey(
HKEY hKey
);
使用RegCreateKeyEx和RegOpenKeyEx等函数获取的句柄，在不使用后要及时关闭句柄，该函数的参数只有一个句柄。&lt;br /&gt;
</pre>
<p>本次涉及的注册表操作有创建、删除和查询，下面依次讲解，请大家结合上面的函数对照着学习。</p>
<p>1、<strong>创建子键并添加键值</strong><br />
函数调用顺序如下：<br />
<strong><span style="color: #800000;">RegCreateKeyEx</span></strong>-&gt;<strong><span style="color: #800000;">RegSetValueEx</span></strong>-&gt;<strong><span style="color: #800000;">RegCloseKey</span></strong><br />
首先获取一个子键的句柄，然后设置键值，最后关闭句柄。</p>
<p>2、<strong>删除指定键值</strong><br />
函数调用顺序如下：<br />
<strong><span style="color: #800000;">RegOpenKeyEx</span></strong>-&gt;<strong><span style="color: #800000;">RegDeleteValue</span></strong>-&gt;<strong><span style="color: #800000;">RegCloseKey</span></strong><br />
首先获取一个子键的句柄，然后删除键值，最后关闭句柄。</p>
<p>3、<strong>查询指定键值</strong><br />
函数调用顺序如下：<br />
<strong><span style="color: #800000;">RegOpenKeyEx</span></strong>-&gt;<strong><span style="color: #800000;">RegQueryValueEx</span></strong>-&gt;<strong><span style="color: #800000;">RegCloseKey</span></strong></p>
<p>例子代码：<a href="http://down.qiannao.com/space/file/figoyao/share/reg.rar/.page" target="_blank">点击下载</a>。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/01/30/813" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/01/30/813</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/30/813/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>这几天挂吊瓶</title>
		<link>http://www.figoyao.com/blog/2010/01/29/816/</link>
		<comments>http://www.figoyao.com/blog/2010/01/29/816/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 15:18:48 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[生病]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=816</guid>
		<description><![CDATA[<p>教程有些耽搁了~明天即刻补上！</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li><li><a href="http://www.figoyao.com/blog/2010/04/24/1331/" title="附件似乎丢失严重">附件似乎丢失严重</a></li><li><a href="http://www.figoyao.com/blog/2009/12/02/62/" title="游戏辅助工具开发教程-从入门到精通之A1_3篇">游戏辅助工具开发教程-从入门到精通之A1_3篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/455/" title="夸父追日和嫦娥奔月的真相">夸父追日和嫦娥奔月的真相</a></li><li><a href="http://www.figoyao.com/blog/2009/12/31/283/" title="游戏辅助工具开发教程-从入门到精通之A3_6篇">游戏辅助工具开发教程-从入门到精通之A3_6篇</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>教程有些耽搁了~明天即刻补上！</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li><li><a href="http://www.figoyao.com/blog/2010/04/25/1365/" title="Twitter Weekly Updates for 2010-04-25">Twitter Weekly Updates for 2010-04-25</a></li><li><a href="http://www.figoyao.com/blog/2009/12/30/254/" title="游戏辅助工具开发教程-从入门到精通之A3_4篇">游戏辅助工具开发教程-从入门到精通之A3_4篇</a></li><li><a href="http://www.figoyao.com/blog/2009/11/28/34/" title="游戏辅助工具开发教程-从入门到精通之A1_1篇">游戏辅助工具开发教程-从入门到精通之A1_1篇</a></li><li><a href="http://www.figoyao.com/blog/2010/03/28/1273/" title="Twitter Weekly Updates for 2010-03-28">Twitter Weekly Updates for 2010-03-28</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/29/816/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>培养良好编程习惯（一）</title>
		<link>http://www.figoyao.com/blog/2010/01/26/787/</link>
		<comments>http://www.figoyao.com/blog/2010/01/26/787/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 04:24:16 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[习惯]]></category>
		<category><![CDATA[编程]]></category>
		<category><![CDATA[风格]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=787</guid>
		<description><![CDATA[转载请注明出处：<a href="http://www.figoyao.com/blog/2010/01/26/787" target="_blank">http://www.figoyao.com/blog/2010/01/26/787</a>
编程习惯的好坏影响的是代码的可阅读和可维护性，尤其是在代码规模扩大时，就不能随意去编写代码。前面教程对于这些细节没有提及，所以在这里专门讲一下。下面主要涉及这么几个方面：
1、缩进格式
2、命名习惯[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/26/787/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/01/26/787" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/01/26/787</span></a></p>
<p>编程习惯的好坏影响的是代码的可阅读和可维护性，尤其是在代码规模扩大时，就不能随意去编写代码。前面教程对于这些细节没有提及，所以在这里专门讲一下。下面主要涉及这么几个方面：<br />
1、缩进格式<br />
2、命名习惯<br />
3、注释习惯</p>
<p><strong>缩进格式</strong>的话没有统一的好坏标准，但是有个一致性原则，就是说<strong>如果你使用了一种形式，那么就要保持使用这种形式</strong>。如：</p>
<pre class="brush: cpp;">
	//第一种形式
	for (int i = 0;i &lt; 10;i++)
	{
		test();
	}

	//第二种形式
	for (int i = 0;i &lt; 10;i++)
		{
		test();
		}

	//第三种形式
	for (int i = 0;i &lt; 10;i++)
		{
			test();
		}

	//第四种形式
	for (int i = 0;i &lt; 10;i++)
	{
	test();
	}

	//第五种形式
	for (int i = 0;i &lt; 10;i++){
		test();
	}
</pre>
<p>上面给出的是比较有代表性的五种缩进形式，没有哪种比其它阅读起来更容易，但是，如果你选定了一种形式，就应该保持这种形式成为自己的习惯。而且我提倡<strong>分块</strong>结构，就是说把功能一致的代码用大括号标识，哪怕只有一句话，这对于后期维护和扩充是很有好处的。最后需要注意的是<em>二元操作符两边最好各加一个空格</em>。</p>
<p><strong>命名习惯</strong>涉及到如何命名和如何定义变量2个方面。在定义变量时，我推荐的是<a href="http://zh.wikipedia.org/wiki/匈牙利命名法" target="_blank">匈牙利命名法</a>，但是不要教条主义，有时候特殊情况特殊处理，对于全局(Global)变量最好加上<span style="color: #ff0000;">g_</span>前缀。对于宏的命名最好全部大写；对于函数命名最好使用有意义的单词组合标识；在定义变量时，最好一个变量占一行，这样便于在以后改变变量类型时候易于修改；对于引出的变量一定要在定义时（使用前）初始化，否则可能会产生不可预料的错误：</p>
<pre class="brush: cpp;">
	//定义一个全局计数器
	int g_iCnt = 0;

	//不推荐这种方式
	int iTest = 0,iSec = 60;

	//将来想把iTest改为double型直接修改即可
	int iTest = 0;
	int iSec = 60;
</pre>
<p><strong>注释习惯</strong>似乎没有前两者重要，但一个好的注释对于别人阅读你的代码是带有裨益的，尤其是在大项目中更为必要。有句话在程序员中一直流传：“有多少种程序员就有多少种注释风格。”这说明了注释的多样性和无标准性，还是那个观点，一致性的注释对于代码维护时很重要的，常见的集中注释方式如下：</p>
<pre class="brush: cpp;">
/*******************
*                  *
*	figoyao.com    *
*                  *
*******************/

/*******************
*
*	figoyao.com
*
*******************/

/*
	figoyao.com
				 */

/*
	figoyao.com
*/

/*
*	figoyao.com
*/

//figoyao.com
</pre>
<p>对于大段注释可以采用前面几种，对于简单注释则推荐使用最好一种方式，还是强调注意一致性原则。一般来说，注释应该提供的信息是你这段代码的目的而不是实现机制，所谓目的就是你这段代码是干什么用的，实现机制就是你这段代码是使用for循环实现还是使用while循环实现这类信息不必特意说明，但对于特殊情况下实现机制还是需要说明的，比如你自创的算法：）</p>
<p>大致先谈这么多，以后再逐渐补充，希望对你有所帮助。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/01/847/" title="培养良好编程习惯（二）">培养良好编程习惯（二）</a></li><li><a href="http://www.figoyao.com/blog/2010/03/30/1297/" title="游戏辅助工具[外挂]教程汇总">游戏辅助工具[外挂]教程汇总</a></li><li><a href="http://www.figoyao.com/blog/2010/03/02/1142/" title="推荐2个站点">推荐2个站点</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/26/787/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>请收藏备份站点网址</title>
		<link>http://www.figoyao.com/blog/2010/01/26/778/</link>
		<comments>http://www.figoyao.com/blog/2010/01/26/778/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:54:16 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[通知]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=778</guid>
		<description><![CDATA[为了防止哪天本站被和谐或因为各种不可预料的原因不可访问，请大家收藏本站备份通知网址，该网站仅用于国内不能访问主站后通知新站点之用。建议大家使用<strong>Google Reader</strong>、<strong>抓虾</strong>或者<strong>QQ邮箱</strong>都可<a href="http://feed.feedsky.com/figo" target="_blank">订阅本站</a>，那样的话本站页面资料全部会被保存在Reader里面，速度也比较快。
<a href="http://mail.ustc.edu.cn/~yaof/" target="_blank">点击收藏</a>
推荐阅读环境：
<strong>IE7[......]</strong><p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/26/778/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>为了防止哪天本站被和谐或因为各种不可预料的原因不可访问，请大家收藏本站备份通知网址，该网站仅用于国内不能访问主站后通知新站点之用。建议大家使用<strong>Google Reader</strong>、<strong>抓虾</strong>或者<strong>QQ邮箱</strong>都可<a href="http://feed.feedsky.com/figo" target="_blank">订阅本站</a>，那样的话本站页面资料全部会被保存在Reader里面，速度也比较快。</p>
<h3 style="text-align: center;"><a href="http://mail.ustc.edu.cn/~yaof/" target="_blank">点击收藏</a></h3>
<p style="text-align: left;"><span style="color: #ff0000;">推荐阅读环境</span>：<br />
<strong>IE7</strong>（及以上）、<strong>火狐</strong>、<strong>Chrome</strong></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/17/535/" title="关于之前教程中图片丢失的解决办法">关于之前教程中图片丢失的解决办法</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/26/778/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>你有病吗~你有病啊~你有病吧</title>
		<link>http://www.figoyao.com/blog/2010/01/24/768/</link>
		<comments>http://www.figoyao.com/blog/2010/01/24/768/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 05:43:27 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[immt]]></category>
		<category><![CDATA[我叫MT]]></category>
		<category><![CDATA[魔兽]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/2010/01/24/768/</guid>
		<description><![CDATA[<p><embed height="480" width="600" wmode="opaque" allowscriptaccess="never" allownetworking="internal" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="isShowRelatedVideo=false&#38;showAd=0&#38;show_pre=1&#38;show_next=1&#38;VideoIDS=XMTI4MTg0OTA0=&#38;isAutoPlay=false&#38;isDebug=false&#38;UserID=&#38;winType=interior&#38;playMovie=true&#38;MMControl=false&#38;MMout=false&#38;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" allowfullscreen="true" quality="high" bgcolor="#FFFFFF" name="movie_player" id="playerswf" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" type="application/x-shockwave-flash"></embed> </p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/13/497/" title="私服！私服！">私服！私服！</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><embed height="480" width="600" wmode="opaque" allowscriptaccess="never" allownetworking="internal" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="isShowRelatedVideo=false&amp;showAd=0&amp;show_pre=1&amp;show_next=1&amp;VideoIDS=XMTI4MTg0OTA0=&amp;isAutoPlay=false&amp;isDebug=false&amp;UserID=&amp;winType=interior&amp;playMovie=true&amp;MMControl=false&amp;MMout=false&amp;RecordCode=1001,1002,1003,1004,1005,1006,2001,3001,3002,3003,3004,3005,3007,3008,9999" allowfullscreen="true" quality="high" bgcolor="#FFFFFF" name="movie_player" id="playerswf" src="http://static.youku.com/v1.0.0182/v/swf/qplayer.swf" type="application/x-shockwave-flash"></embed> </p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/13/497/" title="私服！私服！">私服！私服！</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/24/768/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>冷笑话</title>
		<link>http://www.figoyao.com/blog/2010/01/23/765/</link>
		<comments>http://www.figoyao.com/blog/2010/01/23/765/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 07:43:07 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[总理]]></category>
		<category><![CDATA[李克强]]></category>
		<category><![CDATA[温家宝]]></category>
		<category><![CDATA[笑话]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=765</guid>
		<description><![CDATA[李克强前阵子参观阿里巴巴 到了技术部，看到一个程序员正编程。此人看到李克强一直看着他并未理会，而是继续写程序。接待人员怕尴尬，就问他，你知不知道他是谁啊？ 他说，不认识。 接待人员无奈提醒他，这可是我们国家的总理啊。他马上站起来，深深鞠了一躬，说温总理好！
随机日志<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/02/1142/" title="推荐2个站点">推荐2个站点</a></li><li><a href="http://www.figoyao.com/blog/2010/02/09/994/" title="Google，你难道不知道中国是下个朝鲜吗？！">Google，你难道不[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/23/765/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>李克强前阵子参观阿里巴巴 到了技术部，看到一个程序员正编程。此人看到李克强一直看着他并未理会，而是继续写程序。接待人员怕尴尬，就问他，你知不知道他是谁啊？ 他说，不认识。 接待人员无奈提醒他，这可是我们国家的总理啊。他马上站起来，深深鞠了一躬，说温总理好！</p>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/01/22/676/" title="游戏辅助工具开发教程-从入门到精通之A3_14篇">游戏辅助工具开发教程-从入门到精通之A3_14篇</a></li><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/29/816/" title="这几天挂吊瓶">这几天挂吊瓶</a></li><li><a href="http://www.figoyao.com/blog/2010/03/22/1222/" title="Windows输入法完整源码">Windows输入法完整源码</a></li><li><a href="http://www.figoyao.com/blog/2009/12/31/285/" title="游戏辅助工具开发教程-从入门到精通之A3_5篇">游戏辅助工具开发教程-从入门到精通之A3_5篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/23/765/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>你们先革命，我随后就到~</title>
		<link>http://www.figoyao.com/blog/2010/01/22/709/</link>
		<comments>http://www.figoyao.com/blog/2010/01/22/709/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 12:11:34 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[兄弟]]></category>
		<category><![CDATA[怀旧]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=709</guid>
		<description><![CDATA[<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mN8If0y7mnJ9ZMzQ4HkpGDaPox1W7F68bqnSqdMqVjD1DZ2PRvOb3CvzQXChaG0L7-m2rmM4RAfWsr70LHUQliY1F4qA4yMBcHVYq9m3Sd6L8BGBoVHyzugFRDKryl4yHZoGHkKg1tMb3JDpTPbmmJA/a.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mN8If0y7mnJ9ZMzQ4HkpGDaPox1W7F68bqnSqdMqVjD1DZ2PRvOb3CvzQXChaG0L7-m2rmM4RAfWsr70LHUQliY1F4qA4yMBcHVYq9m3Sd6L8BGBoVHyzugFRDKryl4yHZoGHkKg1tMb3JDpTPbmmJA/a.jpg" target="_blank"><img class="alignnone size-full wp-image-710" title="1" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/1.jpg" alt="1" width="580" height="435" /></a>

别离和感受了很多，失去和得到了很多。
人生只有三万天而已，而我离第一个一万天已经越来越近。已然没有了骑上单车去游荡的激情，兄弟姐妹们还在为各自的理想奋斗，想我们没有电脑的日子是多么的清爽，想我们没有手机的日子是那般的无束。
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1m5Wg1Y_9I3Q811XabJ6JlMEZVEAo28KAVBku5GB9pViPSTCyRK5TacxFhdC0ILFPC1uAFaXIfALioiG3NomvCLlObhSwF8kpNOiLWrMc7eGwtBLG3WpM_15xjrxlQdNN0IA2kyX65UcxcyuifnrSneQ/b.jpg" href="https://jbi7gg.bay.livefilestore.com/y1m5Wg1Y_9I3Q811XabJ6JlMEZVEAo28KAVBku5GB9pViPSTCyRK5TacxFhdC0ILFPC1uAFaXIfALioiG3NomvCLlObhSwF8kpNOiLWrMc7eGwtBLG3WpM_15xjrxlQdNN0IA2kyX65UcxcyuifnrSneQ/b.jpg" target="_blank"><img class="alignnone size-full wp-image-711" title="2" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/2.jpg" alt="2" width="580" height="362" /></a>
我的第一个笔友也该结婚了吧，她是四川的，她在文学杂志的下面留言说她开朗[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/22/709/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<div><a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mN8If0y7mnJ9ZMzQ4HkpGDaPox1W7F68bqnSqdMqVjD1DZ2PRvOb3CvzQXChaG0L7-m2rmM4RAfWsr70LHUQliY1F4qA4yMBcHVYq9m3Sd6L8BGBoVHyzugFRDKryl4yHZoGHkKg1tMb3JDpTPbmmJA/a.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mN8If0y7mnJ9ZMzQ4HkpGDaPox1W7F68bqnSqdMqVjD1DZ2PRvOb3CvzQXChaG0L7-m2rmM4RAfWsr70LHUQliY1F4qA4yMBcHVYq9m3Sd6L8BGBoVHyzugFRDKryl4yHZoGHkKg1tMb3JDpTPbmmJA/a.jpg" target="_blank"><img class="alignnone size-full wp-image-710" title="1" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/1.jpg" alt="1" width="580" height="435" /></a><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="290" height="40" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fwww.zyt2588.cn%2Flk.mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x99ff00&amp;lefticon=0x666666&amp;rightbg=0x666666&amp;rightbghover=0x99ff00&amp;righticon=0xffffff&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x99ff00&amp;loop=no&amp;autostart=no" /><param name="wmode" value="transparent" /><embed type="application/x-shockwave-flash" width="290" height="40" src="http://www.blogcastone.net/audio/player.swf?soundFile=http%3A%2F%2Fwww.zyt2588.cn%2Flk.mp3&amp;playerID=10&amp;bg=0xeeeeee&amp;leftbg=0x99ff00&amp;lefticon=0x666666&amp;rightbg=0x666666&amp;rightbghover=0x99ff00&amp;righticon=0xffffff&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x99ff00&amp;loop=no&amp;autostart=no" wmode="transparent"></embed></object><br />
别离和感受了很多，失去和得到了很多。<br />
人生只有三万天而已，而我离第一个一万天已经越来越近。已然没有了骑上单车去游荡的激情，兄弟姐妹们还在为各自的理想奋斗，想我们没有电脑的日子是多么的清爽，想我们没有手机的日子是那般的无束。<br />
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1m5Wg1Y_9I3Q811XabJ6JlMEZVEAo28KAVBku5GB9pViPSTCyRK5TacxFhdC0ILFPC1uAFaXIfALioiG3NomvCLlObhSwF8kpNOiLWrMc7eGwtBLG3WpM_15xjrxlQdNN0IA2kyX65UcxcyuifnrSneQ/b.jpg" href="https://jbi7gg.bay.livefilestore.com/y1m5Wg1Y_9I3Q811XabJ6JlMEZVEAo28KAVBku5GB9pViPSTCyRK5TacxFhdC0ILFPC1uAFaXIfALioiG3NomvCLlObhSwF8kpNOiLWrMc7eGwtBLG3WpM_15xjrxlQdNN0IA2kyX65UcxcyuifnrSneQ/b.jpg" target="_blank"><img class="alignnone size-full wp-image-711" title="2" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/2.jpg" alt="2" width="580" height="362" /></a><br />
我的第一个笔友也该结婚了吧，她是四川的，她在文学杂志的下面留言说她开朗、爱好旅游和文学，希望交到一个同样开朗的笔友，她叫颖。当然，我至今都不知道她 的尊姓，我一般喊她作某颖。然后同样是文学青年的我郑重的寄出了2封信，一封寄给颖同学，一封寄给邹同学&#8211;邹同学是他，同样刊登了征笔友信息。可以想见的结果是，邹同学失去了和大师交流的机会，幸运女神把橄榄枝抛向了颖同学。然后我幻想着成为老舍、成为巴尔扎克，最不济也要成为高尔基哈，因为是幻想所以 结果往往连最低的目标我们都达不到。上高中就没有再玩笔友的游戏，中间偶尔还有信件，但渐渐疏远了，因为网友时代开始来临。<br />
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mH0j32FLSZ7-gHZFDl-J-VDbeh9y24XQfSl1Pe85OqX6QH07VVUzle3uEPCms0o0M9bpVMNLvcn2JkzJXMDmq_gDl9gp7xK3VYp2Fduqy528_Ts_GGvfQSVTsrLsZo6f2HyJWUtm5Zz6H6bWY82Hb1w/c.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mH0j32FLSZ7-gHZFDl-J-VDbeh9y24XQfSl1Pe85OqX6QH07VVUzle3uEPCms0o0M9bpVMNLvcn2JkzJXMDmq_gDl9gp7xK3VYp2Fduqy528_Ts_GGvfQSVTsrLsZo6f2HyJWUtm5Zz6H6bWY82Hb1w/c.jpg" target="_blank"><img class="alignnone size-full wp-image-712" title="3" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/3.jpg" alt="3" width="580" height="362" /></a><br />
印象中第一次通宵上网是中考结束，在网上疯狂申请邮箱和QQ号，并且每个密码都不同，以至于每次上网我需要一个本子来专门记录账号和密码；第一次玩反恐精英 的时候我差点晕倒，因为不习惯3D的游戏方式，出网吧时我居然像游戏里面一样贴着墙走；也是这个时候认识了第一个所谓的网友，碰巧她也是高中生，但是她的目标是清华，我当时还没想好上啥学校，然后每次都要听她激情澎湃的讲自己的学习生活，这就是第一代纯洁的网友，而我也有幸参与了网友进化的前过程。<br />
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mSA_4sDucx-6mn8NBRhhVZ9vC5kNqyXKnIDQ5VRWtPI_ubrk3S41dG40RhjhYqAV5v30L-cG-VEtH1LojXlbPRoi4pYxYQJ4Dq7W3I97YX-uUVxyupFcloRtqyXcgtE_XlDJ3-9b6qS_2su0aYsq8ww/d.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mSA_4sDucx-6mn8NBRhhVZ9vC5kNqyXKnIDQ5VRWtPI_ubrk3S41dG40RhjhYqAV5v30L-cG-VEtH1LojXlbPRoi4pYxYQJ4Dq7W3I97YX-uUVxyupFcloRtqyXcgtE_XlDJ3-9b6qS_2su0aYsq8ww/d.jpg" target="_blank"><img class="alignnone size-full wp-image-713" title="4" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/4.jpg" alt="4" width="580" height="362" /></a><br />
当我发现以前申请的那堆五、六位的QQ号码密码错误时，我已经上高二了，我违心的选择了理科，这种选择的严重后果在于，一个虔诚的文学青年就此沦落为二流写手，也第一次创造了日记体形式自传&#8230;2002年疯狂的愚人节至今难忘。<br />
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mGWx6r2cipi5X-ewyNJCpjAUSdpkdgJ-X--IR19qIh61zdpRKEaGRwDrLFwxCw1-kc7NDbIFZNvmPpJR25QKIlDbK5JcVGZcD3xtfsC-hGHlE7f1oVEJOs0Lh1AfmiejLBkPXcNtT-NNf2p572IBpNA/e.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mGWx6r2cipi5X-ewyNJCpjAUSdpkdgJ-X--IR19qIh61zdpRKEaGRwDrLFwxCw1-kc7NDbIFZNvmPpJR25QKIlDbK5JcVGZcD3xtfsC-hGHlE7f1oVEJOs0Lh1AfmiejLBkPXcNtT-NNf2p572IBpNA/e.jpg" target="_blank"><img class="alignnone size-full wp-image-714" title="5" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/5.jpg" alt="5" width="580" height="362" /></a><br />
然后我原来的兄弟姐妹被抛向了全国各地，同时我有了新的兄弟姐妹。现今他们已无新旧之分，都是我的好兄弟：你们先革命，我随后就到~<br />
<a rel="WLPP;url=https://jbi7gg.bay.livefilestore.com/y1mBqg5gwT6djTevmvVe5ldsE0_eR1-6zzHygycWP3IDqAPRezM4izOd_j-qlocrLuBxk8iOPbosUJcgWfQANobYnGYSLMtYLFsVXMfSgVhyM_LSipGlWhdjoMwi53sCmLw5CqAzuchouphSXAcimn_OA/f.jpg" href="https://jbi7gg.bay.livefilestore.com/y1mBqg5gwT6djTevmvVe5ldsE0_eR1-6zzHygycWP3IDqAPRezM4izOd_j-qlocrLuBxk8iOPbosUJcgWfQANobYnGYSLMtYLFsVXMfSgVhyM_LSipGlWhdjoMwi53sCmLw5CqAzuchouphSXAcimn_OA/f.jpg" target="_blank"><img class="alignnone size-full wp-image-715" title="6" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/6.jpg" alt="6" width="580" height="362" /></a></div>
<div>btw:<br />
真是睹物思人啊~</div>
<h2  class="related_post_title">随机日志</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/25/1352/" title="Windows网络编程技术[一]">Windows网络编程技术[一]</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/09/448/" title="科技的魅力">科技的魅力</a></li><li><a href="http://www.figoyao.com/blog/2010/04/29/1373/" title="关于博客今后的定位">关于博客今后的定位</a></li><li><a href="http://www.figoyao.com/blog/2010/01/29/816/" title="这几天挂吊瓶">这几天挂吊瓶</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/22/709/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>第二次被封杀</title>
		<link>http://www.figoyao.com/blog/2010/01/22/703/</link>
		<comments>http://www.figoyao.com/blog/2010/01/22/703/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 10:47:47 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[封杀]]></category>
		<category><![CDATA[百度]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=703</guid>
		<description><![CDATA[<img class="alignnone size-full wp-image-704" title="baidu" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/baidu.png" alt="baidu" width="351" height="158" />
网址：<a href="http://hi.baidu.com/decodefigo" target="_blank">http://hi.baidu.com/decodefigo</a>
<img class="alignnone size-full wp-image-705" title="csdn" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/csdn.png" alt="csdn" width="349" height="104" />
网址：<a href="http://blog.csdn.net/gamecrack" target="_blank">http://blog.csdn.net/gamecrack</a>
我原本就只是想作个镜像。国内的环境真差，共匪统治下的言论自由甚至连无关痛痒的一点点技术讨论都容不下，百度作为美国公司真是丢人。
你或许感兴趣下面的文章<ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/20/1196/" title="一切尽在不言中">一切尽在不[......]</a></li></ul><p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/22/703/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-704" title="baidu" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/baidu.png" alt="baidu" width="351" height="158" /><br />
网址：<a href="http://hi.baidu.com/decodefigo" target="_blank">http://hi.baidu.com/decodefigo</a><br />
<img class="alignnone size-full wp-image-705" title="csdn" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/csdn.png" alt="csdn" width="349" height="104" /><br />
网址：<a href="http://blog.csdn.net/gamecrack" target="_blank">http://blog.csdn.net/gamecrack</a></p>
<p>我原本就只是想作个镜像。国内的环境真差，共匪统治下的言论自由甚至连无关痛痒的一点点技术讨论都容不下，百度作为美国公司真是丢人。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/03/20/1196/" title="一切尽在不言中">一切尽在不言中</a></li><li><a href="http://www.figoyao.com/blog/2010/03/18/1180/" title="网页游戏辅助工具实例分析">网页游戏辅助工具实例分析</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/22/703/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>克林顿国务卿关于互联网自由的讲话</title>
		<link>http://www.figoyao.com/blog/2010/01/22/697/</link>
		<comments>http://www.figoyao.com/blog/2010/01/22/697/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 08:08:41 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Thinking]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[克林顿]]></category>
		<category><![CDATA[希拉里]]></category>
		<category><![CDATA[演讲]]></category>
		<category><![CDATA[自由]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=697</guid>
		<description><![CDATA[<em>希拉里∙克林顿(Hillary Rodham Clinton)国务卿
华盛顿哥伦比亚特区新闻博物馆（Newseum）
2009年1月21日（星期四）</em>
非常感谢，艾伯托（Alberto）。不仅要感谢你的赞誉和介绍，而且要感谢你和你的同事们 在这个重要机构中发挥的领导作用。很高兴来到新闻博物馆。这个博物[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/22/697/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;"><em>希拉里∙克林顿(Hillary Rodham Clinton)国务卿<br />
华盛顿哥伦比亚特区新闻博物馆（Newseum）<br />
2009年1月21日（星期四）</em></p>
<p style="text-align: left;">非常感谢，艾伯托（Alberto）。不仅要感谢你的赞誉和介绍，而且要感谢你和你的同事们 在这个重要机构中发挥的领导作用。很高兴来到新闻博物馆。这个博物馆是一座纪念碑，见证了我们最珍视的一些自由。我十分感谢能有此机会谈谈如何运用这些自 由应对二十一世纪的各项挑战。</p>
<p>虽然我并不能看到你们所有的人——因为在这样的场合灯光照射我的眼睛，而你们都在背光处——但我知道在座的有很多朋友和老同事。我要感谢自由论坛 （Freedom Forum）的首席执行官查尔斯∙奥弗比（Charles Overby）光临新闻博物馆，以及我在参议院时的老同事理查德∙卢格（Richard Lugar）和乔∙利伯曼(Joe Lieberman)两位参议员，他们两位都为《表达法》（Voice Act）的通过作出了努力。这项立法表明，美国国会和美国人民不分党派，不分政府部门，坚定地支持互联网自由。</p>
<p>我听说在场的还有参议员萨姆 ∙布朗巴克（Sam Brownback）、参议员特德∙考夫曼（Ted Kaufman）、众议员洛雷塔∙桑切斯（Loretta Sanchez）、许多大使、临时代办和外交使团的其他代表、以及从中国、哥伦比亚、伊朗、黎巴嫩和摩尔多瓦等国前来参加我们关于互联网自由的“国际访问 者领袖计划”（International Visitor Leadership Program）的人士。我还要提到最近被任命为广播理事会（Broadcasting Board of Govenors）理事的阿斯彭研究所（Aspen Institute）所长沃尔特∙艾萨克森（ Walter Isaacson）。毫无疑问，他在阿斯彭研究所从事的支持互联网自由的工作中发挥了重要作用。</p>
<p>这是关于一个非常重要的议题的一个重要讲 话。但在开始谈这个议题前，我想简要介绍一下海地的情况。过去八天来，海地人民和世界人民携手应对一场巨大的灾难。 我们这个半球曾历经磨难，但我们目前在太子港面临的困境鲜有先例。通讯网络在我们抗击这场灾难的过程中发挥了极其重要的作用。不用说，当地的通讯网络遭受 了重创，在很多地方被彻底摧毁。地震发生后仅几个小时，我们就与民营部门的伙伴发起“海地”（HAITI）短信捐款活动，使美国的移动电话使用者能通过发 短信向救灾工作捐款。这项活动充分展示了美国人民的慷慨。迄今，该活动已为海地的抗震救灾筹集了2500多万美元。</p>
<p>信息网络在救灾现场也发 挥了极其重要的作用。星期六，我在太子港会见普雷瓦尔（Preval） 总统时，他的重点目标之一是要努力恢复通讯。幸存的通讯设施不足以帮助当地政府官员相互联络，非政府组织以及我们的文职部门和军队的领导人的运作能力都受 到严重影响。高科技公司设立了互动地图，帮助确定救灾需要和目标资源。就在星期一，一名年仅七岁的小女孩和两名妇女通过发短信呼救被一个美国搜救队从坍塌 的超市的残砖碎瓦下救了出来。这些事例只是一个普遍现象的缩影。</p>
<p>信息网络的扩展正在为我们的星球建立一个新的神经系统。在海地或湖南发生什 么情况时，我们其余的人都能从当事者那里实时得知。我们还可以实时作出反应。灾后 迫切希望提供帮助的美国人和被困在超市瓦砾下的小姑娘以一年以前乃至一代人以前还想象不到的方式被联系在一起。今天，同样的原则适用于几乎整个人类。我们 今天坐在这里，你们中间任何人——或更有可能的是我们孩子中的任何人——都可以拿出很多人每天随身携带的通讯工具，将这次讨论的内容发送给全世界数十亿 人。</p>
<p>在很多方面，信息从未像今天这么自由。与过去任何时候相比，今天都有更多的方式把更多的想法传播给更多的人。即使在集权国家，信息网络也在帮助人们发现新的事实，向政府更多地问责。</p>
<p>例如，奥巴马总统11月 访华期间与当地大学生的直接对话包含了网上提问，突显了互联网的重要性。在回答一个网上提问时，他强调人民有权自由获取信息。他说，信息流通越自由，社会 就越强健。他谈到获取信息的权力如何有助于公民向自己的政府问责，激发新的想法，鼓励创造性和创业精神。我今天来这里发表讲话正是出于美国对这一经过实践 检验的真理的信念。</p>
<p>由于人们的相互联系空前密切，我们也必须认识到这些新技术并非无条件地造福人类。这些工具也正被用于阻碍人类进步和剥夺 政治权利。正如钢可被用于建造医院也 可用于制造机枪。核能可为城市提供动力也可摧毁城市。现代信息网络及其支持的技术既可被用于行善也可被用于作恶。有助于组织自由运动的网络也能使“基地” 组织得以煽动仇恨，挑起针对无辜者的暴力。具有开放政府信息和促进透明化潜力的技术也可被政府劫持，用于镇压异见，剥夺公民权利。</p>
<p>过去一年 来，我们看到对信息自由流通的威胁激增。中国、突尼斯和乌兹别克斯坦加强了对互联网的审查。在越南，使用广受欢迎的社交网站的权利突然消 失。上个星期五在埃及，30名博客作者和维权人士被拘留。这批博客作者中的一位是巴塞姆∙萨米尔（Bassem Samir）。他有幸获释，今天也在这里，同我们在一起。因此，一方面，这些技术的推广明显地正在改变我们的世界，另一方面，尚无法预知这样的改变将对世 界人民的人权和幸福产生何种影响。</p>
<p>这些新技术本身不会在争取自由与进步的斗争中选择立场。但是，美国要做到立场鲜明。我们支持一个允许全人 类平等享有知识和思想的互联网。而且我们认识到，在 世界上建立何种信息基础设施将取决于我们和其他人为之确定的性质。虽然这是一个全新的挑战，但我们确保思想自由交流的责任可追溯至和众国诞生之初。《宪 法》第一修正案的内容字字镌刻在这座大楼前那块50吨重的田纳西大理石上。世世代代的美国人都为捍卫刻在那块石头上的价值观付出了努力。</p>
<p>富兰克林•罗斯福（Franklin Roosevelt）在1941年发表“四项自由”演讲时发扬了这些思想。当时，美国人面临着一系列的危机，此外还有信心危机。但是，对一个人人都享有言 论表达自由、信仰自由、没有贫困、没有恐惧的世界的憧憬冲破了他那个时代的重重困难。多年之后，我的楷模之一艾琳娜•罗斯福（Eleanor Roosevelt）努力使这些原则成为《世界人权宣言》的奠基原则。这些原则成为继往开来每一代人的北斗，引导我们、鞭策我们、促使我们在险恶的环境中 勇于向前。</p>
<p>在科学技术飞跃发展的时候，我们必须反思这个传统。我们需要确保科学技术的进步与我们的原则同步。在接受诺贝尔奖时，奥巴马总统 讲到需要建设这样一个世界， 让和平建立在每一个人固有的权利和尊严之上。几天后在乔治敦大学关于人权的演讲中，我表示我们必须探索途径，把人权变成现实。今天，我们迫切需要在二十一 世纪的电子世界中保护这些自由。</p>
<p>世界上有许多其他的网络，有些帮助人员或资源的流动，有些辅助志同道合的个人之间的交流。但互联网是增强所 有其他网络的能力和潜力的一个网络，因此，我们认 为确保其使用者享有某些基本自由至关重要。其中最重要的是言论表达自由。这种自由的定义不再仅仅是公民前往市政厅前的广场批评他们的政府，而不担心遭受报 复。博客、电子邮件、社交网络和手机短信开启了交流思想的新途径，也为信息审查带来了新目标。</p>
<p>甚至就在我今天向你们讲演的此刻，某些地方的 政府审查人员正在竭力将我的话语从历史的记录中删除。但历史早已作出裁决：这些手法注定失败。两个月 前，我在德国参加了推倒柏林墙20周年纪念活动。参加这次活动的各国领导人向这个屏障对面那些英勇的男女志士表示敬意，他们曾经通过散发被称为“地下刊 物”（Samizdat）的小册子来阐明反对压迫的道理。这些传单对“东方集团”专制政权的宣传和用心提出了质疑。许多人因散发传单受到残酷迫害，但他们 的声音帮助穿透了“铁幕”的钢筋水泥和带刺的铁丝网。</p>
<p>柏林墙象征着一个分隔的世界，代表一个时代。今天，这堵墙的一些碎片就陈列在这座它们理应归属的博物馆里。在我们这个时代，具有代表性的基础设施就是互联网。它取代了分隔，象征着联系。但是，就在网络扩展到世界各国的同时，我们发现许多地方以虚拟的墙壁代替了有形的墙壁。</p>
<p>有些国家竖起了电子屏障，阻止本国人民分享世界上的一部分网络。他们从搜索引擎提供的结果中删除字词、名称和短语。他们侵犯了那些发表非暴力政治言论的人的 隐私权。这些做法违反了《世界人权宣言》，因为《宣言》告诉我们，人人都有权通过“各种媒体不受疆界限制地寻求、接收和传播信息和思想”。由于这些限制手 段的蔓延，一个新的信息帷幕正在世界上许多地方降临。为穿越这种阻隔，个人视频和博客文章正成为当今时代的“地下刊物”。</p>
<p>正如过去的专制政 权一样，有些政府正在打击那些利用这些工具的独立思考者。在伊朗总统大选后的游行示威期间，用手机拍摄的一位年轻女子遭血腥屠杀的斑驳画面 成为通过数字技术对该政府暴行提出的控诉。我们已看到有报道说，当生活在海外的伊朗人在网上张贴对他们国家领导人的批评时，他们在伊朗的家人便成为报复的 目标。尽管政府普遍采取严厉的恐吓手段，但伊朗英勇的公民记者们继续利用技术向全世界及其同胞报道他们国内发生的事件。伊朗人民为自身的人权呐喊，同时也 鼓舞了全世界，他们的勇气正在重新诠释如何通过技术传播真理和揭露非正义现象。</p>
<p>所有的社会都承认言论自由有其限度。我们不能容忍煽动他人从 事暴力的人，例如此刻正利用互联网在全世界宣扬大规模屠杀无辜百姓的“基地”组织成员。那些以种 族、宗教、族裔、性别或性取向为由攻击他人的仇恨言论也应受到严厉斥责。遗憾的是，这些问题均构成日益严重的挑战，国际社会必须共同进行抗击。我们还必须 解决匿名发表言论的问题。对于那些利用互联网招收恐怖主义分子或传播被盗窃的知识产权的人，不能让他们将其网络行为与其真实身份脱钩。然而，对于那些为了 和平的政治目的利用互联网的人士，这些并不能成为政府有计划地侵犯他们的权利和隐私的托辞。</p>
<p>随着新技术的传播，言论自由可能是最明显会遇到 各种挑战的一项自由权利，但并非仅此而已。信仰自由通常涉及个人与造物主对话或不对话的权利。这是一种不需依 赖技术的交流方式。然而，信仰自由还体现了与拥有共同价值观和人生观的人一起集会的普遍权利。在我们的历史中，这类集会常见于教堂、犹太会堂、清真寺和寺 庙。今天，这类集会也可能在网上进行。</p>
<p>互联网有助于不同信仰的人消除相互间的分歧。正如总统在开罗所说，宗教自由对于人们能否共同生活至关 重要。在我们寻求扩大对话之际，互联网蕴涵着巨大的希 望。我们已开始使美国学生与全世界穆斯林社会的年青人为讨论全球性挑战相互联络。我们将继续利用这个工具，支持不同宗教社群的个人相互讨论。</p>
<p>然而，某些国家则利用互联网打击和压制宗教人士。例如，去年在沙特阿拉伯，一名男子因在博客上刊登介绍基督教的文章，被捕入狱达数月之久。哈佛大学一项调查 表明，沙特政府封锁了许多介绍印度教、犹太教、基督教乃至伊斯兰教的网页。包括越南和中国在内的一些国家也利用类似手段限制获得宗教信息的途径。</p>
<p>这些技术不得用于惩罚和平的政治言论，同样也不可用于迫害或压制宗教少数派。祈祷往往在更高层次的网络进行。然而，互联网和社交网站等通讯技术应该有助于提 高人们根据自己的需要进行祈祷的能力，以及与拥有共同信仰的人集会和更多地了解其他人信仰的能力。正如我们促进其他生活领域的自由一样，我们也必须努力促 进在网络上祈祷的自由。</p>
<p>当然，还有无数人的生活并没享受到这些技术带来的益处。在我们的世界里，正如我多次指出的，才智有可能普及众人，但 机会并非如此。从长期获得的经验来看，我 们知道，在人民缺乏途径获得知识、市场、资本和机会的国家，要促进社会和经济发展会十分艰难，有时则徒劳无功。在这种情况下，互联网可发挥调节器的作用。 通过向人们提供获得知识和潜在市场的途径，各种网络可为那些缺乏机会的地区创造机会。</p>
<p>在过去一年中，我在肯尼亚亲眼目睹了这种情况。那里的农牧民在开始使用移动银行技术后，收入提高了多达30%。在孟加拉，30多万人报名通过手机学习英语。在非洲撒哈拉沙漠以南地区，妇女企业家使用互联网获得小型贷款并与全球市场接轨。</p>
<p>世界上经济地位最低的亿万人民有可能在生活中效仿上述取得进步的实例。在很多情况下，互联网、手机和其他通讯技术能对经济发展起到绿色革命 （Green Revolution）对农业所起的同等作用。现在，小小的投入便能产生巨大效益。世界银行的一项研究显示，在一个典型的发展中国家，手机普及率每增加 10%，人均国内生产总值便能增长将近1%。具体而言，如果以印度为例，那将相当于每年近100亿美元。</p>
<p>与全球信息网络连通就好比踏上了通 往现代化的阶梯。在这些技术问世的最初几年，许多人以为它们将在世界上的富人和穷人之间划出鸿沟，但那种情况并没 有发生。今天共有40亿只手机在使用。手机使用者中有很多是小贩、人力车夫和其他历来缺乏受教育及其他机会的人。信息网络是实现平等的有力手段，我们应共 同使用这些技术帮助人们摆脱贫困，不再有匮乏之虞。</p>
<p>我们完全有理由满怀希望：当人们充分利用信息网络和通讯技术时，他们将能取得巨大进步。 但毫无疑问，也有些人正在利用全球信息网络实现其阴暗目的，而且将继 续这样做。暴力极端主义分子、犯罪集团、性犯罪者和独裁政府都妄图对全球网络加以利用。正如恐怖主义分子利用我们社会的开放性趁机实施阴谋，暴力极端主义 分子也要利用互联网进行煽动和恐吓。当我们努力增进这些自由时，我们也必须打击妄图利用通讯网络进行破坏并制造恐惧的人。</p>
<p>各国政府和公民必须保持信心，作为国家安全和经济繁荣核心环节的网络是安全且有韧性的。这不仅仅是几个小黑客污损几个网站的问题，如果我们的信息网络安全得不到保障，我们的网上银行业务、电子商务活动以及保护亿万美元知识产权的能力就全都岌岌可危。</p>
<p>面对破坏这些系统的活动，各国政府、民营部门和国际社会必须协调一致地采取行动。当黑客犯罪分子和有组织犯罪集团为非法牟利攻击网络时，我们需要更多的工具 帮助执法机构进行跨辖区的合作。儿童色情以及遭到贩运的妇女和女童所受的剥削通过互联网为整个世界所见并为剥削者借以牟利，对这种社会弊病也应采取同样的 应对措施。欧洲理事会在网络犯罪公约（Convention on Cybercrime ）方面的努力及其他方的类似努力促成了对此类犯罪起诉的国际协作，我们对此表示赞赏。我们还希望为此加倍努力。</p>
<p>国政府及国务院已经采取措施 寻求通过外交方式来加强全球网络安全。国务院有大批人员从事这项工作。有关人员一直在协同努力。我们还在两年前设立了一个专门 协调有关网络的对外政策的办公室。我们致力于在联合国和其他多边论坛应对这一挑战，并把网络安全问题列入世界性议题。奥巴马总统刚刚任命了一位新的国家网 络政策协调员，来帮助我们更紧密地协调工作，以确保每个人的网络都是自由、安全和可靠的。</p>
<p>某些国家、恐怖主义分子以及他们的代理人必须明 白，美国将保护我们的网络系统。那些在我们国家或任何其他国家破坏信息自由流通的人对我们的经济、我们的政府 和我们的公民社会构成了威胁。从事网络攻击的国家和个人将承担后果并受到国际社会的谴责。在一个靠互联网连通的世界里，对一个国家的网络的攻击就是对所有 人的攻击。通过强调这一点，我们可以在国家间建立行为准则，并鼓励尊重全球网民。</p>
<p>最后一项自由或许是罗斯福总统与夫人多年前所思考和论述的 自由的必然内含，它源于我前面已提到的四项自由，这就是连接自由：政府不应阻止人民与互联网、与网 站或与彼此连接。连接自由如同集会自由一样，只不过它是在网络空间。这一自由允许个人上网，聚集，希望还有合作。一旦上网，你不必是大亨或摇滚乐明星便能 对社会产生巨大影响。</p>
<p>对孟买恐怖主义袭击的最大规模的公众反应是由一位13岁少年发起的。他使用社交网络组织了献血运动，并建立了一个大型 跨宗教信仰的吊唁簿。在哥伦比 亚，一位失业的工程师召集起全世界190个城市的1200万人，向哥伦比亚革命武装力量（FARC）的恐怖活动发出抗议。这些抗议是历史上规模最大的反恐 怖主义示威活动。在随后几个星期中，哥伦比亚革命武装力量经历了十年军事行动中人数最多的弃甲和脱队事件。在墨西哥，一位对毒品暴力行径忍无可忍的公民发 出的一份电子邮件像滚雪球一般发展成遍及该国所有32个省的大型示威活动。仅在墨西哥城就有15万人上街抗议。因此，互联网能有助于人道社会抵制鼓吹暴 力、犯罪和极端主义的人。</p>
<p>在伊朗、摩尔多瓦以及其他国家，网上的组织动员已成为促进民主、使公民对可疑的选举结果表达抗议的重要工具。甚至在美国等已建立民主制度的国家，我们也看到这些工具具有改变历史的力量。你们当中有些人可能还记得这里2008年的总统选举。（笑声）</p>
<p>与这些技术相连接的自由可以帮助转变社会，但同时也对个人极其重要。我最近被一位医生的故事所感动——我不想说出他是哪个国家的人。他千方百计要为 女儿的罕见疾病作出诊断。他征询了20多位专家的意见，但仍然没有答案。最后，他是靠互联网搜索引擎得到了确切的诊断并找到了治疗方法 。这就是不受限制地使用搜索引擎技术之所以对个人生活如此重要的原因之一。</p>
<p>我今天概述的这些原则将成为我们对待互联网自由及其技术使用问题 的指导方针。我要谈谈我们在实践中是如何应用这些原则的。美国致力于为促进这些自由投入必要 的外交、经济和技术资源。美国是一个由来自各个国家、反映全球各种利益的移民组成的国家。我们的外交政策基于这样一种理念：当人民之间和国家之间合作时， 美国比任何其他国家都受益。当冲突与误解造成国家间的不合时，美国肩负着比任何国家都更沉重的负担。因此，我们处于有利位置，可以抓住这些随相互连接而来 的机遇。我们作为如此众多技术的诞生地，有责任确保它们从善使用。为此，我们需要建立能力，以推行我们在国务院称之为21世纪外交方略的规划。</p>
<p>重 新调整我们的政策和我们的工作重点并非易事，而适应新技术也鲜有捷径。当电报技术开始使用时，它给外交界许多人带来严重焦虑，因为天天收到发自华盛顿的指 示不是一个百分之百令人欢迎的前景。但正如我们的外交人员最终还是掌握了电报一样，他们也在为掌握这些新工具的潜力而努力。</p>
<p>我引以为豪的 是，国务院已经在40多个国家展开努力，帮助那些声音被压制性政府扼杀的人。我们也在努力使这个问题成为联合国的工作重点。我们正在将 互联网自由纳入我国重新进入联合国人权理事会（United Nations Human Rights Council）后提出的第一项决议案中。</p>
<p>我们还支持开发新工具，使公民能够避开政治审查而行使其自由表达的权利。我们正在为世界各地的团体和组织提供资金，确保将这些新工具以当地语言版本提供给需 要的人，并为他们提供安全上网所需的培训。美国支持开展这些努力已有一段时间，侧重于尽可能切实有效地实施这些项目。美国人民应当知道，对互联网进行审查 的国家也应当明白，我国政府致力于促进互联网自由。</p>
<p>我们希望让人们掌握这些工具，用以增进民主和人权，应对气候变化和流行病，为实现奥巴马总统提出的一个没有核武器的世界的目标争取全球支持，鼓励可持续的经济发展，帮助改善底层人民的生活。</p>
<p>因此，我今天宣布，未来一年中，我们将与实业界、学术界和非政府组织的合作伙伴一道，确立发挥联网技术威力的长期努力，利用这些技术推进我们的外交目标。我 们可以依靠手机、测绘应用软件和其他新工具来增进公民权能，辅助我们的传统外交。我们能够解决目前创新市场存在的缺陷。</p>
<p>请让我举一个例子。假设我想设计一种手机应用软件，让人们能够对包括我国政府在内的各政府部门的责任心和工作效率打分，并能够发现和报告腐败行为，实现这一设想所需的硬件已在几十亿潜在用户的手中，而且所需软件的开发和应用成本较低。</p>
<p>如果人们利用这项技术，就可以帮助我们有的放矢地使用对外援助经费、改善人民的生活并鼓励外国投资方对负责任的政府投资。但目前的情况是，移动应用技术开发 商尚无资金援助来自行开发这项技术，而国务院现在还缺乏使之成为可能的机制。不过，这项行动应当有助于解决这一问题，并且使小笔创新投资能够带来长期回 报。我们将与专家共同努力，为这种风险投资项目确定最佳框架。我们还将需要科技公司和非营利机构的人才和资源，才能尽快取得最佳效果。因此，在座各位如有 此类才干和专长，我谨在此邀请你们鼎力相助。</p>
<p>与此同时，有些公司、个人和机构正在设计和开发各种已经能够推进我们的外交和发展目标的创意和 应用技术，而国务院将展开一项创新竞赛活动，让这项工作立刻得 到推进。我们将邀请美国人提交应用软件和有关技术的最佳创意，它们应能有助于消除语言障碍、克服文盲局限、将人们与他们所需要的服务和信息连通。例如，微 软公司已经开发出网络医生软件的原型，以便为偏远地区提供医疗服务。我们希望看到更多这样的创意。我们将与竞赛获奖者合作，为帮助他们进一步发展创意提供 资金。</p>
<p>这些新的计划将大大充实我们过去一年来的重要工作。为了促进我们的外事和外交目标，我召集了一个有才干而且经验丰富的团队，领导我们 就21世纪外交 方略展开的努力。这个团队前往世界各地，协助各国政府和团体善用连接技术的益处。他们发起“公民社会2.0行动”（Civil Society 2.0 Initiative）， 协助基层组织进入数字时代。他们在墨西哥制定了一个协助打击毒品暴力的方案，让民众向可靠的来源作出不露痕迹的检举，以免遭受报复。他们也将移动银行带进 阿富汗，现在正在刚果民主共和国进行同样的工作。在巴基斯坦，他们建立了一个首创的移动社交网络，称为“我们的声音”（Our Voice）。这个网络已经产生了数千万条讯息，并将希望抵制暴力极端主义的巴基斯坦年轻人联系在一起。</p>
<p>在短短时间内，我们已经取得了长足 的进展，将这些技术的承诺转变成深富影响力的结果。可是仍有许多方面尚待努力。在我们和民营部门及外国政府联手推 广21世纪外交方略的工具时，我们必须谨记彼此都有责任捍卫我在今天所谈的自由。我们坚信，信息自由这样的原则不仅是良好的政策，也不仅和我们的国家价值 观相连，它还具有普世性，并能产生经济效益。</p>
<p>用市场语言来说，一家在突尼斯或越南的审查环境中运营的上市公司，其交易价格总是低于在自由社 会运营的同类公司。如果企业的决策者没有全球性的新闻和信息来 源，投资者对其决策的信心终将下降。实施新闻和信息审查的国家必须认识到，从经济角度而言，审查政治言论和商业言论是没有区别的。如果贵国的企业无法获取 其中一类信息，其增长必将受到影响。</p>
<p>在制定商业决策时，美国公司日益将网络和信息自由视为更重要的考量因素。我希望他们的竞争对手和外国政 府会密切关注这一趋势。最近有关谷歌 （Google）的情况引起了广泛的注意。我们希望中国当局对导致谷歌作出日前宣布的网络攻击事件进行彻查。我们也希望调查及结果透明。</p>
<p>互 联网已经成为中国取得巨大进步的源泉之一，令人惊叹。中国现在有如此多的人都在上网。但是，限制自由获取信息或侵犯互联网用户基本权利的国家面临着使自己 与下一个世纪的进步隔绝的风险。美中两国对于这个议题的看法不同，我们希望在两国积极、合作、全面的关系之下坦诚和持续地处理这些差异。</p>
<p>这个议题不仅关系到信息自由，最终还关系到我们希望有一个什么样的世界以及我们将会生活于一个什么样的世界。它关系到我们生活的地球是有一个互联网、一个全球社会以及一个造福并联系全人类的共同知识体，还是支离破碎、获取信息和机遇要取决于居住地点和审查者的心血来潮。</p>
<p>信息自由有助于维护作为全球进步基础的和平与安全。从历史上看，不对称的信息获取能力是国家间冲突的主要原因之一。在我们面对严重纠纷或危险事件时，当事双方能够了解相同的事实和观点是至关重要的。</p>
<p>目前的情况是，美国人民可以思考外国政府提供的信息——对于这些政府向美国国内传送信息，我们不设置障碍。但是，在实行信息检查的社会中生活的公民却无从得 知外界的看法。例如在北韩，政府极力使其公民与外部意见完全隔绝。这种信息流通的不对称不但增加了发生冲突的可能性，也容易使微小的分歧升级。因此，我期 待那些希望看到全球稳定的负责政府能和我们携手合作，改变这种不对称的情况。</p>
<p>对公司而言，这个问题所关系的不仅是道德威望，而且涉及公司与用户之间的信任。世界各地的用户都希望自己所依赖的互联网公司会提供全面的搜索结果，并且以负 责任的态度守护他们的个人信息。获得这种信赖并且基本上提供这种服务的公司将在全球市场蓬勃发展。我确实相信，那些失去用户信赖的公司，最终将失去用户。 住在任何地方的人都希望知道，他们放在网上的东西不会被用来加害于自己。</p>
<p>审查不应被世界任何地方的任何公司以任何形式接受。在美国，美国公司需要采取有原则的立场。这应该成为我们国家品牌的组成部分。我相信全世界的用户都会回报尊重这些原则的公司。</p>
<p>我们正在重振“全球互联网自由小组”（Global Internet Freedom Task Force），作为应对全球网络自由所受威胁的论坛。我们敦促美国媒体公司主动采取措施，质疑外国政府对于审查和监视的要求。民营部门也有责任协助保护言 论表达自由。当他们的业务交易有可能破坏这种自由时，他们需要考虑什么是正确的，而不只是寻求短视的利润。</p>
<p>我们对于目前通过“全球网络倡 议”（Global Network Initiative） 所做的工作倍感鼓舞。“全球网络倡议”是一项由高科技公司与非政府组织、学术专家和社会投资基金共同合作，回应政府审查要求而做出的自愿努力。这项倡议不 仅仅是申明原则，更是建立旨在宣扬真正责任感和透明度的机制。我们承诺支持负责任的民营部门参与护卫信息自由，作为我们承诺的组成部分，国务院将在下月召 集一次高层会议，由罗伯特•霍马茨（Robert Hormats）和玛丽亚•奥特罗（Maria Otero）两位副国务卿共同主持。会议将召集提供网络服务的公司，共同讨论互联网自由问题，因为我们希望与合作伙伴共同应对这个二十一世纪的挑战。</p>
<p>我相信，追求我今天所说的自由是正确之举，但它也是智慧之举。通过推进这个议程，我们将使我们的原则、我们的经济目标以及我们的战略重点一致起来。我们需要 努力创建这样一个世界：在这个世界中，网络和信息使人民之间的关系更加密切，也使我们的全球社区概念得到扩展。鉴于我们面临的诸多巨大挑战，我们需要世界 各地的人民汇合他们的知识和创造力，帮助重建全球经济，保护我们的环境，战胜暴力极端主义，建设每一个人都能充分发挥和实现其天赋潜力的未来。</p>
<p>在结束今天的讲话时，我要请你们记住星期一在太子港的废墟中获救的那个小女孩。她还活着，已经与她的家人团聚，并将有机会长大成人，因为网络把一个被埋得很 深的声音传播到全世界。我们不能容许任何国家、群体或个人继续被埋在压制的废墟之下。当层层审查墙把一些人与人类大家庭隔离开来的时候，我们不能袖手旁 观。我们不能因为听不到那些人的呼喊就对这些问题保持沉默。</p>
<p>因此，让我们重新作出承诺，为这一事业而努力。让我们把这些高科技化作推动全世界取得切实进步的力量。让我们并肩前进，倡导这些自由——为了我们这个时代，也为了应当得到我们所能给予的每一个机会的年轻人。</p>
<p>非常感谢你们。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;-<a href="http://www1.voanews.com/chinese/news/special-reports/important_speeches/clinton-speech-internet-20100122-82329472.html" target="_blank">全文完</a>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/21/1321/" title="Looking Ahead to 2020">Looking Ahead to 2020</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/22/697/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>游戏辅助工具开发教程-从入门到精通之A3_14篇</title>
		<link>http://www.figoyao.com/blog/2010/01/22/676/</link>
		<comments>http://www.figoyao.com/blog/2010/01/22/676/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 07:43:14 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[GameCheat]]></category>
		<category><![CDATA[dll]]></category>
		<category><![CDATA[入门]]></category>
		<category><![CDATA[加载]]></category>
		<category><![CDATA[动态链接库]]></category>
		<category><![CDATA[外挂]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[编程]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=676</guid>
		<description><![CDATA[作者：<a href="../../2010/01/" target="_blank">Figo</a>
本篇讲解动态链接库。
动态链接库俗称DLL，为什么叫做动态链接呢？因为我们内存资源有限，为了节约硬件资源，系统把内部提供的API统一加载一份，当程序需要调用API时，如果此时内存空间没有该API则追寻该API相关DLL信息并加载到内存中，如果此时又有其他程序需要调用该API，系统就不[......]<p class='read-more'><a href='http://www.figoyao.com/blog/2010/01/22/676/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>作者：<a href="../../2010/01/" target="_blank">Figo</a></p>
<p>本篇讲解动态链接库。</p>
<p>动态链接库俗称DLL，为什么叫做动态链接呢？因为我们内存资源有限，为了节约硬件资源，系统把内部提供的API统一加载一份，当程序需要调用API时，如果此时内存空间没有该API则追寻该API相关DLL信息并加载到内存中，如果此时又有其他程序需要调用该API，系统就不再加载，而是通过一种机制使这2个程序共用同一份代码，整个过程成为动态链接。也即需要的时候才动态加载，你可以理解为U盘，需要使用时就加载，不需要拔出即可。</p>
<p>下面我们来看一个例子：<br />
<img class="alignnone size-full wp-image-682" title="demodll" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/demodll.png" alt="demodll" width="354" height="103" /><br />
<img class="alignnone size-full wp-image-681" title="LoadDll" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/LoadDll.png" alt="LoadDll" width="216" height="200" /><br />
Demo实现了一个很简单的例子，就是调用DLL中预先定义的函数，然后结束。<br />
不要把DLL想成多么神秘的新事物，有句谚语说得好：太阳底下无新事。DLL长相和EXE看起来有些不同，其实有些exe、各种ocx和ime为后缀的文件也是DLL。当接触到一个新的事物时，我们要问自己的第一个问题是，它的逻辑是怎样的？放在此处需要首先知道的是，DLL的架构是什么。包括以后要接触到的驱动模型也是相似的学习方式。下面来看DLL的逻辑图：<br />
<img class="alignnone size-full wp-image-684" title="framedll" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/framedll1.png" alt="framedll" width="469" height="222" /><br />
知道了结构和需要的文件，我们开始动手编写代码：<br />
<img class="alignnone size-full wp-image-685" title="dllMain" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/dllMain.png" alt="dllMain" width="399" height="288" /><br />
<span style="color: #800000;"><strong>DllMain</strong></span>函数是调用dll时的入口函数，可以理解为dll中的WinMain。需要介绍的函数入口参数如下：<br />
<span style="color: #0000ff;"><strong>HANDLE</strong></span> <strong>hModule</strong><br />
这个参数存储DLL的基地址，<span style="color: #800000;"><strong>WinMain</strong></span>入口参数种<span style="color: #0000ff;"><strong>HINSTANCE</strong></span> <strong>hInstance</strong>存储的是EXE的基地址。获取该值的方法最好在入口函数被调用时保存，因为之后可能就没有其它简易方法获取了。在DLL中使用<span style="color: #800000;"><strong>GetModuleHandle</strong></span>及类似API获取的地址是加载该DLL进程的句柄（此处句柄就是运行时的基地址）。<br />
<span style="color: #0000ff;"><strong>DWORD</strong></span> <strong>ul_reason_for_call</strong><br />
这个参数有4个可选值，表示DLL被加载的原因，依次如下：<br />
<span style="color: #ff00ff;"><strong>DLL_PROCESS_ATTACH</strong></span>//进程加载或调用<span style="color: #800000;"><strong>LoadLibrary</strong></span>函数<br />
<span style="color: #ff00ff;"><strong>DLL_THREAD_ATTACH</strong></span>//当前进程创建了新的线程或调用<span style="color: #800000;"><strong>LoadLibrary</strong></span>函数<br />
<span style="color: #ff00ff;"><strong>DLL_THREAD_DETACH</strong></span>//线程终止<br />
<span style="color: #ff00ff;"><strong>DLL_PROCESS_DETACH</strong></span>//进程终止或调用<span style="color: #800000;"><strong>FreeLibrary</strong></span>函数</p>
<p>入口点函数结束后就开始导出函数的定义：<br />
<img class="alignnone size-full wp-image-688" title="BoxF" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/BoxF.png" alt="BoxF" width="440" height="116" /></p>
<p>上面是源文件部分，紧接着是导出表文件部分：<br />
<img class="alignnone size-full wp-image-687" title="defbox" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/defbox.png" alt="defbox" width="112" height="54" /><br />
这里是头文件定义：<br />
<img class="alignnone size-full wp-image-689" title="exporth" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/exporth.png" alt="exporth" width="315" height="179" /></p>
<p>我们的DLL只是导出一个Box函数，实现部分在源文件中。DLL文件写好之后，编译运行是看不到效果的，我们需要另外写一个加载DLL的程序来加载。加载的常用方法有2种：一种是编译期加载；一种是运行期加载。我们下面要介绍的方法是运行期加载。实现如下：<br />
<img class="alignnone size-full wp-image-690" title="load" src="http://www.figoyao.com/blog/wp-content/uploads/2010/01/load.png" alt="load" width="473" height="333" /><br />
这里需要介绍的函数有三个：<br />
1、<span style="color: #800000;"><strong>LoadLibrary</strong></span>(<span style="color: #0000ff;"><strong>LPCTSTR</strong></span><em> <strong>lpFileName</strong></em>)<br />
该函数加载指定的可执行模块（可以是.exe或.dll）：可以是指定路径；亦可为直接给出的文件名（我们上面的代码是此种情况）。对于指定路径的话，路径格式要如下：C:<span style="color: #ff0000;"><strong>\\</strong></span>MyDllDef<strong><span style="color: #ff0000;">\\</span></strong>demo.dll，使用反斜杠<span style="color: #ff0000;"><strong>\</strong></span>；直接给出名字的话，系统路径寻找dll次序如下：<br />
<em>1</em>）、应用程序的当前路径<br />
<em>2</em>）、系统目录（可使用<span style="color: #800000;"><strong>GetSystemDirectory</strong></span>函数获取）<br />
<em>3</em>）、16位系统路径（属于为了兼容之前系统保留之用，在NT下用不到）<br />
<em>4</em>）、Windows目录（可使用<span style="color: #800000;"><strong>GetWindowsDirectory</strong></span>函数获取）<br />
<em>5</em>）、环境变量中给出的目录。<br />
该函数执行成功则返回指定加载模块的句柄，否则返回<strong>NULL</strong>。<br />
2、<span style="color: #800000;"><strong>FreeLibrary</strong></span>(<span style="color: #0000ff;"><strong>HMODULE </strong></span><strong><em>hModule</em></strong>)<br />
当不使用或退出时，需要调用该函数释放资源，入口参数为<span style="color: #800000;"><strong>LoadLibrary</strong></span>获取的模块句柄。<br />
3、<span style="color: #800000;"><strong>GetProcAddress</strong></span>(<span style="color: #0000ff;"><strong>HMODULE </strong></span><strong><em>hModule</em></strong>, <span style="color: #0000ff;"><strong>LPCSTR </strong></span><strong><em>lpProcName</em></strong>)<br />
该函数用于获取<strong><em>lpProcName</em></strong>指定函数名函数的地址，第一个参数是<span style="color: #800000;"><strong>LoadLibrary</strong></span>获取的模块句柄，第二个是函数名称。</p>
<p>这里需要强调的是，加载dll时候一定要检查指针是否为NULL，否则或出现不可预料的错误。至此，dll以及它如何使用的大致流程就完成了：<a href="http://down.qiannao.com/space/file/figoyao/share/DLLDemo.rar/.page" target="_blank">点击下载源码</a>。</p>
<p>转载请注明出处：<a href="http://www.figoyao.com/blog/2010/01/22/676" target="_blank"><span id="sample-permalink">http://www.figoyao.com/blog/2010/01/22/676</span></a></p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/02/05/899/" title="游戏辅助工具开发教程-从入门到精通之A3_17篇">游戏辅助工具开发教程-从入门到精通之A3_17篇</a></li><li><a href="http://www.figoyao.com/blog/2010/02/23/1074/" title="游戏辅助工具开发教程-从入门到精通之A3_19篇 ">游戏辅助工具开发教程-从入门到精通之A3_19篇 </a></li><li><a href="http://www.figoyao.com/blog/2010/02/06/944/" title="游戏辅助工具开发教程-从入门到精通之A3_18篇">游戏辅助工具开发教程-从入门到精通之A3_18篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/30/813/" title="游戏辅助工具开发教程-从入门到精通之A3_15篇">游戏辅助工具开发教程-从入门到精通之A3_15篇</a></li><li><a href="http://www.figoyao.com/blog/2010/01/16/520/" title="游戏辅助工具开发教程-从入门到精通之A3_13篇">游戏辅助工具开发教程-从入门到精通之A3_13篇</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/22/676/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>关于之前教程中图片丢失的解决办法</title>
		<link>http://www.figoyao.com/blog/2010/01/17/535/</link>
		<comments>http://www.figoyao.com/blog/2010/01/17/535/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 11:45:29 +0000</pubDate>
		<dc:creator>Figo</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[GFW]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[通知]]></category>

		<guid isPermaLink="false">http://www.figoyao.com/blog/?p=535</guid>
		<description><![CDATA[<p>近日，有读者反应前面的图片无法观看，我用国外代理测试显示正常，说明这些图片是被国家防火墙给屏蔽了。我会尽快更换图片服务器，请大家耐心等待。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2010/03/16/1178/" title="有趣的西厢计划">有趣的西厢计划</a></li><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/26/778/" title="请收藏备份站点网址">请收藏备份站点网址</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>近日，有读者反应前面的图片无法观看，我用国外代理测试显示正常，说明这些图片是被国家防火墙给屏蔽了。我会尽快更换图片服务器，请大家耐心等待。</p>
<h2  class="related_post_title">你或许感兴趣下面的文章</h2><ul class="related_post"><li><a href="http://www.figoyao.com/blog/2010/04/29/1381/" title="博客新地址">博客新地址</a></li><li><a href="http://www.figoyao.com/blog/2010/03/16/1178/" title="有趣的西厢计划">有趣的西厢计划</a></li><li><a href="http://www.figoyao.com/blog/2010/02/08/971/" title="[提醒]请更新订阅地址">[提醒]请更新订阅地址</a></li><li><a href="http://www.figoyao.com/blog/2010/01/26/778/" title="请收藏备份站点网址">请收藏备份站点网址</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.figoyao.com/blog/2010/01/17/535/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
