<?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>LCR&#039;s BLOG &#187; Computer Technology</title>
	<atom:link href="http://lcr.old-castle.org/archives/category/computer-technology/feed" rel="self" type="application/rss+xml" />
	<link>http://lcr.old-castle.org</link>
	<description>這是一個很大的垃圾桶, 裡面裝著一堆垃圾但是沒有臭味...</description>
	<lastBuildDate>Sun, 04 Feb 2007 07:07:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-RC3-15270</generator>
		<item>
		<title>Why projects fail?</title>
		<link>http://lcr.old-castle.org/archives/97</link>
		<comments>http://lcr.old-castle.org/archives/97#comments</comments>
		<pubDate>Fri, 02 Feb 2007 06:55:21 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>
		<category><![CDATA[Life, Life, Life]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=97</guid>
		<description><![CDATA[偷個今天上課聽到的一段話過來，因為還蠻感同身受的 :P ＊Why projects fail? Poor scheduling Poor planning Poor management Bad organization structure Uncontrolled requirements Unmanaged changes ＊Are these reasons technical? 上面舉了幾個 project 為什麼會失敗的原因。下面問你，這些原因都是技術層面的問題嗎？大多數的情況下，當 project 出問題之後，事後開會常常在技術面中檢討失敗的原因。 講師舉個了一個故事，有一個人晚上把家裡的鑰匙掉在一條暗巷裡，他必須把鑰匙找出來才能回家。可是他卻跑到隔壁一條明亮的巷子裡面一直找。路人看到了就問，你鑰匙不是掉在隔壁巷子嗎？怎麼跑來這邊找？那人卻回答他：因為這條巷子比較亮啊！ 這個故事就說明了，當 project 失敗之後，很多人常常在技術層面探討原因的所在，但是大部分的問題都是發生在技術面嗎？]]></description>
			<content:encoded><![CDATA[<p>偷個今天上課聽到的一段話過來，因為還蠻感同身受的 :P</p>
<p>＊Why projects fail?</p>
<ul>
<li>Poor scheduling</li>
<li>Poor planning</li>
<li>Poor management</li>
<li>Bad organization structure</li>
<li>Uncontrolled requirements</li>
<li>Unmanaged changes</li>
</ul>
<p>＊Are these reasons technical?</p>
<p>上面舉了幾個 project 為什麼會失敗的原因。下面問你，這些原因都是技術層面的問題嗎？大多數的情況下，當 project 出問題之後，事後開會常常在技術面中檢討失敗的原因。</p>
<p>講師舉個了一個故事，有一個人晚上把家裡的鑰匙掉在一條暗巷裡，他必須把鑰匙找出來才能回家。可是他卻跑到隔壁一條明亮的巷子裡面一直找。路人看到了就問，你鑰匙不是掉在隔壁巷子嗎？怎麼跑來這邊找？那人卻回答他：因為這條巷子比較亮啊！</p>
<p>這個故事就說明了，當 project 失敗之後，很多人常常在技術層面探討原因的所在，但是大部分的問題都是發生在技術面嗎？</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/97/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world</title>
		<link>http://lcr.old-castle.org/archives/96</link>
		<comments>http://lcr.old-castle.org/archives/96#comments</comments>
		<pubDate>Fri, 30 Jun 2006 01:16:38 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=96</guid>
		<description><![CDATA[The Evolution of a Programmer: http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html 你會寫 &#8220;Hellow world&#8221; 嗎? 算是一篇有趣的文章, Chief Executive 真是太貼切了 XD]]></description>
			<content:encoded><![CDATA[<p>The Evolution of a Programmer:<br />
<a href="http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html">http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html</a></p>
<p>你會寫 &#8220;Hellow world&#8221; 嗎?</p>
<p>算是一篇有趣的文章, Chief Executive 真是太貼切了 XD</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/96/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Browser Sync v.s. &#8220;51: Request Timeout&#8221;</title>
		<link>http://lcr.old-castle.org/archives/93</link>
		<comments>http://lcr.old-castle.org/archives/93#comments</comments>
		<pubDate>Tue, 13 Jun 2006 01:36:00 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=93</guid>
		<description><![CDATA[Google 最近又出了新玩具: Google Browser Sync 1.0.0 應該已經不少人玩過了, 他目前只適用於 Firefox 1.5+. 但是名子取成 &#8220;Browser Sync&#8221;, 是不是代表他以後會支援其他 Browser 呢? 要不然就乾脆取 &#8220;GooFox Sync&#8221;, &#8220;FireGoo&#8221; 或 &#8220;GoX Sync&#8221; 就好了 XD.. 總之, 他現在只有發布 FireFox 的 extension 版本而已. GBS 可以同步的項目有五個, 並且可以設定要不要加密: 在安裝完第一次執行的時候, 等你 setup 完帳號資訊, 他會執行第一次的同步, 會花掉好幾分鐘的時間. 但是應該會有不少人會遇到一個問題, 就是他到最後的 &#8220;Updating&#8230;&#8221; 時, 跑了很久候居然給你跳出 &#8220;51: Request Timeout&#8221;. 至少我試了兩台 WinXP Desktop 都發生這個問題, 完全作動不能啊啊啊啊啊~~~ 後來才發現, 他 [...]]]></description>
			<content:encoded><![CDATA[<p>Google 最近又出了新玩具: Google Browser Sync 1.0.0<br />
應該已經不少人玩過了, 他目前只適用於 Firefox 1.5+. 但是名子取成 &#8220;Browser Sync&#8221;, 是不是代表他以後會支援其他 Browser 呢? 要不然就乾脆取 &#8220;GooFox Sync&#8221;, &#8220;FireGoo&#8221; 或 &#8220;GoX Sync&#8221; 就好了 XD..  總之, 他現在只有發布 FireFox 的 extension 版本而已.</p>
<p>GBS 可以同步的項目有五個, 並且可以設定要不要加密:<br />
<a href="http://www.flickr.com/photos/lcr/166105058/" title="Photo Sharing"><img src="http://static.flickr.com/50/166105058_befab8b03d_o.jpg" width="382" height="148" alt="Google.Browser.Sync" /></a></p>
<p>在安裝完第一次執行的時候, 等你 setup 完帳號資訊, 他會執行第一次的同步, 會花掉好幾分鐘的時間. 但是應該會有不少人會遇到一個問題, 就是他到最後的 &#8220;Updating&#8230;&#8221;  時, 跑了很久候居然給你跳出 &#8220;51: Request Timeout&#8221;. 至少我試了兩台 WinXP Desktop 都發生這個問題, 完全作動不能啊啊啊啊啊~~~</p>
<p>後來才發現, 他 Updating 到 google server 的時候速度非常之慢 (跟其他 google services 比起來), 然後它在 extension 內是把 update timeout 寫死成 60000ms (60 seconds), 所以如果你的資料量大的話, 還沒傳完就 timeout 了 XD (這算 bug 嗎?)<br />
<span id="more-93"></span><br />
解決的方法就是手動把 timeout 時間調久一點, 檔案在:<br />
<code>Documents and Settings\\&lt;username&gt;\\Application Data\\<br />
Mozilla\\Firefox\\Profiles\\XXXXXXXX.default\\extensions\\<br />
browserstate@google.com\\lib\\browserstate.js</code><br />
在裡面搜尋 <strong>CLB_Updater.UPDATE_TIMEOUT=60000</strong> 這個字串, 然後把 60000 改成你要的數值就好了, 單位是 ms (千分之一秒). 我是直接把他加兩個 0 XD.. 改了之後 Updating 就成功了, 至少我兩台機器的問題都解決了, 最後其實 Updating 花的時間也不多, 應該也不到兩分鐘吧.</p>
<p>另外 GBS 同步的時機好像是在 Firefox 開啟跟關閉的時候, 會跟伺服器同步. 並且有像 Tab Mix Plus 的一個功能, 就是你下次開啟時他會問你要不要回復之前開啟的分頁們. 但是差別是 GBS 可以跨機器. 就像你再學校或公司開了五六個分頁, 最後一起關掉候回家, 在家裡打開 Firefox 之後還是可以恢復在公司開的那幾個分頁, 而且 cookies 等等都活的好好的&#8230;</p>
<p>我本來想試試看兩台機器同時開 Firefox with GBS, 看能不能強到可以即時同步 (例如 A 狐狸加了一個 bookmark, B 狐狸馬上出現?), 後來發現一個 GBS account 同時只能有一個 Firefox 登入, 另外一隻會被踢掉 (disconnect) XD.. 而且當一個尚未經過同步的電腦使用這個帳號登入後, 第一次安裝當然會花個好幾分鐘在同步, 不過其他之前已經安裝過的電腦, 下次開啟候也必須花好幾分鐘去同步 XDXD (可能是我的資料太多, 他同步好久 Orz), 似乎有點麻煩&#8230;</p>
<p>然後我又試了一種組合: A電腦 &#038; B電腦 之前就使用 Foxmarks 同步過了, 然後關掉 Foxmarks 之後各加入一個新書籤 (所以目前是不同步的狀態). 然後 A 安裝 GBS, 同步之關閉 Firefox. 這時候換 B 打開 Firefox 候並安裝 GBS, 然後進行同步之後, A, B 的書籤是有同步啦, 不過我發現 B 上後來新加的書籤消失了! 只剩加增在 A 電腦的書籤 Orz&#8230;.</p>
<p>總之綜合用下來, 我是覺得 Google Browser Sync 太 &#8220;自動化&#8221; 了, 而且我目前的需求只有要同步書籤而已, 所以我決定繼續愛用 Foxmarks, Foxmarks 真的很好用, 在有些情況下他還可以讓你選擇你需要以哪台機器為主進行同步, 感覺不錯 :P</p>
<p>BTW, google 擁有的使用者資訊越來越多了, 這又代表了什麼?</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/93/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Fold n\&#8217; Drop</title>
		<link>http://lcr.old-castle.org/archives/92</link>
		<comments>http://lcr.old-castle.org/archives/92#comments</comments>
		<pubDate>Mon, 12 Jun 2006 07:13:51 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>
		<category><![CDATA[What's it?]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=92</guid>
		<description><![CDATA[想想當桌上有一堆文件疊在一起, 而你要找關於某某的資料的時候, 你會怎麼辦? 應該是一張一張翻, 然後找到你要的文件吧? 繼之前曾經介紹過 Sun 的 Project Looking Glass 這東西之後, 今天看到另一個玩弄視窗的東西: The Fold n\&#8217; Drop. 這個東西目前還在原型實驗階段, 不過在那邊翻視窗感覺也是種好玩的操作方式, 他有個影片的 demo, 也有個 Java 的 Demo. 不像 Project Looking Glass 那樣你只能看不能玩, The Fold n\&#8217; Drop 提供了真的 demo 給你用用看 (但是是假視窗啦). 可以感受一下那種操作的方式, 不知道未來的電腦介面到底會變成怎樣? The Fold n\&#8217; Drop: The Fold n\&#8217; Drop. Update: 這邊有個可以實際在 WinXP 跑的 prototype version: OriMado, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/lcr/165534736/" title="Photo Sharing"><img src="http://static.flickr.com/65/165534736_7d9ab093a3_m.jpg" width="240" height="227" alt="the.fold.n.drop" /></a></p>
<p>想想當桌上有一堆文件疊在一起, 而你要找關於某某的資料的時候, 你會怎麼辦? 應該是一張一張翻, 然後找到你要的文件吧?</p>
<p>繼之前<a href="http://lcr.old-castle.org/?p=19">曾經介紹過</a> Sun 的 Project Looking Glass 這東西之後, 今天看到另一個玩弄視窗的東西: <a href="http://liihs.irit.fr/dragice/foldndrop/">The Fold n\&#8217; Drop.</a></p>
<p>這個東西目前還在原型實驗階段, 不過在那邊翻視窗感覺也是種好玩的操作方式, 他有個影片的 demo, 也有個 Java 的 Demo. 不像 Project Looking Glass 那樣你只能看不能玩, The Fold n\&#8217; Drop 提供了真的 demo 給你用用看 (但是是假視窗啦). 可以感受一下那種操作的方式, 不知道未來的電腦介面到底會變成怎樣?</p>
<p>The Fold n\&#8217; Drop: <a href="http://liihs.irit.fr/dragice/foldndrop/">The Fold n\&#8217; Drop.</a></p>
<p>Update: 這邊有個可以實際在 WinXP 跑的 prototype version: <a href="http://www.kmonos.net/lib/orimado.en.html">OriMado</a>, 但是功能有點簡陋, 效果沒有很好, 但是還是可以玩玩看 :P</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/92/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小心! M$ 就在你身邊!</title>
		<link>http://lcr.old-castle.org/archives/83</link>
		<comments>http://lcr.old-castle.org/archives/83#comments</comments>
		<pubDate>Tue, 21 Feb 2006 05:02:07 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>
		<category><![CDATA[Life, Life, Life]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=83</guid>
		<description><![CDATA[你知道你身邊有多少平台是用 M$ 的嗎? 你有沒有在路上走一走忽然發現路邊某個螢幕上有熟悉的窗戶出現? 看看這個吧: http://blog.alexw.net/archives/category/0g_mspic 其實我們身邊很多東西多媒體設備都是用 M$ 的平台的, 讓我想到今年農曆過年前去大湖採草莓, 採完一時不知道要去哪邊玩, 那時只記得在 BBS 上我朋友寫過一篇大湖採完草莓有哪邊可以玩的文章, 可是一群人在那邊回想總是想不起來那篇文章寫了什麼&#8230; 那時候我們是在大湖草莓文化館旁邊的旅遊服務中心門口, 門口有一台觸碰式螢幕的旅遊導覽系統, 按了老半天裡面也沒有什麼有用的資訊, 我在那邊亂按一通的時候居然被我按出檔案總管 @__@&#124;&#124;&#124; 試了一下居然也有連上網路, 正好讓我連上去 BBS 查看看我朋友寫的那篇文章, 看哪邊可以玩 XD 其實身邊有 M$ 有時候也是有好處的 XD 不過有次我在淡水郵局的 ATM 提款機螢幕上面居然看到 M$ 的錯誤訊息&#8230; 提款機可以變成這樣, 而且還是跑 Win98 心裡真是涼了一截, 可惜沒有拍照 XD 下次再被我遇到我一定要研究看看系統裡面有沒有 &#8220;好玩&#8221; 的東西 XD 還有 7-11 剛開始全面將收銀機換成 Win2K 系統的時候, 我還遇過電腦當機結果店員弄到超不爽, 當場拿條碼器砸螢幕的事件 XD Microsoft 真是讓我們的生活增添了不少樂趣!!]]></description>
			<content:encoded><![CDATA[<p>你知道你身邊有多少平台是用 M$ 的嗎?<br />
你有沒有在路上走一走忽然發現路邊某個螢幕上有熟悉的窗戶出現?<br />
看看這個吧: <a href="http://blog.alexw.net/archives/category/0g_mspic">http://blog.alexw.net/archives/category/0g_mspic</a></p>
<p>其實我們身邊很多東西多媒體設備都是用 M$ 的平台的,<br />
讓我想到今年農曆過年前去大湖採草莓, 採完一時不知道要去哪邊玩,<br />
那時只記得在 BBS 上我朋友寫過一篇大湖採完草莓有哪邊可以玩的文章,<br />
可是一群人在那邊回想總是想不起來那篇文章寫了什麼&#8230;</p>
<p>那時候我們是在大湖草莓文化館旁邊的旅遊服務中心門口,<br />
門口有一台觸碰式螢幕的旅遊導覽系統, 按了老半天裡面也沒有什麼有用的資訊,<br />
我在那邊亂按一通的時候居然被我按出檔案總管 @__@|||</p>
<p>試了一下居然也有連上網路, 正好讓我連上去 BBS 查看看我朋友寫的那篇文章, 看哪邊可以玩 XD<br />
其實身邊有 M$ 有時候也是有好處的 XD<br />
<span id="more-83"></span><br />
<img src="http://lcr.old-castle.org/images/stra-comp1.jpg" alt="Image1" /></p>
<p><img src="http://lcr.old-castle.org/images/stra-comp2.jpg" alt="Image2" /></p>
<p>不過有次我在淡水郵局的 ATM 提款機螢幕上面居然看到 M$ 的錯誤訊息&#8230;<br />
提款機可以變成這樣, 而且還是跑 Win98 心裡真是涼了一截, 可惜沒有拍照 XD<br />
下次再被我遇到我一定要研究看看系統裡面有沒有 &#8220;好玩&#8221; 的東西 XD</p>
<p>還有 7-11 剛開始全面將收銀機換成 Win2K 系統的時候,<br />
我還遇過電腦當機結果店員弄到超不爽, 當場拿條碼器砸螢幕的事件 XD</p>
<p>Microsoft 真是讓我們的生活增添了不少樂趣!!</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/83/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDA+Wireless 應用</title>
		<link>http://lcr.old-castle.org/archives/80</link>
		<comments>http://lcr.old-castle.org/archives/80#comments</comments>
		<pubDate>Mon, 24 Oct 2005 05:42:38 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>
		<category><![CDATA[Life, Life, Life]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=80</guid>
		<description><![CDATA[麥當勞大家一定都吃過, 麥當勞叔叔大家也一定都認識. 所以一定會有遇到點餐的時候麥當勞大排長龍的時候&#8230; 雖然說這兩行沒有什麼關聯, 但是故事就是從這裡開始 :P 印象中以前人爆炸多的時候, 都會有麥當勞的員工在隊伍後面幫你點餐, 然後會勾在在一張點餐單上面, 等你排到櫃台的時候只要把點餐單給他, 這樣他就可以看餐單快速的 keyin, 加速大家點餐的速度&#8230; 上個週末去吃了好久沒吃過的麥當勞, 而且是去中午的台北館前店&#8230; 想當然那種時段一定瘋狂爆滿, 一堆兩隻腳的動物塞滿整間館麥&#8230; 正當我在允長的櫃台點餐隊伍後面的時候, 有個工讀生跑過來說要先點餐, 結果我發現他們已經不在是用舊式的點餐單了, 現在是用一台 PDA, 然後輸入你要點的東西, 之後會有個點餐序號, 當你點好之後, 他會用小條的隨意貼, 把點餐序號寫在上面給你&#8230; 等輪到你到櫃台的時候就把序號給他, 他只要把序號 keyin 就可以知道你的菜單並幫你備餐&#8230; 這種應用其實也不會很稀奇, 之前也幫過朋友作他的大學專題, 也是用 PDA + Wireless 作居家安全監測之類的動作&#8230; 還有大學學弟也有作 PDA + Wireless + GPS 的盲胞導航系統等等.. 但是之前看到的大部分都是在 LAB 內部實驗階段, 真正看到外面的商家有在做大規模的實際應用還是算頭一次吧! 其實 PDA + Wireless 是很有潛力的東西, 而且以後餐廳搞不好就沒有紙菜單這種東西了 [...]]]></description>
			<content:encoded><![CDATA[<p>麥當勞大家一定都吃過, 麥當勞叔叔大家也一定都認識.<br />
所以一定會有遇到點餐的時候麥當勞大排長龍的時候&#8230;<br />
雖然說這兩行沒有什麼關聯, 但是故事就是從這裡開始 :P</p>
<p>印象中以前人爆炸多的時候, 都會有麥當勞的員工在隊伍後面幫你點餐,<br />
然後會勾在在一張點餐單上面, 等你排到櫃台的時候只要把點餐單給他,<br />
這樣他就可以看餐單快速的 keyin, 加速大家點餐的速度&#8230;</p>
<p>上個週末去吃了好久沒吃過的麥當勞, 而且是去中午的台北館前店&#8230;<br />
想當然那種時段一定瘋狂爆滿, 一堆兩隻腳的動物塞滿整間館麥&#8230;</p>
<p>正當我在允長的櫃台點餐隊伍後面的時候,<br />
有個工讀生跑過來說要先點餐, 結果我發現他們已經不在是用舊式的點餐單了,<br />
現在是用一台 PDA, 然後輸入你要點的東西, 之後會有個點餐序號,<br />
當你點好之後, 他會用小條的隨意貼, 把點餐序號寫在上面給你&#8230;<br />
等輪到你到櫃台的時候就把序號給他,<br />
他只要把序號 keyin 就可以知道你的菜單並幫你備餐&#8230;</p>
<p>這種應用其實也不會很稀奇, 之前也幫過朋友作他的大學專題,<br />
也是用 PDA + Wireless 作居家安全監測之類的動作&#8230;<br />
還有大學學弟也有作 PDA + Wireless + GPS 的盲胞導航系統等等..<br />
但是之前看到的大部分都是在 LAB 內部實驗階段,<br />
真正看到外面的商家有在做大規模的實際應用還是算頭一次吧!</p>
<p>其實 PDA + Wireless 是很有潛力的東西,<br />
而且以後餐廳搞不好就沒有紙菜單這種東西了 :P</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/80/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>新酷音輸入法</title>
		<link>http://lcr.old-castle.org/archives/79</link>
		<comments>http://lcr.old-castle.org/archives/79#comments</comments>
		<pubDate>Tue, 18 Oct 2005 07:47:28 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=79</guid>
		<description><![CDATA[使用 Windows 的人, 如果用注音輸入法的話大部分的人還是使用微軟內建的微軟新注音. 可是不管你是用 IME2003 還是 IME2004 還是什麼 IMExxxx, 有時候都有個鳥蛋的問題: 就是有時候常用的字忽然跑到候選自的最後一個去了 =_= 如果跑到最後一個去那還好, 很容易可以就跳到最後面找到那個字, 但是更鳥的是有時候卻給你藏好幾頁的候選自中間, 讓你找到眼睛脫窗!! 最後就會發現中打速度瞬間剩下 10字/s 不到 XD 我是沒有看到有人有提到完美的解決方法, 我之前解決的方法是跑去新注音設定那邊, 把自動學習的資料刪掉, 他就會恢復正常了. 但是過了一段時間還是會舊傷復發&#8230; 實在是很 ooxx&#8230; 所以最根本的方式就是不要用微軟新注音, 像很多人就改用自然輸入法,但是我試用了一下自然輸入法, 還真的很難習慣, 所以還是繼續用智障的 MS-IME&#8230; 但是最近看到一個叫做『酷音輸入法』的東西, 弄下來用了之後發現還不來, 軟體小效率高, 而且打字的習慣很接近微軟新注音, 比較可以無痛轉移, 缺點只是介面有點簡單, 但是基本該有的東西都有了, 加上又是 open source, 如果有什麼鬼點子也可以自己加上去玩玩&#8230;在他的軟體首頁上看到軟體簡介:『最早的酷音輸入法是龔律全與陳康本兩人的資訊專題』,這兩個人名子還真是耳熟阿&#8230; 不過他最大的貢獻當然不是 Windows 上的中文輸入法啦, 有興趣的可以直接去他的網頁上研究 :P 軟體首頁: http://chewing.csie.net/index.html下載: http://chewing.csie.net/download.html]]></description>
			<content:encoded><![CDATA[<p>
使用 Windows 的人, 如果用注音輸入法的話大部分的人還是使用微軟內建的微軟新注音.<br />
可是不管你是用 IME2003 還是 IME2004 還是什麼 IMExxxx, <br />
有時候都有個鳥蛋的問題: 就是有時候常用的字忽然跑到候選自的最後一個去了 =_=<br />
如果跑到最後一個去那還好, 很容易可以就跳到最後面找到那個字,<br />
但是更鳥的是有時候卻給你藏好幾頁的候選自中間, 讓你找到眼睛脫窗!!<br />
最後就會發現中打速度瞬間剩下 10字/s 不到 XD </p>
<p>
我是沒有看到有人有提到完美的解決方法,<br />
<br />我之前解決的方法是跑去新注音設定那邊, 把自動學習的資料刪掉, 他就會恢復正常了.<br />
但是過了一段時間還是會舊傷復發&#8230; 實在是很 ooxx&#8230; </p>
<p>所以最根本的方式就是不要用微軟新注音, 像很多人就改用自然輸入法,<br />但是我試用了一下自然輸入法, 還真的很難習慣, 所以還是繼續用智障的 MS-IME&#8230; </p>
<p>但是最近看到一個叫做『酷音輸入法』的東西, <br />弄下來用了之後發現還不來, 軟體小效率高, 而且打字的習慣很接近微軟新注音, <br />比較可以無痛轉移, 缺點只是介面有點簡單, 但是基本該有的東西都有了, <br />加上又是 open source, 如果有什麼鬼點子也可以自己加上去玩玩&#8230;<br />在他的<a href="http://chewing.csie.net/index.html">軟體首頁</a>上看到軟體簡介:『最早的<a href="http://chewing.good-man.org/">酷音輸入法</a>是<a href="http://www.csie.ntu.edu.tw/~b6506053/">龔律全</a>與<a href="https://webspace.utexas.edu/~jkchen">陳康本</a>兩人的資訊專題』,<br />這兩個人名子還真是耳熟阿&#8230; </p>
<p>不過他最大的貢獻當然不是 Windows 上的中文輸入法啦, <br />有興趣的可以直接去他的網頁上研究 :P</p>
<p>軟體首頁: <a href="http://chewing.csie.net/index.html">http://chewing.csie.net/index.html</a><br />下載: <a href="http://chewing.csie.net/download.html">http://chewing.csie.net/download.html</a> </p</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/79/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hacking 日記</title>
		<link>http://lcr.old-castle.org/archives/76</link>
		<comments>http://lcr.old-castle.org/archives/76#comments</comments>
		<pubDate>Tue, 14 Jun 2005 07:59:48 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>
		<category><![CDATA[UNIX, FreeBSD]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=76</guid>
		<description><![CDATA[我好像從來沒有分享過 hack 機器的經驗&#8230; 最近碰巧遇到一台機器, 有感而發來寫篇文章分享一些東西. 分享的東西不是說如何去 hack 一台機器, 而是要如何保護好自己&#8230; 喔喔 sorry, 這句話講的好像有點太偉大了, 這篇不是一個深入探討系統攻防的文章, 高手不用抱太大的期望 :) 我很少去玩 Windows 的機器, 因為我覺得 UNIX 的機器比較有挑戰性也比較有趣, 不過這次恰好遇到一台 Windows 的機器, 閒來無事看到有機可趁就把他幹掉了&#8230; 很多人都知道使用 Windows 系統要定期做 Windows Update, 要裝防毒軟體, 外加定期更新他的的病毒碼, 不要執行來路不明的程式, 要開防火牆, 要裝 SP2(?), 不要用 IE(?), 不要用 Outlook(?)&#8230; 這樣才你的系統不會沒事就被幹掉. 但是在 Internet 流行的現代, 要架設一台伺服器出來實在是太簡單了, 尤其是在 Windows 上, 就算對伺服器完全不懂的人也只要隨便抓個伺服器軟體, 一直按下一步下一步下一步, 馬上就可以建立一個對外的服務&#8230; 但是對於這種對伺服器一知半解的人, 胡亂設定一通所架設出來的東西, 往往也幫自己的系統開了一個很大的洞. 在做 [...]]]></description>
			<content:encoded><![CDATA[<p>我好像從來沒有分享過 hack 機器的經驗&#8230;<br />
最近碰巧遇到一台機器, 有感而發來寫篇文章分享一些東西.<br />
分享的東西不是說如何去 hack 一台機器, 而是要如何保護好自己&#8230;<br />
喔喔 sorry, 這句話講的好像有點太偉大了,<br />
這篇不是一個深入探討系統攻防的文章, 高手不用抱太大的期望 :)<br />
<span id="more-76"></span><br />
我很少去玩 Windows 的機器, 因為我覺得 UNIX 的機器比較有挑戰性也比較有趣,<br />
不過這次恰好遇到一台 Windows 的機器, 閒來無事看到有機可趁就把他幹掉了&#8230;</p>
<p>很多人都知道使用 Windows 系統要定期做 Windows Update,<br />
要裝防毒軟體, 外加定期更新他的的病毒碼, 不要執行來路不明的程式,<br />
要開防火牆, 要裝 SP2(?), 不要用 IE(?), 不要用 Outlook(?)&#8230;<br />
這樣才你的系統不會沒事就被幹掉.</p>
<p>但是在 Internet 流行的現代, 要架設一台伺服器出來實在是太簡單了,<br />
尤其是在 Windows 上, 就算對伺服器完全不懂的人也只要隨便抓個伺服器軟體,<br />
一直按下一步下一步下一步, 馬上就可以建立一個對外的服務&#8230;<br />
但是對於這種對伺服器一知半解的人, 胡亂設定一通所架設出來的東西,<br />
往往也幫自己的系統開了一個很大的洞.<br />
在做 network security 實務的人, 也對這樣的現象感到很頭痛.<br />
尤其是這個現象現在在網路上真的越來越普遍.</p>
<p>這次舉的例子就是一個眾所皆知, 被廣泛使用的 FTP 伺服器軟體: Serv-U.<br />
這個軟體可以讓你很容易的建立一個 FTP 伺服器, 分享軟體給其他人.</p>
<p>事情就發生在某天有個 FTP command packet 經過我家網路卡的洞口,<br />
這時候我在洞口剛好看到這個 command packet 從我家門口經過,<br />
也剛好上面寫了一組 username &#038; password&#8230;.</p>
<p>這邊先告訴我們一個教訓, 一般 FTP 預設所有的資訊都是不加密不編碼的.<br />
所以重要資料要傳輸的時候請用 sftp 或用支援 SSL/TLS 的 FTP 伺服器,<br />
所以想要架設 FTP 伺服器的人最好要考慮好自己的需求及開放的程度.</p>
<p>觀察也發現這個 FTP 連線的流量很大, 想說上面應該有好東西, 所以就上去看看&#8230;<br />
GOOD! 超過 800G 的容量, 雖然說不是非常長更新, 但是東西還不少.<br />
後來在目錄裡切來切去的時候發現居然切回 C:/ 的目錄 &#8230;</p>
<p>這邊又要告訴我們, 使用 FTP 伺服器的虛擬目錄功能時, 要仔細設好目錄的權限,<br />
最好能把該 user 鎖定在 FTP 的根目錄中, 不要讓他能逛到系統的檔案區.</p>
<p>ok, 居然切到 C:/ 之後, 手指就不自覺得想建立一個目錄試看看,<br />
目的在於試試看 C:/ 是不是 Read-Only&#8230;. &#8220;Premission denied.&#8221;<br />
好險他的系統目錄是 Read-Only, 要不然這人就真的是大白痴了.<br />
不過還是可以在系統目錄裡面逛逛看有沒有什麼好東西可以紀念一下..<br />
就想說去看看他 FTP 伺服器的 user config file 好了,<br />
當然就很順利的抓到 serv-u.ini , 裡面有所有的 ftp account 資訊.<br />
好險 serv-u 裡面的 user password 是用 one-way encryption 編碼過的,<br />
要不然他可慘了.</p>
<p>這邊有個例子, 在看解碼器的時候都是強調要先拿到 shadow password file.<br />
有人就問過我, 讀不到 shadow password file 要怎麼拿去給解碼器解碼?<br />
如果拿到 shadow password file 就代表拿到 root 權限了, 那幹麻還要解碼?<br />
這也一個有 shadow passwd file 但是沒有完整權限的例子 (好像有點爛?)</p>
<p>不過對於跑解碼去解那些編碼過的 serv-u 的密碼我可一點興趣也沒有,<br />
一來要花時間去解碼, 二來可能會解不出來, 三來解出這些密碼也沒啥用.<br />
頂多是看看裡面有哪些 account, 大致上有什麼權限等等&#8230;<br />
然後也注意到有些 user 是有完整的讀寫權限的, 不過我還是懶的去解那些人的密碼.<br />
但是當我看到我正在用的這個 account 的資訊時, 發現了一個很好玩的事.<br />
這個 account 除了 READ(讀取檔案), LIST(目錄列表) 權限之外,<br />
居然還有 APPEND(檔案附加) 的權限 ??</p>
<p>APPEND 權限乍看之下並沒有太大的用途, 但是可以想想他的作用..<br />
他可以在任何一個檔案後面附加資訊進去, 這跟 WRITE 權限已經沒有多大的分別了!<br />
你有想到要如何利用這個權限來取得機器完整的控制權嗎?<br />
我的作法是, 我可以新增一個 ftp account 在 serv-u.ini 裡面,<br />
也就是新增一個 FTP 帳號, 並且給予這個 user 完整的存取權限!!<br />
作法就是先把原本的 serv-u.ini 抓下來, 然後在後面加上一個新的 user account,<br />
然後在利用 FTP續傳 的功能把改過的 serv-u.ini 傳上去 (使用到了 APPEND 權限),<br />
這樣新增的 user account 就會進去了&#8230;</p>
<p>然後用新建的 ftp account 去登入 FTP 伺服器&#8230; Logged in !<br />
這時候我們可以在利用 Serv-u 的特殊指令: site exec , 在 FTP 伺服器端執行任何指令.<br />
而且執行的視窗也不會在 console 上跳出來, 這根本就是為 hacker 設計的嘛 XD<br />
(這個 ftp account 必須具有 EXEC 權限)</p>
<p>不過這樣還不夠, 我們先建立一個批次檔, 傳到伺服器的硬碟上, 並且透過 serv-u 去執行他:<br />
qprocess > process<br />
net user > users<br />
net config server > config.server<br />
net config workstation > config.workstation<br />
net statistics server > stat.server<br />
net statistics workstation > stat.workstation<br />
quser > quser<br />
這些命令無聊的人可以在自己的 windows 上執行看看,<br />
他只是列出一堆系統的資訊, 並不會造成任何損害&#8230;<br />
好奇的人可以試試看, 執行完後會把資訊寫在一堆檔案裡面, 打開就可以看到了.</p>
<p>取得一些系統資訊後就要來想辦法真正控制整台電腦,<br />
我們可以利用的是 WinXP, Win2003 之後提供的 遠端桌面 的功能,<br />
遠端桌面對一般 user 來說是很棒的電腦遙控工具, 對 hacker 來說是一個很漂亮的大門&#8230;<br />
想要用遠端桌面登入對方的電腦, 必須有 Windows 的 account &#038; passwd (不是 serv-u 的),<br />
並且該 user 要被設定成可以由遠端桌面登入 (或是該 user 屬於 Administrators 群組)</p>
<p>在這邊我們並不知道這台電腦的系統帳號跟密碼, 那要怎麼辦?<br />
那還不簡單, 幫他建一個就好啦! 一樣透過 Serv-u 執行這些命令:<br />
net user hihi 12344321 /add<br />
net localgroup administators hihi /add<br />
這樣我們就有一個 hihi 的 user, 密碼是 12344321<br />
這時侯還要確認看看對方的 3389 port 有沒有打開, 現在很多人都會使用使用遠端桌面的功能,<br />
所以大部分都是開的, 如果沒開的話就幫他把遠端桌面的服務啟動就好了&#8230;</p>
<p>這邊我們也學到一個東西, Windows 的 port 3389 就像 UNIX 的 port 22 一樣,<br />
是個讓 Hacker 很方便進來的大門, 很容易讓人很方便的完全控制你的系統.<br />
在 UNIX 底下比較嚴謹機器都會把 port 22 擋掉, 只開幾個信任的 IP 可以連接&#8230;<br />
相同的在 Windows 底下也是一樣, 可以的話也盡量能限制能連接 port 3389 的 IP &#8230;</p>
<p>這時候我們使用 hihi 透過遠端桌面連接對方的電腦, 已經是能控制對方系統的極限了.<br />
但是要注意的是, 要清除所遺留下來的 logs&#8230; 這邊就不多說了.<br />
還有就是遠端桌面登入的時候會造成 console 的 user 被 logout (for WinXP),<br />
所以不想被發現的話可以改用 VNC, UltraVNC, PCAnywhere 這類的東西&#8230;</p>
<p>時代在進步, 用來越多方便 user 使用的工具一直被發展出來, 架設伺服器的門檻也越來越低,<br />
相對的, 讓 Hacker 能進入的縫也越來越多.<br />
在這種網路的時代, Netowrk security 的概念是一個必學的課程&#8230;</p>
<p>以前曾經有個 Hacker 說過:<br />
&#8220;如果網路掌握未來人類的生活, 那我就是未來之神&#8221;<br />
現在網路已經快要掌握未來人類的生活了, 未來之神不知道會有幾百萬個&#8230;&#8230;.<br />
(當然啦, 我還不在裡面)</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/76/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>MSN 寶石方塊五千萬分?</title>
		<link>http://lcr.old-castle.org/archives/71</link>
		<comments>http://lcr.old-castle.org/archives/71#comments</comments>
		<pubDate>Sun, 05 Jun 2005 10:20:38 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=71</guid>
		<description><![CDATA[MSN 寶石方塊自走機是我在兩年前, MSN 寶石方塊 Game 剛出來不久的時候寫的. 那時候寶石方塊剛出來的時候, 真的是一天到晚都在玩這東西, 不過玩久了之後也會累, 所以那時候就想說要來寫一個自動玩的程式&#8230; 當初有很多朋友ㄧ起在拼寶石方塊, 大家都會在比誰誰誰創了最高紀錄, 我在玩了一陣子之後寫了這個自動玩的程式, 跑出了一個完全不可能的分數&#8230; 後來很多人就不玩了~~ 因為是人都不可能超越的 XD 而且之後似乎分數太離譜, 以至於我寶石方塊所有的戰績都被 MSN 官方砍掉了 XD (X咧~~連我之前正常玩了幾百盤的紀錄都不見了..) 後來我不爽又去跑一次, 再弄一個超高的分數上榜, 結果沒過多久又被砍掉了 @@&#124;&#124; 然後有一陣子沒有再去玩寶石方塊了, 最近因為在寫MSN 踩地雷的程式又想到它, 所以就拿出來玩一下.. MSN 的寶石方塊有兩種遊戲模式: 一種是不限時間, 但是玩到沒有方塊可以移的時候就 Game over&#8230; 另一種是有時間倒數, 當時間倒數到底就會 Game over, 可是玩到沒方塊可以移的時候他會清空給你一盤新的繼續玩&#8230; 但是時間倒數的速度會隨著遊戲的等級越高而越來越快, 到後面得要把方塊消快一點時間才會增加&#8230;所以到後面很容易 timeout 而 Game Over. 後來我發現的是, 要玩不限時間的方式又要玩到高分有點困難, 因為棋盤要都有路可走, 除了好的移動方式之外, 還要靠運氣! 一般來講玩這種模式的話分數都有個瓶頸, 很容易就莫名奇妙沒得移動而死掉.. [...]]]></description>
			<content:encoded><![CDATA[<p>MSN 寶石方塊自走機是我在兩年前, MSN 寶石方塊 Game 剛出來不久的時候寫的.<br />
那時候寶石方塊剛出來的時候, 真的是一天到晚都在玩這東西,<br />
不過玩久了之後也會累, 所以那時候就想說要來寫一個自動玩的程式&#8230;</p>
<p>當初有很多朋友ㄧ起在拼寶石方塊, 大家都會在比誰誰誰創了最高紀錄,<br />
我在玩了一陣子之後寫了這個自動玩的程式, 跑出了一個完全不可能的分數&#8230;<br />
後來很多人就不玩了~~ 因為是人都不可能超越的 XD<br />
而且之後似乎分數太離譜, 以至於我寶石方塊所有的戰績都被 MSN 官方砍掉了 XD<br />
(X咧~~連我之前正常玩了幾百盤的紀錄都不見了..)<br />
後來我不爽又去跑一次, 再弄一個超高的分數上榜, 結果沒過多久又被砍掉了 @@||<br />
然後有一陣子沒有再去玩寶石方塊了,<br />
最近因為在寫<a href="http://lcr.old-castle.org/?p=67">MSN 踩地雷的程式</a>又想到它, 所以就拿出來玩一下..<br />
<span id="more-71"></span><br />
MSN 的寶石方塊有兩種遊戲模式:<br />
一種是不限時間, 但是玩到沒有方塊可以移的時候就 Game over&#8230;<br />
另一種是有時間倒數, 當時間倒數到底就會 Game over,<br />
可是玩到沒方塊可以移的時候他會清空給你一盤新的繼續玩&#8230;<br />
但是時間倒數的速度會隨著遊戲的等級越高而越來越快,<br />
到後面得要把方塊消快一點時間才會增加&#8230;所以到後面很容易 timeout 而 Game Over.</p>
<p>後來我發現的是, 要玩不限時間的方式又要玩到高分有點困難,<br />
因為棋盤要都有路可走, 除了好的移動方式之外, 還要靠運氣!<br />
一般來講玩這種模式的話分數都有個瓶頸, 很容易就莫名奇妙沒得移動而死掉..<br />
而且要設計好一點的演算法讓他一直有路的話需要花比較多心血,<br />
加上計算的時間也會比較長, 所以我不用這個模式去跑&#8230;</p>
<p>所以我採用的是第二種模式, 也就是限時間但是不用擔心沒有方塊可以移的模式.<br />
反正電腦的運算速度就是快, 所以我不怕他時間倒數,<br />
而且在分析移動方式的時候也不用一定要最佳解, 只要較好的解的就可以了,<br />
反正沒得移的時候他會給你一盤新的 XD</p>
<p>我這邊也沒有用什麼精心設計的 AI 去玩它, 我只是用簡單的分析法則:<br />
對於每個可移動的方式 (移動後會造成消去) 給予一個 bound, bound 的計算方式為:<br />
(1).<br />
bound1 為此進行此移動後可造成的棋盤最大「可消去連接」的方塊數,<br />
這可能是橫向也可能是縱向, 若有橫向跟縱向的組合, 例如十字型或 L 型的連接,<br />
則此 bound1 為縱向消去方塊去和橫向消去方塊數相加.<br />
(2).<br />
經過此移動, 可消去方塊消掉後, 計算消去的位置上面的方塊掉下來後的棋盤,<br />
未知的部份 (也就是上方補進來的新方塊) 假設為沒有方塊,<br />
然後把這個棋盤進行步驟 (1) 的計算, 並把 bound 乘兩倍後成為 bound2.<br />
最後此移動得到的 bound 值為 bound1+bound2.<br />
也就是多計算一層連鎖消去, 連鎖消去的方塊 bound 值會乘兩倍, 所以連鎖越多值越高.<br />
(3).<br />
並且在所有可移動方式中, 依照下面的項目找出最大值的來移動 (若相同則比較下一項):<br />
a. bound (bound1+bound2).<br />
b.連鎖消去後, 最後 stable 棋盤中可移動的數目.<br />
c. 連鎖消去後, 最後 stable 棋盤中「兩個同色方塊連接在一起」的組數.</p>
<p>我會只算一層連鎖的關係是因為經過了一層連鎖之後,<br />
棋盤內剩下確定的方塊差不多會只剩一半了, 其他都是後來上面補進來的方塊,<br />
這些補進來的方塊我們沒辦法知道他是什麼顏色的, 所以多算太多應該也沒什麼用.</p>
<p>用程式抓取螢幕上的畫面, 分析出每個位置各是什麼顏色的方塊,<br />
在依照這些 rules 去計算要怎移動棋盤中的方塊, 結果就成為寶石方塊自走機了.</p>
<p>另外我沒有設計更聰明的演算法有幾個原因:<br />
1. 因為要求速度要很快, 如果演算法複雜速度不快的話很容易就 timeout 掛掉.<br />
2. 當連鎖消去很多的時候很容易就晉級, 晉級的時候整個棋盤幾乎會被 bonus 消光,<br />
如果這時候用了複雜的演算法, 去設計「可以造成連鎖的排列方式」也只是浪費掉而已.</p>
<p>下面有一些在玩的過程中的影片 (使用 DivX 格式壓縮):</p>
<p><a href="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_1.avi">Diamond.DivX.15fps_1.avi</a> (9,972 KB) 剛開始的時候<br />
<a href="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_2.avi">Diamond.DivX.15fps_2.avi</a> (18,976 KB) 七百萬分的時候<br />
<a href="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_3.avi">Diamond.DivX.15fps_3.avi</a> (20,512 KB)  兩千多萬分的時候</p>
<p>我前幾天測試了一下, 看程式最高能玩到多少分,<br />
結果後來跑到五千多萬分的時候我手賤不小心按到滑鼠, 結果程式變成抓不到畫面,<br />
接下來在三秒鐘內下面的時間馬上倒數到底, 然後就掛掉了 XD<br />
後來我也懶的再去跑一次, 因為這次跑到五千多萬分就跑了 12 個多小時&#8230;&#8230;.. @@||<br />
我本來還期待它的畫面會破表的 XD</p>
<p><a href="http://lcr.old-castle.org/images/diamon-1.jpg" target="_blank"><img src="http://lcr.old-castle.org/images/diamon-1_s.jpg" alt="diamon" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/71/feed</wfw:commentRss>
		<slash:comments>53</slash:comments>
<enclosure url="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_1.avi" length="9995776" type="video/x-msvideo" />
<enclosure url="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_2.avi" length="19405230" type="video/x-msvideo" />
<enclosure url="http://soul.old-castle.org/diamond/Diamond.DivX.15fps_3.avi" length="20981496" type="video/x-msvideo" />
		</item>
		<item>
		<title>Mess.be\&#8217;s MSN Games: Hacking</title>
		<link>http://lcr.old-castle.org/archives/70</link>
		<comments>http://lcr.old-castle.org/archives/70#comments</comments>
		<pubDate>Wed, 01 Jun 2005 09:57:14 +0000</pubDate>
		<dc:creator>kamaze</dc:creator>
				<category><![CDATA[Computer Technology]]></category>

		<guid isPermaLink="false">http://lcr.old-castle.org/?p=70</guid>
		<description><![CDATA[先來說說 mess.be 的 MSN Games 好了. mess.be 是一個 MSN Messenger 的資源網站, 上面有很多好東西. 它其中有一個 service 就是你裝了一個 patch 之後, 他可以提供一些額外的 MSN Games 讓你玩. 當你裝了這個 MSN Messenger Custom Games patch v.1.0.11 之後, 你就會發現 MSN 的 「遊戲」選單裡多了十幾個新的遊戲. 但是應該要兩方都有用這個 patch 才能一起玩這些多出來的 Games, 這些其中有一些 Games 是還不錯, 但是也有一些連 startup 都會有問題 XD 故事就從這邊開始了, 之前裝了這個 game patch 之後發現一個好玩的遊戲: Yahtzee! 這也算是一個很經典的骰子遊戲, 關於他的玩法我就不多介紹了, 網路上找應該有&#8230; 只是後來我在玩的時後有時候會覺得他骰出來的點數有點怪, 有時候真的很難相信自己真的有這麼好運, [...]]]></description>
			<content:encoded><![CDATA[<p>先來說說 <a href="http://mess.be/" target="_blank">mess.be</a> 的 MSN Games 好了.<br />
<a href="http://mess.be/" target="_blank">mess.be</a> 是一個 MSN Messenger 的資源網站, 上面有很多好東西.<br />
它其中有一個 service 就是你裝了一個 patch 之後, 他可以提供一些額外的 MSN Games 讓你玩.<br />
當你裝了這個 <a href="http://mess.be/pafiledb/pafiledb.php?action=download&#038;id=586" target="_blank">MSN Messenger Custom Games patch v.1.0.11</a> 之後,<br />
你就會發現 MSN 的 「遊戲」選單裡多了十幾個新的遊戲.<br />
<span id="more-70"></span><br />
<img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-menu.jpg" alt="sniffit" /></p>
<p>但是應該要兩方都有用這個 patch 才能一起玩這些多出來的 Games,<br />
這些其中有一些 Games 是還不錯, 但是也有一些連 startup 都會有問題 XD</p>
<p>故事就從這邊開始了, 之前裝了這個 game patch 之後發現一個好玩的遊戲: Yahtzee!<br />
這也算是一個很經典的骰子遊戲, 關於他的玩法我就不多介紹了, 網路上找應該有&#8230;</p>
<p><img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-main.jpg" alt="sniffit" /></p>
<p>只是後來我在玩的時後有時候會覺得他骰出來的點數有點怪,<br />
有時候真的很難相信自己真的有這麼好運, 有時候卻又覺得擲的點數真是鳥到爆炸.<br />
我就在懷疑他骰子出來的點數到底是真的亂數還是經過設計的,<br />
所以就開始去解剖他了 XD</p>
<p>有玩過 MSN Game 的人可能會發現其實 MSN Game 的視窗是一個 Web 網頁,<br />
由 Web 上下載一些 Flash &#038; JavaScript 放在裡面構成整個遊戲的架構,<br />
所以既然知道他會下載一些東西, 所以我就來看看它到底抓了啥&#8230;<br />
最快的方法就是 sniffit 自己! 我就用 Ethereal 去分析自己的 in/out packets, 後來就發現:</p>
<p><img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-sniffit.jpg" alt="sniffit" /></p>
<p>根據 sniffit 的資料, 得到完整的網址是:<br />
<a href="http://www.juegosparamessenger.com/apps/yahtzee/yahtzee.htm">http://www.juegosparamessenger.com/apps/yahtzee/yahtzee.htm</a> (請用另存新檔來看)<br />
抓來下來之後看一看, 這東西裡面是 Yahtzee! 的主要程式碼, 而且是個 JavaScript &#8230;<br />
看來 Yahtzee! 這個 Game 完全是用 JavaScript 做的, 沒有用上 Flash 之類的東西,<br />
所以 trace 起來也輕鬆簡單, 馬上就找到下面個片段:<br />
<code><br />
for(var i = 0; i < m_dices.length; i++){<br />
　var d = m_dices[i];<br />
　if (d.reroll){<br />
　　d = new dice(Math.floor(Math.random() * 6 + 1), false);</p>
<p>　　// set the image<br />
　　eval("dice" + i + ".src = \'images/dice" + d.nr + ".gif\';");</p>
<p>　　 m_dices[i] = d;<br />
　　rollCount++;<br />
　}<br />
}<br />
</code><br />
damn! 沒想到他是用真的亂數去做咧, 原來人有時候也會很賽的骰出六個一樣的點數...<br />
不過在看看這個 code, 會發現我要骰出來的點數是我自己產生, 再送給對方,<br />
也就說這個架構下對方沒辦法驗證我送過去的點數是不是真的是亂數產生的!<br />
然後邪惡的想法就開始了, 作弊作弊作弊作弊作弊作弊作弊作弊作弊作弊!!</p>
<p>首先如果要讓 source code 變成自己可以輸入想要的點數, 然後這個又是個 JavaScript,<br />
所以要讓它變成可以自己輸入點數的話非常簡單, 只要把上面的 code 改成:<br />
</code><code><br />
　d = new dice(parseInt(prompt(\'Give me a number\', Math.floor(Math.random() * 6 + 1))), false);<br />
</code><br />
GOOD! 這樣程式要擲骰子的時候就會跳出視窗問你你想要骰什麼東西出來啦!<br />
但是這邊的問題是&#8230; 要怎麼讓 Yahtzee! 在啟動的時候去吃你改過的 JavaScript?</p>
<p>這就要回到一開始提到的, 其實 MSN Game 都是透過 Web 去下載所需要的元件,<br />
而且觀察一下就會發現, 他會「偷用」IE 的 Proxy settings (因為都是用 IE Kernel 嘛).<br />
所以我這邊用了一招, 就是我放個一個假造的 HTTP Proxy Server,<br />
這個假造的 HTTP Proxy Server 會去看 client 的 request,<br />
如果他是跟你要這個 Yahtzee! 的 javascipt 的網址的時候, 就回傳假的, 也就是我們改過的 code 給他.<br />
而如果不是特定的網址的話就依照正常 HTTP Proxy 的行為, 去他要求的網站幫他抓回來傳給他.<br />
這個部份可以寫個很簡單的 Proxy Server, 或是去改一些現成 OpenSource 的 Simple Proxy Server.<br />
我的作法是去抓 <a href="http://www.security.nnov.ru/soft/3proxy/">3Proxy</a> 來改, 這個 proxy server 一些基本的功能都有,<br />
而且沒有像 squid 這麼肥大, 改起來很簡單&#8230; (其實他的 codes 還蠻醜的).</p>
<p>然後把你假的 proxy server 跑起來, 到 IE 裡面把 proxy settings 設成你假造的 porxy server,<br />
再去找一個倒楣鬼跟你玩 Yahtzee!, 哈! 果然成功了, 想擲幾點就擲幾點!</p>
<p><img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-cheat.jpg" alt="sniffit" /><br />
你想要擲幾點呢?</p>
<p><img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-cheat2.jpg" alt="sniffit" /><br />
哇哈! 五個六點, Yahtzee!!</p>
<p>這種假造 HTTP Proxy Server 的攻擊方式其實可以應用在很多地方,<br />
我後來有研究過把他套用在 MSN 的踩地雷上面, 看能不能偷到整個棋盤的狀態.<br />
不過踩地雷他用了一堆東西元件來建構整個系統: JavaScript + VBScript + Flash + ActiveX &#8230;<br />
其中 Flash 只是使用介面, 根據傳進來的棋盤來顯示, 然後傳出使用者按下的位置及是否用大炸彈,<br />
(這個裡指的棋盤就是我們看到的棋盤, 未翻開的格子不會有下面是什麼的資訊)<br />
然後 ActiveX 才是整個踩地雷的核心所在, 負責接收使用者按下的位置然後傳出要顯示的棋盤.<br />
而 JavaScript &#038; VBScript 是這些元件和 MSN 中間溝通的中介.</p>
<p>其中我們可以改的是 JavaScript, VBScript, 和 Flash &#8230;<br />
(Flash 也是可以 decompile 來改它的 Action Script 的喔!)<br />
但是對於 ActiveX 這種已經編譯成 .dll 的程式庫卻完全沒輒.<br />
 (可惜他不是用 .Net 寫的, 要不然 .Net 的程式可以 decompile)<br />
然後採地雷的主要核心都是在 minesweeper.dll 裡面, 而且未翻開的地圖資訊並不會傳出來&#8230;<br />
所以最後是殘念, 只能打開踩地雷的 Debug mode, 看看下面一堆 debug message 而已 XD</p>
<p><a href="http://lcr.old-castle.org/images/yahtzee/yahtzee-mine-debug.jpg" target="_blank"><img src="http://lcr.old-castle.org/images/yahtzee/yahtzee-mine-debug_s.jpg" alt="sniffit" /></a><br />
打開 MSN 踩地雷內建的 debug mode, 可是一點意義也沒有&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lcr.old-castle.org/archives/70/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
