<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[飘萍 BLOG]]></title>
  <subtitle type="html"><![CDATA[]]></subtitle>
  <id>http://www.poopin.net/blog/</id>
  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.poopin.net/blog/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2008-09-04T22:50:04+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[[收藏]字母检索算法]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=13" label=".Net技术" /> 
	  <updated>2008-09-04T22:50:04+08:00</updated>
	  <published>2008-09-04T22:50:04+08:00</published>
		  <summary type="html"><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.poopin.net/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/> using System; <br/> using System.Text; <br/> using System.IO; <br/> namespace ts{ <br/> class test{ <br/> private static string[] startChars = {&#34;啊&#34;, &#34;芭&#34;, &#34;擦&#34;,&#34;搭&#34;,&#34;蛾&#34;,&#34;发&#34;,&#34;噶&#34;,&#34;哈&#34;,&#34;击&#34;,&#34;击&#34;,&#34;喀&#34;,&#34;垃&#34;,&#34;妈&#34;,&#34;拿&#34;,&#34;哦&#34;,&#34;啪&#34;, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;期&#34;,&#34;然&#34;, &#34;撒&#34;,&#34;塌&#34;,&#34;挖&#34;,&#34;挖&#34;,&#34;挖&#34;,&#34;昔&#34;,&#34;压&#34;,&#34;匝&#34;}; <br/>&nbsp;&nbsp; private static string[] endChars = {&#34;澳&#34;, &#34;怖&#34;, &#34;错&#34;,&#34;堕&#34;,&#34;贰&#34;,&#34;咐&#34;,&#34;过&#34;,&#34;祸&#34;,&#34;啊&#34;,&#34;骏&#34;,&#34;阔&#34;,&#34;络&#34;,&#34;穆&#34;,&#34;诺&#34;,&#34;沤&#34;,&#34;瀑&#34;, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#34;群&#34;,&#34;弱&#34;, &#34;所&#34;,&#34;唾&#34;,&#34;啊&#34;,&#34;啊&#34;,&#34;误&#34;,&#34;迅&#34;,&#34;孕&#34;,&#34;座&#34;}; <br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; /**//// &lt;summary&gt; <br/>&nbsp;&nbsp; /// 根据字符和对应的中文字符,转成SQL查询条件 <br/>&nbsp;&nbsp; /// &lt;/summary&gt; <br/>&nbsp;&nbsp; /// &lt;param name=&#34;cChar&#34;&gt;要转化的字符,[A-Z]&lt;/param&gt; <br/>&nbsp;&nbsp; /// &lt;param name=&#34;strFieldName&#34;&gt;条件左值&lt;/param&gt; <br/>&nbsp;&nbsp; /// &lt;returns&gt;SQL条件&lt;/returns&gt; <br/>&nbsp;&nbsp; /// &lt;remarks&gt; Sxf 2001-1-4 ***** JY 2002-1-4 &lt;/remarks&gt; <br/>&nbsp;&nbsp; public static string GetCharCondition(char cChar, string strFieldName) <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;string strWord; <br/>&nbsp;&nbsp;&nbsp;&nbsp;int Index = (int)(char.ToUpper(cChar)) - (int)&#39;A&#39;; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (Index &gt;= 0 &amp;&amp; Index &lt; 26) <br/>&nbsp;&nbsp;&nbsp;&nbsp; strWord = startChars[Index]; <br/>&nbsp;&nbsp;&nbsp;&nbsp;else <br/>&nbsp;&nbsp;&nbsp;&nbsp; strWord = startChars[0]; <br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return string.Format(&#34;(({0}&gt;=&#39;{1}&#39; AND {0}&lt;&#39;[&#39;) o&#114; ({0} &gt;= &#39;{3}&#39; AND {0} &lt; &#39;{{&#39;) o&#114; {0}&gt;=&#39;{2}&#39;)&#34;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return string.Format(&#34;(({0} &gt;= &#39;{3}&#39; AND {0} &lt;= &#39;zzzzzzzz&#39;) o&#114; {0}&gt;=&#39;{2}&#39;)&#34;,&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; strFieldName, char.ToUpper(cChar), strWord, char.ToLower(cChar)); <br/>&nbsp;&nbsp; } <br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**//// &lt;summary&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// 将指定字段值的每个字符分割，这样可以生成同音查询的SQL <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name=&#34;fieldName&#34;&gt;字段名&lt;/param&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;param name=&#34;fieldValue&#34;&gt;字段值&lt;/param&gt; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /// &lt;returns&gt;生成的可以进行同音查询的SQL&lt;/returns&gt; <br/>&nbsp;&nbsp; public static string GetCharFullCondition(string fieldName, string fieldValue) <br/>&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sql = new StringBuilder(1024); <br/>&nbsp;&nbsp;&nbsp;&nbsp;int i = 1; <br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach (char c in fieldValue) <br/>&nbsp;&nbsp;&nbsp;&nbsp;{ <br/>&nbsp;&nbsp;&nbsp;&nbsp; if (i &gt; 1) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql.Append(&#34; AND &#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp; int index = (int)(char.ToUpper(c)) - (int)&#39;A&#39;; <br/>&nbsp;&nbsp;&nbsp;&nbsp; string startWord, endWord; <br/>&nbsp;&nbsp;&nbsp;&nbsp; if (index &gt;= 0 &amp;&amp; index &lt; 26) <br/>&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startWord = startChars[index]; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endWord = endChars[index]; <br/>&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp; else <br/>&nbsp;&nbsp;&nbsp;&nbsp; { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startWord = startChars[0]; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endWord = endChars[0]; <br/>&nbsp;&nbsp;&nbsp;&nbsp; } <br/>&nbsp;&nbsp;&nbsp;&nbsp; string subStr = String.Format(&#34;SUBSTRING({0}, {1}, {2})&#34;, fieldName, i, 1); <br/>&nbsp;&nbsp;&nbsp;&nbsp; sql.AppendFormat(&#34;({0} BETWEEN &#39;{1}&#39; AND &#39;{2}&#39;)&#34;, subStr, startWord, endWord); <br/>&nbsp;&nbsp;&nbsp;&nbsp; ++i; <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return sql.ToString(); <br/>&nbsp;&nbsp; } <br/> } <br/> }&nbsp;&nbsp;<br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=110" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=110</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[吴宇森《赤壁》DVD版在线观看]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=15" label="影视" /> 
	  <updated>2008-08-18T20:24:08+08:00</updated>
	  <published>2008-08-18T20:24:08+08:00</published>
		  <summary type="html"><![CDATA[<p>《赤壁》</p>
<p>主演：金城武 张丰毅 张震 尤勇 胡军 林志玲 赵薇 佟大为 梁朝伟</p>
<p>导演：吴宇森</p>
<p><img alt="" src="http://images.movie.xunlei.com/120x168/339/3a5f684e405e62c7018f64db6ca2e935.jpg" />&nbsp;&nbsp; </p>
<p>　赤壁之战是中国历史上著名的以弱胜强的战争之一。公元208年(汉献帝建安十三年)曹操率领水陆大军，号称百万，发起荆州战役，然后讨伐孙权。</p>
<p>　　七月秋，曹操亲领大军十余万南下荆州，用王夫之在《读通鉴论》中的话来说是&ldquo;乘破袁绍之势以下荆、吴&rdquo;。企图一举消灭刘表和江东的孙权，统一天下。正当曹操疾趋宛、叶之时，八月间刘表病逝。九月，其次子刘琮在新野(今属河南省)不战而降于曹军。荆州水军数以千计的蒙冲、斗舰，悉归曹操所有，至此曹军水战实力大增。依附刘表屯兵樊城(今湖北襄樊)的刘备，闻讯后率部南撤。</p>
<p>　　当时江陵(今湖北江陵)贮有刘表的大量粮草、兵器等，因此刘备一方面由樊城向江陵撤退，另一方面命关羽带领水军经汉水到江陵会合。九月，曹军亲率精骑五千，包括亲兵虎豹骑，追击刘备，在当阳长坂坡(今湖北当阳东北)击溃刘备军后占领江陵。</p>
<p>　　曹操至江陵后，立即采取安顿州吏民的措施，下令&ldquo;荆州吏民，与之更始&rdquo;。贾诩劝说曹操先利用荆州的资源、休养军民、稳定新占地，可是曹操并没有理会他的建议。曹军的作战部署大体是：以赵俨为章陵(郡治在今湖北枣阳东南)太守兼都监护军，于禁、张郃、朱灵、李典、张辽、冯楷等七军，统一指挥他们在汉水、淮水之间的行动。荆州方面，曹操以曹仁和夏侯渊驻守江陵，以曹洪驻守襄阳，另以一部水陆军由襄阳沿汉水南向夏口。曹操亲率一部连同新附荆州之众顺江而下，攻打东吴。</p>
<p>　　当曹操南下时，孙权派鲁肃出使荆州，吊刘表丧，兼说刘备同心御曹。鲁肃与刘备相遇于当阳，后刘备用其计折向东南汉水方向撤退，和自汉水东下的关羽水军会合，并与刘表长子江夏太守刘琦所部一万余人联军退至夏口(今湖北武汉汉口)，图谋联合孙权抗击曹操。刘备遣诸葛亮随肃往东吴共谋抗曹之计。</p>
<p>　　诸葛亮到柴桑(今江西九江西南)，孙权已接到曹操威胁的书信，信上说：&ldquo;今治水军八十万众，方与将军会猎于吴。&rdquo;孙权不愿以&ldquo;全吴之地，十万之众&rdquo;受制于曹操，又顾虑孙刘联军不能与曹操相匹敌。孙权部下以鲁肃为代表的主战派和张昭为首的主和派也展开了激烈争辩。诸葛亮为孙权分析敌我双方的利弊：&ldquo;豫州(刘备)军虽败于长阪，今战士还者及关羽水军精甲万人，刘琦合江夏战士亦不下万人。&rdquo;他指出(一)曹操劳师远征，士卒疲惫；(二)北人&ldquo;不习水战&rdquo;；(三)荆州之民尚未心服曹操。诸葛亮的结论是如果孙刘联合，定可取胜。</p>
<p>　　鲁肃又用激将法进言，说服了孙权，同时劝孙权立即把周瑜从鄱阳(今江西波阳东北)召回。周瑜支持诸葛亮和鲁肃的意见，先后分析曹军的弱点，指出：第一，曹军疲惫不堪；第二，&ldquo;又今盛寒，马无藁草&rdquo;第三，加之马超、韩遂尚在关西，为曹操的后患。既而进步分析了曹军的实际力量，指出来自中原的曹军不过十五六万，而且所得刘表新降的七八万人，人心并不向曹。</p>
<p>　　孙权增强联刘抗曹取胜的信心，命周瑜和程普为左右都督，鲁肃为赞军校尉。周瑜率精锐部队三万人，沿江而上至夏口，与刘备统军两万多人会合，共同抗曹。兵败乌林 ：周瑜率领的军队在樊口与刘备回合。然后逆水而上，行至赤壁，与曹军相遇。曹军新编及新附荆州水军，战斗力较弱，又遭瘟疫流行，以致初战不利。曹操不得不把军队&ldquo;引次江北&rdquo;，把战船靠到北岸乌林一侧。周瑜则把战船停靠南岸赤壁一侧，双相对峙。</p>
<p>　　北兵不惯船上生活，曹操下令用铁索将战船连锁在一起，以减轻风浪颠簸。周瑜部将黄盖建议采用火攻战术以败曹军：&ldquo;今寇众我寡，难与持久。然观操军船舰首尾相接，可烧而走也。&rdquo;周瑜采纳了黄盖的建议，并即决定让黄盖用诈降接近曹操战船。黄准备了十艘蒙冲斗舰，满载薪草膏油，外用帷幕伪装，上插与曹操约定的旗号。</p>
<p>　　时值隆冬，多刮北风，但按气象规律，几天严寒日过后，以常见有少暖之日，风向亦或变为东风，南风。据说，十一月十二日甲子日(合公元208年12月7日)这一天，晴空风暖，傍晚南风起，及至午夜风急，黄盖以准备的船舰出发，顺风驶向曹船。到了江的中心，黄盖手锯火把，使众兵齐声大叫：&ldquo;降焉！&rdquo;曹军官兵毫无戒备，&ldquo;皆延颈观望，指言盖降&rdquo;。离曹军二里许，黄盖遂令点燃柴草，同时发火，火烈风猛，船往如箭，烧尽北船，延及岸上各营。顷之，&ldquo;烟炎张天，人马烧溺死者甚众。&rdquo;</p>
<p>　　在南岸的孙军主力船队乘机擂鼓前进；同时刘备也自蜀山向乌林进发。盟军横渡长江，大败曹军。曹操见败局已无法挽救，当即自焚余船，引军退走。周瑜、刘备军队水陆并进，曹操沿华容小道(今湖北监利北)，向江陵方向退却，加以瘟疫、饥饿，曹军损失大半。幸得张辽，许诸等接应，才得脱险。至江陵城下，曹操恐后方不稳，自还北方，留曹仁、徐晃守江陵，满宠驻当阳。</p>
<p>　　后果 ：赤壁战前曹操的优势是非常大的：第一，曹操&ldquo;挟天子令诸侯&rdquo;，诸侯自然在道义上难以争锋；第二，曹操以新胜之军南下，其气自盛，第三，曹操兵力数倍于孙、刘两家。既然曹操具有如此的优势，孙刘联军的战绩更以辉煌。此战，孙刘军扬水战之长，巧施火攻，可以算是中国历史上果断、以少胜多的的著名战例。赤壁战后，曹操退回北方，再未有机会如此大规模南下荆州。曹操集团也失去了在短时间内统一全国的可能性。</p>
<p>　　周瑜等与曹仁隔江对峙，遣甘宁袭取夷陵(今湖北宜昌)，曹仁率部进围甘宁，周瑜率军救援，大破曹仁军。刘备回师夏口，欲溯汉江迂回曹仁后方。次年，曹仁被迫撤退。孙权继续与刘备联盟，以抗拒曹操。刘备乘势取得荆州大部，包括武陵(郡治在今湖南常德)、长沙、桂阳(郡治在今湖南郴县)、零陵(均在今湖南境)等四郡。稍后又夺得刘璋的益州。孙权据有江东，形成了魏、蜀、吴三国鼎立的割据局面。</p>
<div id="pplayer_div" style="WIDTH: 538px; POSITION: relative; HEIGHT: 476px">
<script src="http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js" type="text/javascript" charset="gbk" width="538" height="476" autoplay="1" unid="12765" source="mid=C10011153"></script>
</div>
<script id="__ie_onload" src="javascript:void(0)" defer="defer" type="text/javascript"></script>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=109" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=109</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[对不起，我不再爱你了]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=4" label="网海拾贝" /> 
	  <updated>2008-08-15T09:57:26+08:00</updated>
	  <published>2008-08-15T09:57:26+08:00</published>
		  <summary type="html"><![CDATA[对不起，我不再爱你了<br/><br/>我不会傻乎乎的强忍睡意<br/><br/>只为等你回一句“安”甚至无语<br/><br/><br/><br/><br/><br/>对不起，我不再爱你了<br/><br/>我不会再见到你闪亮的QQ头像<br/><br/>而纠结自己是不是能主动说一句<br/><br/>hello<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/><br/><br/>对不起，我不再爱你了<br/><br/>我不会再因为收到你的信息<br/><br/>而放下身边所有的事情<br/><br/>只为了能第一时间回复你<br/><br/><br/><br/><br/><br/>对不起，我不再爱你了<br/><br/>所以，我关闭了你QQ上显示的信息提醒<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/>所以，当我在提起你<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/>祝你幸福&nbsp;&nbsp;开心 快乐<br/><br/><br/><br/>只因为 我已经不再爱你了... <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=107" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=107</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[一位浙大教授令人寒心的演讲：说出了真话]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=4" label="网海拾贝" /> 
	  <updated>2008-08-15T09:45:54+08:00</updated>
	  <published>2008-08-15T09:45:54+08:00</published>
		  <summary type="html"><![CDATA[一位浙大教授令人寒心的演讲：说出了真话<br/><br/>转自天涯 <br/><br/>演讲人：浙大高分子物理郑强教授&nbsp;&nbsp;<br/><br/>　　地点: 浙江图书馆报告厅&nbsp;&nbsp;<br/><br/>　　精彩语录节选:&nbsp;&nbsp;<br/><br/>　　“在中国这个发展中国家,你能建10所世界一流大学,那美国有多少所?日本有多少所?现在的实际状况是:世界上前200所大学,中国一所都排不进!在亚洲能排出几所?我到国外去看了以后,感到要将浙大建成世界一流大学就像共产主义理想.”&nbsp;&nbsp;<br/><br/>　　“以前说“无知无畏”,现在却是“无知才无畏“,许多企业把浙江省技术监督局、科委的人请来吃一顿饭,喝一点酒,他就给你签个字,再把我们这些教授胁迫到那里去,给你盖个章,然后就是“填补国内外空白“、“国际先进水平“,写论文则是“国际领先水平的研究成果”、“首次科学发现”等等,这都是目前非常严重的问题!作为一个大学教授,我深深地为此担忧!这不是我们的责任,是我们的领导无知,是他们倡导了这个主流.我知道在座的处长或老总日子很难过,因为你们不写这样的报表,就拿不到钱,项目就得不到批准.教授也同样如此,天天写报告,而不是在实验室静下心来好好搞研究,这是很严重的!” <br/><br/>　　“我们国家的现实和发展就是这样:凡是依赖不成的,我们自己都能搞得像模像样,比如二弹一星；凡是能够引进的,就都搞不成.......现在很多合资企业就这样,卖点东西,而没有去考虑这些深层次的东西.殊不知,这就是社会的恶性循环!”&nbsp;&nbsp;<br/><br/>　　“我认为：语言、计算机就是工具.中国的外语教授讲英语还不如美国卖菜的农民!怎么看待这个问题?日本博士、德国教授说不出英语的多得是!我们怎么能说一个人不会说英语就是文盲呢?语言就是一个工具!你没有那个环境,他怎么能讲这个语言呢?......如果我是教育部长,我要改革二件事: <br/><br/>　　第一,取消六级考试,你一个研究生连中文一级都不及格,你英文考六级干什么呢?看看研究生写得论文,自己的民族文化都没有学好,天天考英语──打勾:托福打勾,ＧＲＥ打勾,英文考出很高的分,可哪个写的英文论文在我面前过得了关呢?过不了关!这样培养出来的人能干什么?自己搞的专业一点都没学好!......说不会计算机就是文盲,这又是一个误区!我现在是教授，我顾不上搞计算机!” <br/><br/>　　“你看我,从高中开始学英语, 大学学,硕士学,博士学,花了我多少精力!你说中国人怎么做得出高科技的研究成果?我这几天就教训我手下的几位女学生,问她们在干什么,看不到人影,一天到晚考这样、考那样的,到美国去干什么?在国内要干的事多着呢!你整天考英语,美国人连报个名都要收你们的钱,日本人也是如此,中国学生到日本去要交手续费,到日本留学是为日本人打工,好不容易挣点钱交了学费,读完博士在日本的公司就职,当劳动力,挣了一笔钱后要回国了就买了家电,把钱全给了日本人.你们都没有注意这件事,这里面都是经济问题.这就是素质教育到底是什么.” <br/><br/>　　“中小学的教育就是听话,老师管干部,干部管同学,孩子们都学会了成年化的处世方式,这是害人啊!这样强迫性地做了一些好事后,没有把做好事与做人准则结合起来去培养,而只学会了拍马屁、讨老师喜欢、说成人话.上次电视上就曾经播出,一个小孩得了个奖,主诗人问他最愿意说什么,他说：“我最愿意跟江爷爷说:我向你报告!““江爷爷”是谁?还不是老师教的!孩子们在中小学活得很累,到了大学就没人管了,所以就要玩、就要谈恋爱.” <br/><br/>　　“我们有很多同学成绩好,却什么都做不了.在我们大学像我这种程度的人,招博士生是从来不看成绩的,成绩算什么!现在我从事的这个领域在中国有叁个杰出的人才,当初在读研究生时都补考过,而成绩考得好的几个人却都跑到美国去卖中药了,这说明了什么问题?作老板的可不能这样啊!......人才的梯队一定要合理,而不要认为教授就是万能的、博士就是万能的. 中国的教育体系就是让每一个老百姓都充满希望和理想,教育孩子们要树立远大的理想.实际上,人的能力是不一样的,扫地能扫好,也应该受到尊重；打扫厕所能打扫干净,也应该受到尊重,不能动不动就要高学历.我要提醒的是:在国外可不是这样,美国、日本的博士就很难找到工作,为什么?因为老板心疼钱,招了博士要给他高工资,而他能做什么用呢?这是个具体问题.” <br/><br/>　　“科技到底该干什么?高科技到底该干什么?如果我是科技部长,该玩的就玩,就像陈景润,他就是玩!陈景润如果是处在今天的中国,他绝对是要去讨饭的,因为他不会去搞产业化,他的英语也不好,他说话都不流利,中文都讲不好,按现在“标准“,他是个文盲,还谈什么教授!日本人就是喜欢美国人,我跟日本人说:你们这个民族爱谁,谁就要向你们扔原子弹.日本人就是喜欢黑人也不喜欢中国人.......我特别对我们的女教授、女同学说:在日本人面前一句日文都不要讲,会也不要讲；日本人一听说你讲英文,特别是看到中国女孩讲英文,腿都要发软,这是真的!” <br/><br/>　　“中国人为什么这些年都往外跑,最重要的是要让国民自己爱自己国家.......如果我是杭州的市长, 我绝对不是狭隘的民族自尊心──如果杭州有什么灾难,我就首先把杭州的老百姓安排在香格里拉,让外国人在外面排队!(掌声!)这样,你才会让你的国民爱自己的国家!一个日本的农民跑到峨嵋山去玩,骨头摔断了,你就用中国空军的直升飞机去救他,而在日本大学一名中国留学生在宿舍里死了7天才被发现；名古屋大学的一对中国博士夫妇和孩子误食有毒磨菇,孩子和母亲死了,父亲则是重症肝炎,在名古屋大学医学院的门诊室等了12个小时,也没有一个日本教授来看望!而你们为什么还要这么友好,以为自己很大度,实际上是被人家耻笑,笑你的无知!你们这个民族*!我们不能这样!我们的领导人跑到国外去访问,看到有几个人在欢迎他们,就感到挺有面子；而外国来了个什么人物,都是警车开道,这究竟是怎么回事?这让我们中国人感到是自豪还是悲哀?所有这些,对教育工作来讲,都是深层次的问题.所以我经常讲,我作为一位自然科学工作者,我教育我的学生,首先是学会做人,没有这些,你学了高分子,外语都是花架子。” ]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=106" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=106</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[飘萍网站导航.Net]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=13" label=".Net技术" /> 
	  <updated>2008-06-24T11:15:36+08:00</updated>
	  <published>2008-06-24T11:15:36+08:00</published>
		  <summary type="html"><![CDATA[飘萍网站导航 V1.2<br/>演示：<a href="http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a>" target="_blank" rel="external">http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a></a><br/>（最后更新：2008.6.23）<br/><br/>1、仿Google导航，界面数据与近期daohang.google.cn一致；<br/>2、使用visual studio 2008 开发，运行环境需要asp.net 2.0；<br/>3、程序基于Nvelocity模板引擎，生成静态html文件和aspx文件同时支持；<br/>4、可放置自己的广告，默认3个公共广告位，主页另有两个共5个，子页另有两个共5个。如需增加可自行修改模板。<br/><br/>安装使用说明：<br/><br/>1、dafault.aspx动态模式的页面文件，makehtml.aspx生成静态文件，文件将生成在当前运行目录下；<br/>2、template模板文件目录，其下的模板文件可自行修改；<br/>3、template/include下的几个文件，set.vm为一些通用变量可自行修改，注意格式；_top.vm顶部导航，html格式，可自己修改；_bottom.vm底部导航版权等部位，自行修改；<br/>4、template/ads 为广告文件目录，现有模板中设置了共6个广告位，对应目录中的6个文件，如果不需要广告可以将文件删除或者清空文件内容，需要放广告的自己把广告代码放入对应广告文件。<br/>5、增加广告位的代码：<br/>&nbsp;&nbsp;&nbsp;&nbsp;在需要增加广告位的地方添加 #parse($!{idxxxx}) ，其中xxxx是可以是数字也可以是字母，其对应的是template/ads目录下广告文件的文件名（不含扩展名部分）。广告文件不存在对应广告位将不显示。<br/><br/> <br/><br/>更新日志：<br/><br/>[2008-6-23]<br/>*模板更新 v1.32<br/>*增加一个引用文件位,ads/0000.ads文件，适合放置不在页面直接输出内容，在页面显示后执行的脚本，如雷眼广告<br/><br/>[2008-6-22]<br/>*模板更新 v1.31<br/>*模板界面微调<br/><br/>[2008-6-20]<br/>*模板更新为 v1.3<br/>*增加侧边栏设置，可分别设置首页和其他页面侧边栏左右位置<br/><br/>[2008-6-19]<br/>*主程序版本更新为 V1.2<br/>*模板版本更新为 V1.2<br/>*增加服务器端代理程序，解决跨域获取数据问题，实现搜索框自动完成<br/>*修改模板使之访问同域代理程序<br/><br/>[2008-6-15]<br/>*模板更新为 v1.11<br/>*增加顶部搜索栏下侧关键字链接，set.vm内有开关参数<br/>*增加底部搜索栏右侧关键字链接，set.vm内有开关参数<br/>*界面CSS调整<br/><br/>[2008-6-12]<br/>*版本号更新为 V1.1<br/>*模板版本更新 V1.1<br/>*模板增加&lt;head&gt;内的&lt;meta&gt;标签变量，可自己添加关键字、网页描述等内容<br/>*增加特殊字符变量，换行：$!{crlf}、双引号：$!{dquote}、单引号：$!{squote}<br/><br/>[2008-6-6]<br/>*初始版本发布 <br/><br/><br/>这个程序很简单，没什么技术含量，自己做来学习vs.net 和 nvelocity的，如有什么问题欢迎交流。如果方便希望能加上本站链接，<a href="http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a>" target="_blank" rel="external">http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a></a>，谢谢。<br/>qq：22701721<br/>email：poopin@163.com<br/>论坛：<a href="http://bbs.<a href="http://www.poopin.net" target="_blank">poopin.net</a>" target="_blank" rel="external">http://bbs.<a href="http://www.poopin.net" target="_blank">poopin.net</a></a><br/>博客：<a href="http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a>" target="_blank" rel="external">http://www.<a href="http://www.poopin.net" target="_blank">poopin.net</a></a>/blog<br/><br/><br/><br/>下载地址：<a target="_blank" href="http://down.chinaz.com/soft/23165.htm" rel="external">http://down.chinaz.com/soft/23165.htm</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=105" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=105</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[比日军还凶残！中国战场上的韩国籍日军]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=4" label="网海拾贝" /> 
	  <updated>2008-06-11T10:01:44+08:00</updated>
	  <published>2008-06-11T10:01:44+08:00</published>
		  <summary type="html"><![CDATA[很多人用反日来作为哈韩亲的心理借口，好像中韩都曾受到日本侵略，这样我们就有了天然的共同感情，我们就应该更亲近韩国，但殊不知就是中国受到侵略一事，更可以看清韩国人的天性。 <br/>　　南京大屠杀，第一支违反日军军令开始强奸中国妇女的日军部队恰恰是松井石根15师团中的韩国联队（团级单位）。在所有攻占南京城的日军部队中韩国人的比例并不低，最高的甚至高达40%都是韩国人。战后很多日本人的回忆录中都提到过韩国军人对日本的忠诚。 <br/>　　(这样的忠诚在中国人眼中就是残忍)。如果说那时韩国被日本并吞，没有办法，那么好吧，二十几年后越南战争时，韩国是独立的，几十万韩国军人被韩国政府派往越南，可作为美军帮凶的韩国兵的名声更差，烧杀淫掠，韩国兵的一大特点又是连妇女儿童也不放过，奸杀幼女和妇女，相互比赛着将新生儿活活撕成两块，令越南百姓不寒而栗。至今此事在韩国国内仍是一大禁忌话题，其野蛮凶残列各侵越部队之首。相比台湾人也曾被编入日军，但就是因为其不够“勇敢”只能大部分作为伙夫和挑夫出现，吴子牛的电影《南京大屠杀》中有这么个台湾兵角色，因为私自放走被掳掠的中国同胞，被其日本战友杀死。由此，韩国人的民族天性可见一斑。　 <br/>　　一些当时幸存的老南京（当时是收尸队的）回忆，参与南京大屠杀的日军当中有相当大的一部分是日本从韩国征调的韩籍士兵，其残忍手段一点也不逊于日本兵。现住工人新村的南京汽车集团退休职工王克俭老人（81岁）回忆说：“很多不戴钢盔的鬼子兵（韩籍士兵，没钢盔戴）强奸女人后活活挖出女人的子宫再套在女人头上，把人活活窒息而死！还起名叫;从哪里来到哪里去。妈了个B的，记住这帮杂种。资料参考：《南京大屠杀》 <br/>　新入伍的韩国籍日军 <br/>　　南朝鲜最悍勇的将军，第二师师长白善烨，后担任南朝鲜军总参谋长，四星上将。他是最早判断出中国军队参战的——那些夜战，地雷，包抄的战术太像八路军了！不过，美国人不相信他的判断…… <br/>　　在朝鲜，为弥补兵员的不足，日本在控制朝鲜以后，推行了一系列诸如“皇民化运动”、“创氏改姓”等奴化朝鲜人的政策。就跟日本在台湾推行的类似政策所产生的后果一样，朝鲜人中有不少被培植成日本的忠实臣民，他们自愿充当日本军人，充当日本人的炮灰。根据日本防卫厅1973年统计，在约250万侵华日军中共有朝鲜籍士兵160万，在伪“满州国”军中38万。这其中最著名的就是参加了伪满第六方面军“讨伐队”。战后远东法庭审判时，松井石根说南京大屠杀开始的第一个部队就是带头强奸中国妇女的朝鲜人，并得到证实。战后受到盟军战犯审判的朝鲜战犯有148人有罪，其中23人执行死刑。。甚至在后来的越战中，道德最败坏的也是韩国兵。 <br/>　　朝鲜人和韩国人声嘶力竭高呼它们是二战受害国，被征用的朝鲜人和南韩人只是充当了日军后勤人员、劳工而没有加入作战部队，如果真是这样，那么战后因为“针对虐杀．虐待俘虏及一般市民的“通常的战争犯罪”而作为“原日本兵”受到审判、被定为乙级战犯的148名朝鲜半岛人（其中23人被处以死刑）从何而来？ <br/>　　至于朝鲜籍乙级战犯们在“皇军”中的地位和为“皇军”做出的贡献，请参考这几个同样是乙级战犯的倭狗：制造南京大屠杀的元凶谷寿夫、侵华日军第23军司令官酒井隆、侵华日军华南派遣军司令官田中久一。<br/>在南京大屠杀的时候有5支日军因为&#34;作战勇敢&#34;受到日本国王的奖励.其中一个就是完全由3万朝鲜人组成的&#34;鲜人部队&#34;. 　　 <br/>　　战后因为“针对虐杀．虐待俘虏及一般市民的“通常的战争犯罪”而作为“原日本兵”受到审判、被定为乙级战犯有148名朝鲜人,其中23人被处死刑 <br/>　　举一例,1937年南京城因中华门城墙守城士兵打磕睡被日军攻破,第一个登城即是高丽联队( 此记载于日本1972年出版的&nbsp;&nbsp;为日本侵华老兵从中国归还者协会老兵集体写作) <br/>　　众所周知二战中奥地利是最早被纳粹德国占领与吞并的国家.也是被纳粹最早荼毒的民族之一!有数十万奥地利的年轻人被迫充当了纳粹的炮灰.死在异国他乡.奥地利这个国家可以说是悲惨之极.直到1945年才被苏联军队解放! <br/>　　但是战争结束后,首任奥地利总统卡尔．伦纳尔却出人意料的向全世界宣布:我们奥地利虽然是二战的受害国,却也是纳粹德国帮凶国.我们决不推托责任.奥地利政府要向在奥地利被占领期间被杀害的犹太人和其它被奥地利所伤害的国家和人民道歉.并做出力所能及的赔偿. <br/>　　当这个老人发表了这个举世瞩目的演说后,全世界绝大部分国家被感动了.但是奥地利从此受到了国际社会的极大尊重.奥地利的人民也被称为&#34;有良心的民族&#34;.<br/>　　但是在东方与我们中国相连的二个国家,却另我觉的深深的不齿.它们就是韩国与朝鲜!朝鲜被日本占领了半个世纪很令人同情.朝鲜人也受到压迫.二战结束后朝鲜半岛成立两个新的国家.它们在60年的岁月中取得了不小成绩.令人刮目相看.并且它们所谓的民族自豪感和野心也大为增强.二战纪念日与国庆日的时候它们总是一遍又一遍的对自己也是对其它国家说,我们是二战的&#34;受害者&#34;,是被&#34;奴役&#34;过民族.所以我们&#34;有权利&#34;向其它的国家提出要求.其中又以韩国最为嚣张. <br/>　　我因为工作的关系与韩国的政府官员和一些民间人士有所接触.在谈论到二战中朝鲜与日本的关系时.他们总是异口同声的表示:我们朝鲜人是日本对外侵略的&#34;最大&#34;受害者.我们一直没有&#34;放弃&#34;抵抗.我们在战争中&#34;破坏&#34;日本很多的工业设备,我们对&#34;结束二战&#34;起了十分巨大的作用.但是当我问道&#34;朝鲜人在日本殖民中国东北的时候,却是最积极的参与者,甚至比日本人还要热心.以及在日本军队中的韩国士兵人数和他们的所作所为!这些人却往往是把话题岔开,或者说我不太了解这个方面的事情.到这样的时候我与他们的谈话总是进行不下去了。 <br/>　是韩国人真的不知道这方面的历史么?还是他们在有意回避些什么呢?在韩国期间我经常去一些博物馆和图书馆查找一些于我工作有关的资料,我很惊讶的发现,在韩国的图书馆里有很多在日本军队里当过兵韩国人写的回忆录.以及一些学者对韩国人在3.40年代殖民中国东北所写的书.而且在街面上的书店里这样的书并不少见.因为我的外语不是朝鲜文.所以我借了几本拿回酒店让我的同事看看里面写的内容.他看了后就对我说了一句话:韩国人的历史观可以与日本人并驾齐驱! <br/>　　在这里我只写我所知道的一些历史事实,{1}二战中日本侵华军队(陆军)有128万人.东北70万华北华南58万人.在东南亚有日军(陆军)56万人.总数184万.朝鲜人在日军中服役的有42万,在中国的有35万.大家可以自己算一下这个比例!根据战后查获日军挡案.太平洋战争爆发后日军兵力紧张,有大量的朝鲜人自愿参加日军.(不是强抓,否则以1:10计算,需要4万日军看守.这是日军难以承受的)!{2}日本从1931--1945年向中国东北殖民130万.这是大家都知道的.大家不知道的是.从1931起陆续的有90万朝鲜人也紧跟着日本人的屁股殖民中国各地.(因为政治原因,准确从未对外发表过.)日本1937年至1945年实行积极鼓励朝鲜人移民东北的政策.最根本原因就是因为朝鲜人已经完全成为了日本人的忠实走狗.利用朝鲜移民加强粮食生产,满足侵略战争的需要.并且镇压中国百姓的反抗. <br/>　　在南京大屠杀的时候有5支日军因为&#34;作战勇敢&#34;受到日本国王的奖励.其中一个就是完全由3万朝鲜人组成的&#34;鲜人部队&#34;.韩国人很喜欢说朝鲜族在中国的抗联军队如何重要,发挥了主要的作用.我对韩国人说&#34;抗联最强盛的时候有40万之众,朝鲜族人数一直到1945年战争结束时也没有超过4千人.直到解放战争的时候才有不少朝鲜&#34;移民&#34;为了留在中国东北参加解放军,人数也只有5万.后来他们大部分成了北朝鲜的第一支正规军. <br/>　　日本宣布投降后,有不下10万计的朝鲜人以各种形式自杀,按常理国家自由,民族解放.人们应该欢欣鼓舞才对.但是在一个美军记者看来.1945年的朝鲜半岛到处是哭泣,哀号,自杀.有如世界末日一般.他在日记中写到:我来到了是一个什么样的国度,在这里我看不见一丝被解放的高兴气息.却犹如置身在日本一般,处处是哀号,哭泣,自杀. <br/>　　韩国人你们到底是一个什么样的民族?你们口口声声说自己受到了儒家文化的熏陶,但是儒家最珍视的礼仪廉耻,忠孝节义!却在你们这个不知廉耻,毫无信义的民族身上看不到一丝踪迹.一个民族想让人尊敬并不能靠篡改历史所获得,向奥地利学习吧!这是我一个普通的中国人对你们的规劝!<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=104" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=104</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[地震了，可怕！！]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=3" label="心情日记" /> 
	  <updated>2008-05-14T16:08:53+08:00</updated>
	  <published>2008-05-14T16:08:53+08:00</published>
		  <summary type="html"><![CDATA[四川地震，天水受影响也震了，感受到人在自然中的渺小，可怕。<br/>人的力量在自然中太渺小了。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=103" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=103</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[一种注入进程，获得完全操控的方法之一]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=6" label="电脑网络" /> 
	  <updated>2008-05-06T15:14:32+08:00</updated>
	  <published>2008-05-06T15:14:32+08:00</published>
		  <summary type="html"><![CDATA[标 题: 【原创】一种注入进程，获得完全操控的方法之一<br/>作 者: menting<br/>时 间: 2007-12-05,17:26<br/>链 接: <a href="http://bbs.pediy.com/showthread.php?t=56036" target="_blank" rel="external">http://bbs.pediy.com/showthread.php?t=56036</a><br/><br/>好长时间没贴东西了，今天就来贴点东西，废话就不说了直接进入主题，喜欢的就支持，不喜欢的就看乐和！！<br/>&nbsp;&nbsp;今天说点什么呢~我们今天就说HOOK，实际提到这个大家都知道它的功用，如果要是抓取消息那肯定是用下面的函数：<br/>//----------------------------------------------------------------------<br/>::SetWindowsHookA(int nFilterType,HOOKPROC pfnFilterProc);<br/>::CallNextHookEx(HHOOK hhk,int Code,WPARAM wParam,LPARAM lParam);<br/>::UnhookWindowsHook(int nCode,HOOKPROC pfnFilterProc);<br/><br/>//它们的参数我就不说了，实在是太多了！！<br/>//---------------------------------------------------------------------------<br/><br/>&nbsp;&nbsp;今天我就给大家说一种别的方法来抓取WINDOWS消息的方法，这种方法虽然有点局限性，但是我感觉很不错的哦！用我<br/><br/>的方法，可以抓取一个进程中的所有窗口的消息。不信就跟我一体来试试，如果看不太明白，那只好去学学相关知识了。我们<br/><br/>选择的方法就是HOOK API的方法。很多朋友都说网络上流传的HOOK API的很多，但是我碰到的都是HOOK那个MessageBoxA函数，<br/><br/>没什么意思，今天我就给大家一个全能的方法，我们不用了解太多PE结构，非要在IAT表中修改，我们先来看看我们要处理的<br/><br/>API为：<br/><br/>/*------------------------------------------------------------------------------------<br/> 函数原型：LRESULT CallWindowProc(WNDPROC lpPrevWndFunc，HWND hWnd．UINT Msg，WPARAM wParam，LPARAM IParam);<br/>&nbsp;&nbsp;&nbsp;&nbsp;参数：<br/>&nbsp;&nbsp;&nbsp;&nbsp;lpPrevWndFunc：指向前一个窗口过程的指针。如果该值是通过调用GetWindowLong函数，并将该函数中的nlndex参数设为<br/><br/>GWL_WNDPROC或DWL_DLGPROC而得到的，那么它实际上要么是窗口或者对话框的地址，要么就是代表该地址的句柄。<br/>&nbsp;&nbsp;&nbsp;&nbsp;hWnd：指向接收消息的窗口过程的句柄。<br/>&nbsp;&nbsp;&nbsp;&nbsp;Msg：指定消息类型。<br/>&nbsp;&nbsp;&nbsp;&nbsp;wParam：指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。<br/>&nbsp;&nbsp;&nbsp;&nbsp;IParam：指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。<br/>&nbsp;&nbsp;&nbsp;&nbsp;返回值：返回值指定了消息处理结果，它与发送的消息有关<br/><br/>-----------------------------------------------------------------------------------*/<br/><br/>我想一般对这个函数，比较陌生点，用的人就不多了，就像我有时用ntdll.dll中LdrGetDllHandle这类函数一样。因为它的功<br/><br/>能很多时候都不用知道的:)。<br/><br/>&nbsp;&nbsp;我们为了能抓到消息，而且不用HOOK这类API函数，我们要在这个函数上做手脚，或许可以对DefWindowProc()这个函<br/><br/>数也做手脚，但是我想我要一个就可以了呵呵！因为我这里举例是用自定义消息为例子的，为什么要用自定义消息呢！我还想<br/><br/>说明一点问题就是远程注入进程。<br/><br/>&nbsp;&nbsp;实际对于一个进程来讲，只要给它放个DLL那么它就不得不听你的了，我们可以给这个DLL发送一些命令，让它按照命<br/><br/>令来操作我们的目标进程。有的时候我就特别的喜欢‘该死’，他做的系统就给我们一个空间，也就是0x400-0x7FF是为用户自<br/><br/>定义的消息，我们就可以用如下的方法来设置命令：<br/>#define WM_CMD_EXIT&nbsp;&nbsp;WM_USER+100&nbsp;&nbsp; //退出进程<br/>#define WM_CMD_GETHWND&nbsp;&nbsp;WM_USER+101&nbsp;&nbsp; //获取HWND句柄<br/>#define WM_CMD_GETCAPTION WM_USER+102 //获取窗口名称<br/><br/>……等等，我们还可以调用进程的内部函数，让进程做我们想让它做的。实际就举个例子来将，发给命令过去，让QQ不断显示<br/><br/>广告，或定时显示广告，我们几乎就完全操作了进程了。如果没道德，想抓取别人的隐私，那也是顺手而已。可是我在发这篇<br/><br/>贴的时候，还是想过是否要发，因为我觉得我手里的东西就是把双刃剑，能杀这边，也能杀那边。希望学会的朋友都不要把它<br/><br/>用于搞破坏上。<br/><br/>注入进程的方法太多了，我就不说了，我把它写了一个类，大家就可以拿去直接用了。<br/><br/>//注意的是，路径是绝对路径，才能给其它进程注入。<br/>//----------------------------------------------------------------------------<br/>// RemoteShell.h: interface for the CRemoteShell class.<br/>//<br/>//////////////////////////////////////////////////////////////////////<br/><br/>#if !defined(AFX_REMOTESHELL_H__6242FFA8_B8E3_4F9A_BE7D_197F76A78D03__INCLUDED_)<br/>#define AFX_REMOTESHELL_H__6242FFA8_B8E3_4F9A_BE7D_197F76A78D03__INCLUDED_<br/><br/>#if _MSC_VER &gt; 1000<br/>#pragma once<br/>#endif // _MSC_VER &gt; 1000<br/><br/><br/>#include &#34;tlhelp32.h&#34;<br/>#pragma comment(lib,&#34;th32.lib&#34;)<br/><br/>class CRemoteShell&nbsp;&nbsp;<br/>{<br/>public:<br/>&nbsp;&nbsp;CRemoteShell();<br/>&nbsp;&nbsp;virtual ~CRemoteShell();<br/>public:<br/>public:<br/>&nbsp;&nbsp;CString&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_dllPath;<br/><br/>&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pId;<br/>&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dwSize;<br/>&nbsp;&nbsp;LPVOID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pDll;<br/>&nbsp;&nbsp;HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hDll;<br/>&nbsp;&nbsp;HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hToken;<br/>&nbsp;&nbsp;HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hProcess;<br/>&nbsp;&nbsp;&nbsp;&nbsp;LUID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luid;<br/>&nbsp;&nbsp;TOKEN_PRIVILEGES tp;<br/><br/>public:<br/>&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;Release(DWORD procId=NULL);<br/>&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;Load(LPCTSTR dllpath,DWORD pId=NULL); //进程注入<br/>&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;Load(LPCTSTR dllpath,HWND hWnd);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//窗口注入<br/>&nbsp;&nbsp;HANDLE GetDllHandle(LPCTSTR path,DWORD pid);<br/>};<br/><br/>#endif // !defined(AFX_REMOTESHELL_H__6242FFA8_B8E3_4F9A_BE7D_197F76A78D03__INCLUDED_)<br/><br/><br/>//-------------------------------------------------------------------------------------------<br/>// RemoteShell.cpp: implementation of the CRemoteShell class.<br/>//<br/>//////////////////////////////////////////////////////////////////////<br/><br/>#include &#34;stdafx.h&#34;<br/>#include &#34;注入程序.h&#34;<br/>#include &#34;RemoteShell.h&#34;<br/><br/>#ifdef _DEBUG<br/>#undef THIS_FILE<br/>static char THIS_FILE[]=__FILE__;<br/>#define new DEBUG_NEW<br/>#endif<br/><br/>//////////////////////////////////////////////////////////////////////<br/>// Construction/Destruction<br/>//////////////////////////////////////////////////////////////////////<br/><br/>CRemoteShell::CRemoteShell()<br/>{<br/>&nbsp;&nbsp;hToken&nbsp;&nbsp;=NULL;<br/>&nbsp;&nbsp;hProcess=NULL;<br/>&nbsp;&nbsp;memset(&amp;tp,0,sizeof(TOKEN_PRIVILEGES));<br/><br/>&nbsp;&nbsp;//取得句柄的令牌:<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (!OpenProcessToken(GetCurrentProcess(), //是要修改访问权限的进程句柄<br/>&nbsp;&nbsp;&nbsp;&nbsp;TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&nbsp;&nbsp; //指定你所需要的操作类型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&amp;hToken))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//是返回的访问令牌指针<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;//获取权限的LUID值:<br/>&nbsp;&nbsp;if (!LookupPrivilegeValue(NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //系统的名称，如果是本地系统只要指明为NULL就可以了<br/>&nbsp;&nbsp;&nbsp;&nbsp;SE_DEBUG_NAME,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//指明了权限的名称<br/>&nbsp;&nbsp;&nbsp;&nbsp;&amp;Luid))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //返回LUID的指针<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;tp.PrivilegeCount = 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;<br/>&nbsp;&nbsp;&nbsp;&nbsp;tp.Privileges[0].Luid = Luid;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;//访问令牌进行修改:<br/>&nbsp;&nbsp;if (!AdjustTokenPrivileges(hToken,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//访问令牌的句柄<br/>&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//决定是进行权限修改还是除能(Disable)所有权限<br/>&nbsp;&nbsp;&nbsp;&nbsp;&amp;tp,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//指明要修改的权限,指向TOKEN_PRIVILEGES结构的指针，该结构<br/><br/>包含一个数组，数据组的每个项指明了权限的类型和要进行的操作<br/>&nbsp;&nbsp;&nbsp;&nbsp;sizeof(TOKEN_PRIVILEGES),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //是结构PreviousState的长度，如果PreviousState为空，该参<br/><br/>数应为NULL<br/>&nbsp;&nbsp;&nbsp;&nbsp;NULL,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //参数也是一个指向TOKEN_PRIVILEGES结构的指针，存放修改前<br/><br/>的访问权限的信息，可空<br/>&nbsp;&nbsp;&nbsp;&nbsp;NULL))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//实际PreviousState结构返回的大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/><br/>CRemoteShell::~CRemoteShell()<br/>{<br/>&nbsp;&nbsp;if(hToken!=NULL){::CloseHandle(hToken);}<br/>&nbsp;&nbsp;if(hProcess!=NULL){::CloseHandle(hProcess);}<br/>}<br/><br/>//注入给指定进程:<br/>int CRemoteShell::Load(LPCTSTR dllpath,DWORD pId)<br/>{<br/>&nbsp;&nbsp;hProcess&nbsp;&nbsp; =NULL;<br/>&nbsp;&nbsp;pDll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =NULL;<br/>&nbsp;&nbsp;m_dllPath&nbsp;&nbsp;=dllpath;<br/><br/>&nbsp;&nbsp;//如果指定进程ID为NULL,就注入给自己.<br/>&nbsp;&nbsp;if(pId==NULL){pId=::GetCurrentProcessId();}<br/><br/>&nbsp;&nbsp;//打开进程:<br/>&nbsp;&nbsp;hProcess=::OpenProcess(PROCESS_Cr&#101;ate_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,1,pId);<br/>&nbsp;&nbsp;if(hProcess==NULL){return -20;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//分配内存:<br/>&nbsp;&nbsp;&nbsp;&nbsp;pDll=::VirtualAllocEx(hProcess,NULL,strlen(dllpath),MEM_COMMIT,PAGE_READWRITE);<br/>&nbsp;&nbsp;if(pDll==NULL){return -21;}<br/><br/>&nbsp;&nbsp;//注入DLL:<br/>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bRe=::WriteProcessMemory(hProcess,pDll,(void*)dllpath,strlen(dllpath),NULL);<br/>&nbsp;&nbsp;if(bRe==FALSE){return -22;}<br/><br/>&nbsp;&nbsp;//获取LoadLibraryA函数地址:<br/>&nbsp;&nbsp;&nbsp;&nbsp;FARPROC pLoadDll=GetProcAddress(GetModuleHandle(&#34;kernel32.dll&#34;),&#34;LoadLibraryA&#34;);<br/>&nbsp;&nbsp;if(pLoadDll==NULL){return -23;}<br/><br/>&nbsp;&nbsp;//创建线程:<br/>&nbsp;&nbsp;&nbsp;&nbsp;HANDLE hRemote=Cr&#101;ateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)pLoadDll,pDll,NULL,0); <br/>&nbsp;&nbsp;//等待线程结束:<br/>&nbsp;&nbsp;::WaitForSingleObject(hRemote,INFINITE);<br/><br/>&nbsp;&nbsp;if(hRemote!=NULL){::CloseHandle(hRemote);}<br/>&nbsp;&nbsp;if(hProcess!=NULL){::CloseHandle(hProcess);}<br/>&nbsp;&nbsp;return 0;<br/>}<br/><br/>//注入给指定程序句柄的进程:<br/>int CRemoteShell::Load(LPCTSTR dllpath,HWND hWnd)<br/>{<br/>&nbsp;&nbsp;hProcess&nbsp;&nbsp; =NULL;<br/>&nbsp;&nbsp;pDll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =NULL;<br/>&nbsp;&nbsp;pId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=NULL;<br/>&nbsp;&nbsp;m_dllPath&nbsp;&nbsp;=dllpath;<br/><br/>&nbsp;&nbsp;if(hWnd!=NULL){::GetWindowThreadProcessId(hWnd,&amp;pId);}<br/><br/>&nbsp;&nbsp;//如果指定进程ID为NULL,就注入给自己.<br/>&nbsp;&nbsp;if(pId==NULL){pId=::GetCurrentProcessId();}<br/><br/>&nbsp;&nbsp;//打开进程:<br/>&nbsp;&nbsp;hProcess=::OpenProcess(PROCESS_Cr&#101;ate_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,1,pId);<br/>&nbsp;&nbsp;if(hProcess==NULL){return -20;}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//分配内存:<br/>&nbsp;&nbsp;&nbsp;&nbsp;pDll=::VirtualAllocEx(hProcess,NULL,strlen(dllpath),MEM_COMMIT,PAGE_READWRITE);<br/>&nbsp;&nbsp;if(pDll==NULL){return -21;}<br/><br/>&nbsp;&nbsp;//注入DLL:<br/>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bRe=::WriteProcessMemory(hProcess,pDll,(void*)dllpath,strlen(dllpath),NULL);<br/>&nbsp;&nbsp;if(bRe==FALSE){return -22;}<br/><br/>&nbsp;&nbsp;//获取LoadLibraryA函数地址:<br/>&nbsp;&nbsp;&nbsp;&nbsp;FARPROC pLoadDll=::GetProcAddress(::GetModuleHandle(&#34;kernel32.dll&#34;),&#34;LoadLibraryA&#34;);<br/>&nbsp;&nbsp;if(pLoadDll==NULL){return -23;}<br/><br/>&nbsp;&nbsp;//创建线程:<br/>&nbsp;&nbsp;HANDLE hRemote=Cr&#101;ateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)pLoadDll,pDll,NULL,0); <br/><br/>&nbsp;&nbsp;//等待线程结束:<br/>&nbsp;&nbsp;::WaitForSingleObject(hRemote,INFINITE);<br/><br/>&nbsp;&nbsp;hDll=GetDllHandle(dllpath,pId);<br/>&nbsp;&nbsp;if(hRemote!=NULL){::CloseHandle(hRemote);}<br/>&nbsp;&nbsp;if(hProcess!=NULL){::CloseHandle(hProcess);}<br/>&nbsp;&nbsp;return 0;<br/>}<br/><br/>int CRemoteShell::Release(DWORD procId)<br/>{<br/>&nbsp;&nbsp;DWORD id=NULL;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;if(hDll==NULL){return -1;}<br/>&nbsp;&nbsp;if(pId!=NULL){id=pId;}<br/>&nbsp;&nbsp;if(procId!=NULL){id=procId;}<br/><br/>&nbsp;&nbsp;if(id!=NULL){<br/><br/>&nbsp;&nbsp;//打开进程:<br/>&nbsp;&nbsp;hProcess=::OpenProcess(PROCESS_Cr&#101;ate_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATION,1,pId);<br/>&nbsp;&nbsp;if(hProcess==NULL){return -20;}<br/><br/>&nbsp;&nbsp;//FARPROC pGetDllHandle=GetProcAddress(GetModuleHandle(&#34;ntdll.dll&#34;),&#34;LdrGetDllHandle&#34;);<br/><br/>&nbsp;&nbsp;//获取FreeLibraryA函数地址:<br/>&nbsp;&nbsp;&nbsp;&nbsp;FARPROC pFreeDll=GetProcAddress(GetModuleHandle(&#34;kernel32.dll&#34;),&#34;FreeLibrary&#34;);<br/>&nbsp;&nbsp;if(pFreeDll==NULL){return -23;}<br/><br/>&nbsp;&nbsp;//创建线程:<br/>&nbsp;&nbsp;&nbsp;&nbsp;HANDLE hRemote=::Cr&#101;ateRemoteThread(hProcess,NULL,0,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (LPTHREAD_START_ROUTINE)<br/><br/>pFreeDll,hDll,NULL,0); <br/>&nbsp;&nbsp;//等待线程结束:<br/>&nbsp;&nbsp;::WaitForSingleObject(hRemote,INFINITE);<br/><br/>&nbsp;&nbsp;::VirtualFreeEx(hProcess,pDll,0,MEM_RELEASE);<br/>&nbsp;&nbsp;if(hRemote!=NULL){::CloseHandle(hRemote);}<br/>&nbsp;&nbsp;if(hProcess!=NULL){::CloseHandle(hProcess);}<br/>&nbsp;&nbsp;}else{AfxMessageBox(&#34;进程号为空!无法释放!&#34;);}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;return 0;<br/>}<br/><br/>HANDLE CRemoteShell::GetDllHandle(LPCTSTR path,DWORD pid)<br/>{<br/>&nbsp;&nbsp;if(pid==NULL){pid=::GetCurrentProcessId();}<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//打开进程:<br/>&nbsp;&nbsp;int num=0;<br/>&nbsp;&nbsp;BOOL&nbsp;&nbsp; bRe=FALSE;<br/>&nbsp;&nbsp;HANDLE hModule=NULL;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODULEENTRY32* minfo=NULL;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minfo=new MODULEENTRY32;<br/><br/>&nbsp;&nbsp;if(NULL!=pid)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;hModule=Cr&#101;ateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;bRe=Module32First(hModule, minfo);<br/>&nbsp;&nbsp;&nbsp;&nbsp;for(;bRe!=0;num++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(lstrcmp(minfo-&gt;szExePath,path)==0||lstrcmp(minfo-&gt;szModule,path)==0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{return minfo-&gt;modBaseAddr;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRe=::Module32Next(hModule,minfo);<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(minfo!=NULL){del&#101;te minfo;}<br/>&nbsp;&nbsp;::CloseHandle(hModule);<br/>&nbsp;&nbsp;return NULL;<br/>}<br/><br/><br/>//----------------------------------------------------------------------------------------------<br/><br/>我们用上面的类就可以轻松的把一个DLL注入到别的进程，并且还可以轻松的释放。做到不知不觉。<br/>话归前题，我们要怎么样才能对CallWindowProc这个API做手脚了。我们可以看到这个函数的入口地方很简单：<br/><br/>//-------------------------------------------------------------<br/>77D1E8EA &gt;&nbsp;&nbsp;8BFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; edi, edi<br/>77D1E8EC&nbsp;&nbsp;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ebp<br/>77D1E8ED&nbsp;&nbsp;&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br/>77D1E8EF&nbsp;&nbsp;&nbsp;&nbsp;6A 01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;只是和前面不一样多了个参数1<br/>77D1E8F1&nbsp;&nbsp;&nbsp;&nbsp;FF75 18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [ebp+18]<br/>77D1E8F4&nbsp;&nbsp;&nbsp;&nbsp;FF75 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [ebp+14]<br/>77D1E8F7&nbsp;&nbsp;&nbsp;&nbsp;FF75 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [ebp+10]<br/>77D1E8FA&nbsp;&nbsp;&nbsp;&nbsp;FF75 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [ebp+C]<br/>77D1E8FD&nbsp;&nbsp;&nbsp;&nbsp;FF75 08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [ebp+8]<br/>77D1E900&nbsp;&nbsp;&nbsp;&nbsp;E8 E9DCFFFF&nbsp;&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp;&nbsp;77D1C5EE<br/>77D1E905&nbsp;&nbsp;&nbsp;&nbsp;5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br/>77D1E906&nbsp;&nbsp;&nbsp;&nbsp;C2 1400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retn&nbsp;&nbsp;&nbsp;&nbsp;14<br/><br/>//-----------------------------------------------------------------------<br/><br/>我们定义了一个函数类型：<br/>typedef&nbsp;&nbsp;LRESULT (*CALLPROC)(WNDPROC,HWND,UINT,WPARAM,LPARAM,int);<br/>这样我们就可以轻松的调用这个函数了。<br/>我们只需要把：<br/>77D1E900&nbsp;&nbsp;&nbsp;&nbsp;E8 E9DCFFFF&nbsp;&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp;&nbsp;77D1C5EE<br/>改为我们自己的就可以了。<br/><br/>分析好以后，我们就在我们准备好的DLL中加入我们代替它的回调函数：<br/>//----------------------------------------------------------------------------------------------------<br/>LRESULT CALLBACK pnCallWindowProc(IN WNDPROC lpPrevWndFunc,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN HWND hWnd,IN UINT Msg,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN WPARAM wParam,IN LPARAM lParam,IN int unk)<br/>{<br/>&nbsp;&nbsp;switch(Msg)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;case WM_CMD_EXIT:<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这里是我们自己定义给进程的命令，也就是自定义消息：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox(&#34;获取到命令&#34;);return TRUE;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;default:{break;}<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;//返回到原来的地址:<br/>&nbsp;&nbsp;return lpSrcCallProc(lpPrevWndFunc,hWnd,Msg,wParam,lParam,unk);<br/>}<br/>//-------------------------------------------------------------------------------------------------------<br/><br/>我们在DLL加载时，把上面那个地方改掉就可以了。<br/><br/>//----------------------------------------------------------------------------------------------<br/>void CMyRemoteDllApp::SetHookApiCallBack()<br/>{<br/>&nbsp;&nbsp;//获取回调函数地址:<br/>&nbsp;&nbsp;hModule=::GetModuleHandle(&#34;User32.dll&#34;);<br/>&nbsp;&nbsp;FARPROC&nbsp;&nbsp;fpCallWindowProc=::GetProcAddress(hModule,&#34;CallWindowProcA&#34;);<br/><br/>&nbsp;&nbsp;//这里需要做说明了，最好大家不要用虚拟绝对地址，建议用虚拟相对地址，这样即使user32.dll的版本不一样<br/>&nbsp;&nbsp;//也不会影响到我们的DLL，我这里都是通过计算得到的。<br/>&nbsp;&nbsp;//声明结构对象，为了方便修改，我写了个结构来处理:<br/>&nbsp;&nbsp;_ASM_CALL _call;<br/>&nbsp;&nbsp;_call._01cmd =0xE8;<br/>&nbsp;&nbsp;DWORD dword=(DWORD)&amp;pnCallWindowProc-((DWORD)fpCallWindowProc+0x16)-5;<br/>&nbsp;&nbsp;memcpy((PDWORD)_call._02dat,&amp;dword,4);<br/><br/>&nbsp;&nbsp;//获取当前内存块的保护类型，由于是系统DLL只给R的权限，我们必须把R改成RW才能把我们的函数替换进去:<br/>&nbsp;&nbsp;MEMORY_BASIC_INFORMATION _base;<br/>&nbsp;&nbsp;::VirtualQuery((LPVOID)((DWORD)hModule+0x1000),&amp;_base,sizeof(MEMORY_BASIC_INFORMATION));<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//保存原始入口地址，我们处理的是自定义消息，我们不需要处理全部，所以其他的都转给原来的地址:<br/>&nbsp;&nbsp;//做到这里就想起病毒~~~，所以再三请大家不要用于它途<br/>&nbsp;&nbsp;lpSrcCallProc=(CALLPROC)(*(PDWORD)((DWORD)fpCallWindowProc+0x17));<br/>&nbsp;&nbsp;lpSrcCallProc=(CALLPROC)((DWORD)fpCallWindowProc+0x16+(DWORD)lpSrcCallProc+5);<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//处理为读写类型:<br/>&nbsp;&nbsp;::VirtualProtect(_base.BaseAddress,_base.RegionSize,PAGE_READWRITE,&amp;_base.Protect);<br/>&nbsp;&nbsp;memcpy((LPVOID)((DWORD)fpCallWindowProc+0x16),&amp;_call,5);<br/><br/>&nbsp;&nbsp;//处理完成后,恢复保护类型:<br/>&nbsp;&nbsp;DWORD dwProctect=NULL;<br/>&nbsp;&nbsp;::VirtualProtect(_base.BaseAddress,_base.RegionSize,_base.Protect,&amp;dwProctect);<br/><br/>}<br/><br/>//-------------------------------------------------------------------------------------------------------<br/><br/>只加载不算完啊，我们要在DLL退出前把它再改回来的，要不程序会不正常的。<br/><br/>//-----------------------------------------------------------------------------------------<br/>int CMyRemoteDllApp::ExitInstance() <br/>{<br/>&nbsp;&nbsp;// TODO: Add your specialized code here and/or call the base class<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;//获取回调函数地址:<br/>&nbsp;&nbsp;hModule=::GetModuleHandle(&#34;User32.dll&#34;);<br/>&nbsp;&nbsp;FARPROC&nbsp;&nbsp;fpCallWindowProc=::GetProcAddress(hModule,&#34;CallWindowProcA&#34;);<br/><br/>&nbsp;&nbsp;//获取当前内存块的保护类型:<br/>&nbsp;&nbsp;MEMORY_BASIC_INFORMATION _base;<br/>&nbsp;&nbsp;::VirtualQuery((LPVOID)((DWORD)hModule+0x1000),&amp;_base,sizeof(MEMORY_BASIC_INFORMATION));<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;DWORD dword=(DWORD)lpSrcCallProc-((DWORD)fpCallWindowProc+0x16)-5;<br/><br/>&nbsp;&nbsp;//声明结构对象:<br/>&nbsp;&nbsp;_ASM_CALL _call;<br/>&nbsp;&nbsp;_call._01cmd =0xE8;<br/>&nbsp;&nbsp;memcpy((PDWORD)_call._02dat,&amp;dword,4);<br/><br/>&nbsp;&nbsp;//处理为读写类型:<br/>&nbsp;&nbsp;::VirtualProtect(_base.BaseAddress,_base.RegionSize,PAGE_READWRITE,&amp;_base.Protect);<br/>&nbsp;&nbsp;memcpy((LPVOID)((DWORD)fpCallWindowProc+0x16),&amp;_call,5);<br/><br/>&nbsp;&nbsp;//处理完成后,恢复保护类型:<br/>&nbsp;&nbsp;DWORD dwProctect=NULL;<br/>&nbsp;&nbsp;::VirtualProtect(_base.BaseAddress,_base.RegionSize,_base.Protect,&amp;dwProctect);<br/><br/>&nbsp;&nbsp;return CWinApp::ExitInstance();<br/>}<br/>//-----------------------------------------------------------------------------------------<br/>&nbsp;&nbsp;在回调函数前必须加 CALLBACK，请大家要注意了，因为加与不加在汇编语言里是完全不一样的：<br/>//加了的：<br/>//---------------------------------------------------------------------------------------------<br/>1000129C&nbsp;&nbsp;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ebp<br/>1000129D&nbsp;&nbsp;&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br/>1000129F&nbsp;&nbsp;&nbsp;&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br/>100012A0&nbsp;&nbsp;&nbsp;&nbsp;8B45 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp+10]<br/>100012A3&nbsp;&nbsp;&nbsp;&nbsp;8945 FC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-4], eax<br/>100012A6&nbsp;&nbsp;&nbsp;&nbsp;817D FC 6404000&gt;cmp&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-4], 464<br/>100012AD&nbsp;&nbsp;&nbsp;&nbsp;74 02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; je&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short 100012B1<br/>100012AF&nbsp;&nbsp;&nbsp;&nbsp;EB 15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp;&nbsp; short 100012C6<br/>100012B1&nbsp;&nbsp;&nbsp;&nbsp;6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;0<br/>100012B3&nbsp;&nbsp;&nbsp;&nbsp;6A 00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;0<br/>100012B5&nbsp;&nbsp;&nbsp;&nbsp;68 64300010&nbsp;&nbsp;&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;10003064<br/>100012BA&nbsp;&nbsp;&nbsp;&nbsp;E8 A7010000&nbsp;&nbsp;&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp;&nbsp;10001466&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; jmp 到 MFC42.#1200<br/>100012BF&nbsp;&nbsp;&nbsp;&nbsp;B8 01000000&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, 1<br/>100012C4&nbsp;&nbsp;&nbsp;&nbsp;EB 21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp&nbsp;&nbsp;&nbsp;&nbsp; short 100012E7<br/>100012C6&nbsp;&nbsp;&nbsp;&nbsp;8B4D 1C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr [ebp+1C]<br/>100012C9&nbsp;&nbsp;&nbsp;&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br/>100012CA&nbsp;&nbsp;&nbsp;&nbsp;8B55 18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr [ebp+18]<br/>100012CD&nbsp;&nbsp;&nbsp;&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;edx<br/>100012CE&nbsp;&nbsp;&nbsp;&nbsp;8B45 14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp+14]<br/>100012D1&nbsp;&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br/>100012D2&nbsp;&nbsp;&nbsp;&nbsp;8B4D 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ecx, dword ptr [ebp+10]<br/>100012D5&nbsp;&nbsp;&nbsp;&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ecx<br/>100012D6&nbsp;&nbsp;&nbsp;&nbsp;8B55 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; edx, dword ptr [ebp+C]<br/>100012D9&nbsp;&nbsp;&nbsp;&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;edx<br/>100012DA&nbsp;&nbsp;&nbsp;&nbsp;8B45 08&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp+8]<br/>100012DD&nbsp;&nbsp;&nbsp;&nbsp;50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;eax<br/>100012DE&nbsp;&nbsp;&nbsp;&nbsp;FF15 D4310010&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp;&nbsp;dword ptr [100031D4]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; USER32.77D1C5EE<br/>100012E4&nbsp;&nbsp;&nbsp;&nbsp;83C4 18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; esp, 18<br/>100012E7&nbsp;&nbsp;&nbsp;&nbsp;8BE5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; esp, ebp<br/>100012E9&nbsp;&nbsp;&nbsp;&nbsp;5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br/>100012EA&nbsp;&nbsp;&nbsp;&nbsp;C2 1800&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retn&nbsp;&nbsp;&nbsp;&nbsp;18<br/>//---------------------------------------------------------------------------------------------<br/>没加的，类似如下，没加会在堆栈溢出，必须手动修改ESP，才能正常：<br/>//-------------------------------------------------------------------------------------------------<br/>100017A1&nbsp;&nbsp;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ebp<br/>100017A2&nbsp;&nbsp;&nbsp;&nbsp;8BEC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp; ebp, esp<br/>100017A4&nbsp;&nbsp;&nbsp;&nbsp;53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push&nbsp;&nbsp;&nbsp;&nbsp;ebx<br/>……<br/>10001831&nbsp;&nbsp;&nbsp;&nbsp;8945 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp+C], eax<br/>10001834&nbsp;&nbsp;&nbsp;&nbsp;8B45 0C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; eax, dword ptr [ebp+C]<br/>10001837&nbsp;&nbsp;&nbsp;&nbsp;5F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; edi<br/>10001838&nbsp;&nbsp;&nbsp;&nbsp;5E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; esi<br/>10001839&nbsp;&nbsp;&nbsp;&nbsp;5B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; ebx<br/>1000183A&nbsp;&nbsp;&nbsp;&nbsp;5D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pop&nbsp;&nbsp;&nbsp;&nbsp; ebp<br/>1000183B&nbsp;&nbsp;&nbsp;&nbsp;C2 0C00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; retn&nbsp;&nbsp;&nbsp;&nbsp;0C<br/><br/><br/>//--------------------------------------------------------------------------------------------------<br/><br/>再需要说明一下：<br/>Call 地址不是实际地址是要算的哦<br/>目的地址-当前地址-5<br/>就是CALL 的值，这个是个简单点的公式！！！大家用的着哦！<br/><br/>如果，大家要是在，DLL中加入了窃取信息的代码，那么它就是个木马了，只要发个消息它就工作，或者设定在收到某个消息后才工作，我想要比那些网上的木马高明点，但是我还希望大家不要这么做，因为，这样做的后果是可怜的哦:)。还有就是不要拿系统进程做实验，容易死机eek:&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>好了，到现在我们所做的就完工了，还算是基本完美吧！大家发给消息给被注入进程，可以看到有如下图的提示：<br/><img src="http://hiphotos.baidu.com/stealthwalker/pic/item/1645e50a93c3711294ca6b68.jpg" border="0" alt=""/><br/>以后，再给大家说，怎么调用进程内部函数，这一篇就算结束了886~~~<br/><br/><br/>看到大家对我的代码提出了很好的意见，我很感谢！我粗略的看了看，改的地方比较多，我不做了，大家自己做的时候要注意了，用完HANDLE别忘记CloseHandle，这个习惯我正在改．．大家有这个习惯的也注意了哦～～～程序的稳定，很重要的点滴．．最近比较烦:(...<br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-By EasyStudy For PhantomNet <br/><br/><br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=102" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=102</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[收藏一个网址]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=6" label="电脑网络" /> 
	  <updated>2008-05-05T13:38:09+08:00</updated>
	  <published>2008-05-05T13:38:09+08:00</published>
		  <summary type="html"><![CDATA[<a href="http://bbs.52q.org" target="_blank" rel="external">http://bbs.52q.org</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=101" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=101</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[建国后称帝登基的牛人一览表]]></title>
	  <author>
		 <name>飘萍</name>
		 <uri>http://www.poopin.net/blog/</uri>
		 <email>poopin@163.com</email>
	  </author>
	  <category term="" scheme="http://www.poopin.net/blog/default.asp?cateID=16" label="杂记" /> 
	  <updated>2008-04-26T11:49:06+08:00</updated>
	  <published>2008-04-26T11:49:06+08:00</published>
		  <summary type="html"><![CDATA[建国后在大陆称帝者一览： <br/>　　　　[大中华佛国]（19471953，1983）先主石顶武（19471953）图谋叛乱，被人民gover-ment处决。后主石金鑫，石顶武之子，1983年在农民“丞相”李丕瑞的“辅佐”下登基，于湖南醴陵农村复国，旋被县公安局镇压。 <br/>　　 <br/>　　　　[道德金门皇帝]（19811990）地处大别山，丁兴来（盲人）创道德金门教，然后称帝，封了“正宫娘娘”“西宫娘娘”“宰相”等21个人,赐‘仙印‘41枚，由于交通闭塞，直到称帝后十年才被发现并被乡gover-ment处理。 <br/>　　 <br/>　　　　[中原皇清国]（1982）正皇帝张清安，副皇帝廖桂堂，以皇清为年号.地处大巴山。张清安刻“玉玺”，设“后宫”，分封丞相，文武百官，颁布《天律森吏》，打算定都巴中县，把巴中川剧团大楼当皇宫，甚至写好了准备（通过邮局）寄到台湾的册封蒋介石为“威国王”的“谕旨”，还决定要“御驾亲征”，结果还没出师，就被县公安局给灭了。 <br/>　　 <br/>　　　　[圣朝国]（19801982）林文勇，地处大巴山仪陇山区，被县公共安全专家局处理。 <br/>　　 <br/>　　　　［玉皇大帝］（1982）1982年地处大巴山的曹家元自称玉皇大帝，旋灭。 <br/>　　 <br/>　　　　［皇帝］（1980）1980年地处大巴山的朱仕强自称皇帝，仅日即被村书记带人灭了。 <br/>　　 <br/>　　　　[大圣王朝]（19861988）地处胶东半岛。女皇晁正坤在19861988期间，行巫术、招童男、建“后宫”、后被县人民gover-ment镇压。 <br/>　　 <br/>　　　　[万顺天国]（19901992）地处豫西。李成福自建安民、万李起义军，自称唐朝后裔，妄图以农村包围城市的方式复辟唐朝帝制，定都西安。后被乡派出所3名干警剿灭。 <br/>　　 <br/>　　　　［其它］曾应龙，登基于70年代末80年代初，起因是反对计划生育政策。于是在农村立国，称皇帝，调动大军（数百人似乎），杀入县城，攻陷县医院，俘全部医生、女护士，将所有计划生育用品搜出并销毁。后人民解放军迅速发动反击并围困了县医院，皇帝率军顽强抵抗后兵败被俘。本应判该皇帝死刑。念其无知，判处无期。 <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/>　　 <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/>　　 <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/>　　 <br/>　　　　　　【曾应龙】：穷不能立国，这是教训啊！所以说，要挖穷根，奔富裕，首先就要学习文化和科技。朕过去潜心钻研古藉，忽视了本土本乡之外的时代变化，入狱后，朕反而在高墙之内开阔了视野，还报考了函大。 <br/>　　 <br/>　　　　　　【威】：皇上读函授大学？这倒是新鲜事。听说陛下为上学之事还下诏给监狱长和政委，称他们为“黄、王二大臣”？ <br/>　　 <br/>　　　　　　【曾应龙】：读函大需要钱，朕的用意是在表彰黄、王二位管理监狱有功的同时，向狱方征集几百元学费，不料朕的苦心被误解。大队长亲临监舍，把朕好一顿训斥！ <br/>　　 <br/>　　　　　　【威】：皇后来探过监吗 <br/>　　 <br/>　　　　　　【曾应龙】：朕已将她贬为庶人。 <br/>　　 <br/>　　　　　　【威】：这么说您离婚了。儿女改姓了么？ <br/>　　 <br/>　　　　　　【曾应龙】：一言难尽。朕的心情不好，不想再谈下去了。 <br/>　　 <br/>　　　　　　【威】：但愿我能拉到赞助，支持陛下学完函大。祝君健康。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.poopin.net/blog/article.asp?id=100" /> 
	  <id>http://www.poopin.net/blog/default.asp?id=100</id>
  </entry>	
		
</feed>
