<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2994017067235797430</atom:id><lastBuildDate>Wed, 25 Sep 2024 04:22:10 +0000</lastBuildDate><category>Life</category><category>Debug</category><category>Programming</category><category>Windows</category><category>cook</category><category>學習Windbg系列</category><category>Nt Insider</category><category>除錯經驗分享</category><category>Book</category><category>PE Format</category><category>Windows Kernel Driver</category><category>定位Kernel32.dll的方法</category><category>敗家</category><category>SEH</category><category>渡假</category><title>Lu Chien-Hua&#39;s Blog</title><description></description><link>http://fruitfoxlu.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-7617428544914610469</guid><pubDate>Fri, 18 Jun 2010 12:19:00 +0000</pubDate><atom:updated>2010-06-19T13:04:43.573+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><category domain="http://www.blogger.com/atom/ns#">除錯經驗分享</category><title>How to check top level unhandle exception filter by windbg</title><atom:summary type="text">Many applications use SetUnhandledExceptionFilter to catch unexpeted exception. This API let application be able to hook top-level exception handler of a process. Through it app has a chance to dump debugging information or report abnormal status before process exit. This function also be used as an anti-debugging trick: If a debugger attach to a process, top-level exception handler won’t be </atom:summary><link>http://fruitfoxlu.blogspot.com/2010/06/how-to-check-top-level-unhandle.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-752047881222545928</guid><pubDate>Sun, 28 Mar 2010 03:02:00 +0000</pubDate><atom:updated>2010-04-22T18:18:54.276+08:00</atom:updated><title>Understanding oplock and avoid sharing violation</title><atom:summary type="text">Opportunistic locking (oplock) is a cache coherence protocol. General relations between Local FSD(file system driver), Server FSD, user and filter driver can be described in the picture below :

In this sharing we are going to disscus the problem that oplock wants to solve, FILE_COMPLETE_IF_OPLOCKED flag, and different types of oplock.
  
Filter oplock was introduced on Windows 2000, it was </atom:summary><link>http://fruitfoxlu.blogspot.com/2010/03/understanding-oplock-and-avoid-sharing.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic0x3maM_78BouMMOAb3ouBhC-84dYISUxB5zgaPd5B6siPvrFN2r7RZJM2a_ty_1XqtlqrWe2qwQss-1FuVf9gai5XFUILcAu1yH4Mnvxz5Ti5gcvdXyDcwonY-P2JnZRBEMw9SS8VcQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-7167762170206487931</guid><pubDate>Fri, 19 Mar 2010 14:49:00 +0000</pubDate><atom:updated>2010-03-19T22:49:29.707+08:00</atom:updated><title>How to develop a user mode debugger under Windows / x86 platform</title><atom:summary type="text">&amp;#160;  Have you ever wonder how Visual Studio do debugging things like the picture below?     I made a slide about how to implement a debugger on Windows / x86 platform. In this sharing, we will discuss the challenge for OS to support a ring 3 debugger, the overview of Windows Ring 3 debugging, and how to implement the basic features of a debugger.   </atom:summary><link>http://fruitfoxlu.blogspot.com/2010/03/how-to-develop-user-mode-debugger-under.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPTjzRMensFwRbtH6lm_8XWo9R3nYKrJEx45nXj93HoUdE1A1QVYpyn5pDs4OZ8vMPURHzWUC2npPiCz94uziUYiUvst2JP1rhb6CMg-Ty8o0RDkpcisLbbTSmUViv5V6j_2qaAZJxiPQ/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-4266348738434947319</guid><pubDate>Fri, 04 Sep 2009 15:48:00 +0000</pubDate><atom:updated>2009-09-04T23:48:50.686+08:00</atom:updated><title>[紀錄]送明焱</title><atom:summary type="text">分開後,下次見面不知道是多久之後的事情   今晚在台北街頭的不是世界級駭客跟世界級書匠   只是兩個二十幾歲的年輕小夥子.   無話不聊,無話不聊   謝謝你,從你身上學到很多.   加油,相信你會發展的很好. :)  </atom:summary><link>http://fruitfoxlu.blogspot.com/2009/09/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-1099163759667713330</guid><pubDate>Thu, 07 May 2009 13:31:00 +0000</pubDate><atom:updated>2009-05-07T21:33:34.162+08:00</atom:updated><title>布達佩斯忙裡偷閒</title><atom:summary type="text">這個禮拜被派去匈牙利首都布達佩斯參加會議，第一次一個人跑到地球的另外一邊，出發前心情有點忐忑。台北沒有直達布達佩斯的班機，所以必須先飛香港、轉機到德國、再轉小飛機到布達佩斯。在慕尼黑的時候小緊張了一下，被海關當做偷渡客 ，不過因為匈牙利簽證天衣無縫(廢話本來就是真的) 也有回程機票，就讓我走了。哈哈！&amp;nbsp;Budapest給我的感覺有點介於台南與花蓮市之間 ，建築挺漂亮，但是現代化的程度還ok而已。物價在歐洲應該算偏低,比台北略高吧！一份麥當勞大約快兩百台幣。想要用少少的經費體驗歐洲風情，這裡算是自助不錯的選擇。抵達之後，立刻到information center換福林以及買Budapest card。我買的Budapest card是三日票，可以免費達乘大眾交通工具，多處景點也有折扣。不過如果只需要免費坐捷運跟公車，推薦更划算的One-day travel card，每人1500</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/05/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjISiuoAy508mbTMh4DRPmAcYvd764oY4deLDdQkOhObu8vsaWMCAe29wZf3capnMrqC7b2eJrxMhyH_0ybxdWkfdqyVUJZ_LDEq2USUgYO7cx3u4PUH7ZrgAkN7nL7wJwJVrYRzMq1b0s/s72-c?imgmax=800" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-5518990314713972290</guid><pubDate>Fri, 03 Apr 2009 02:06:00 +0000</pubDate><atom:updated>2009-04-03T10:06:29.237+08:00</atom:updated><title>Windows學習地圖</title><atom:summary type="text">   1.“Windows via C/C++”, “The old new thing”   2.“Windows NT 2000 Native API Reference”    3. “Windows Internals ”, “Memory management algorithm and implementation in c/c++ ”    4.“Windows Internals ”    5.“Programming the Windows Driver Model””Windows Internals ”, OSR Nt Insider&amp;#160; 6.Winddk\src\filesys\filter\sfilter,filespy ,OSR     7.Winddk\src\filesys\filter\miniFilter\passThrough, </atom:summary><link>http://fruitfoxlu.blogspot.com/2009/04/windows.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh22MxAJXsNPtqR_JmevehTbAN2mGqnzAZ1pN8MeQNZRAwUOmVLw1m5OpEDK_6EzBHFcE7GEsNBorF7WYCmcCPbr96y8twX2WIconlNFL-TNpzS8zkWQgBsb9ql9sDwPuK_27MZ-RdYW4k/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-714065318934183048</guid><pubDate>Wed, 25 Mar 2009 13:32:00 +0000</pubDate><atom:updated>2009-03-25T21:38:26.938+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><title>百聽不膩</title><atom:summary type="text">&amp;nbsp;&amp;nbsp;&amp;nbsp; 有人古典音樂可以百聽不膩，可惜我沒有那個福氣與慧根，不論如何用心欣賞都會想睡。爵士樂就好多了，尤其是Bill Evans與Thelonious Monk這兩位大師的曲子，可以一邊聽一邊思考問題、撰寫程式。 &amp;nbsp;&amp;nbsp;&amp;nbsp; 腦海中的爵士樂手的名字非常之少，能說出名字的只有這兩位。(Thelonious Monk的first name還不會念，常常以專輯名稱Solo Monk來稱呼之。)介紹這兩位大師的音樂給我的正是恩師，路德維希先生。明天是老師重要的日子，這裡以一曲輕快的I hadn&#39;t anyone till you，預祝老師一切順利 &amp;nbsp;  </atom:summary><link>http://fruitfoxlu.blogspot.com/2009/03/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-315181919443049623</guid><pubDate>Sun, 15 Mar 2009 13:03:00 +0000</pubDate><atom:updated>2009-03-15T23:06:41.379+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">Nt Insider</category><category domain="http://www.blogger.com/atom/ns#">Windows Kernel Driver</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><category domain="http://www.blogger.com/atom/ns#">除錯經驗分享</category><title>Nt Insider : 常用的Windbg技巧(3)</title><atom:summary type="text">  相關知識:Windows kernel driver,x86 knowledge, Windbg command    原文連結  技巧4:：幫助發現記憶體洩漏的中斷點：記憶體標籤(Tag)  &amp;#160;&amp;#160;&amp;#160; 在開發Windows Kernel Driver的時候，最常使用的記憶體配置的函式之一是ExAllocatePoolWithTag。此函式可以指定一個四個字的標籤(Tag)，而配置出來的記憶體便會&amp;quot;貼上&amp;quot;這個標籤。在記憶體洩漏(memory leak)的情況，此標籤就成為解決問題的重要工具！    &amp;#160;&amp;#160;&amp;#160; 不過在使用記憶體標籤功能之前，如果系統的不是Windows 2003、Vista或是更新的版本，那我們需要調整一下系統設定。下載Windbg並且安裝完成之後，此時會發現同一包裡面除了Windbg還有另一個</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/03/nt-insider-windbg3.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidWuktGMQsxJ5AysTgKkMp_e8YKulQgm5EMVjG25C3rWiN7RBUofGa9J3x6Y_hcjfDHSlAtZvRodiEksXIpJrYssrW9FC6pdSt2ZUpOLpOc66rWG8Ipc4KP06QJdIy1AXK3567GFaP37M/s72-c?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-6548799204917853370</guid><pubDate>Tue, 10 Mar 2009 16:41:00 +0000</pubDate><atom:updated>2009-03-14T12:02:08.099+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><category domain="http://www.blogger.com/atom/ns#">除錯經驗分享</category><title>除錯經驗分享(1)：EIP = 0所造成的Crash</title><atom:summary type="text">相關知識：x86架構、Compiler、Windbg指令 今天遇到一個值得分享的問題，先看一下Crash發生時候的Stack：    1:  &amp;nbsp;   2:  STACK_TEXT:     3:  WARNING: Frame IP not in any known module. Following frames may be wrong.   4:  f7a22c60 f7944029 0000ffff f7a22c7c f794407a 0x0   5:  f7a22c6c f794407a 0000ffff bb40e64e f7a22d4c BasicDriver!CheckParameterAndCallHelperFunction+0x19 [d:\XXX\basicdriver.c @ 25]   6:  f7a22c7c 805777ff 824e5cc0 </atom:summary><link>http://fruitfoxlu.blogspot.com/2009/03/1eip-0crash.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-9215478708400332349</guid><pubDate>Thu, 05 Mar 2009 23:41:00 +0000</pubDate><atom:updated>2009-03-14T12:01:03.118+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">SEH</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><category domain="http://www.blogger.com/atom/ns#">定位Kernel32.dll的方法</category><title>學習Windbg系列：定位Kernel32.dll的方法 (2)</title><atom:summary type="text">相關知識:Windows Knowledge, PE Format, Windbg command, Intel x86 knowledge        &amp;#160;&amp;#160;&amp;#160;&amp;#160; 上次我們討論過如何利用PEB定位出Kernel32.dll，這次要討論怎樣使用TEB定位的方式。本篇的內容適用於XP，其他平台的原理相通。首先打開計算機，然後使用Windbg選擇File-&amp;gt;Attach to a Process &amp;quot;附身&amp;quot;到calc.exe。所謂發文不附圖,此風不可長：          &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 建議勾選底下的&amp;quot;Noninvasive&amp;quot;。如果沒有勾選，被debug的程式將會多出一個執行緒(你是誰派來的？我是debugger派來的！ )。同時Windbg結束時，</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/03/windbgkernel32dll-2.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWgwzIyvfRKUIBS7Ts2WGDlfNEDJqO_pQ3p78thjcdw0n4OL_EBAegZHm66Y2vSw9uVYYa-XVRoHSy_CRlrVDX0-c3_v2VkiEwP4xuy8GS3Va6_jQHUTDabpKASoP-uPz__JBqvdDYLO8/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-7583060915787060893</guid><pubDate>Thu, 05 Mar 2009 00:21:00 +0000</pubDate><atom:updated>2009-03-14T12:01:40.900+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">PE Format</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><category domain="http://www.blogger.com/atom/ns#">定位Kernel32.dll的方法</category><title>學習Windbg系列：定位Kernel32.dll的方法(1)</title><atom:summary type="text">相關知識:Windows Knowledge, PE Format, Windbg command, x86 knowledge  &amp;#160;&amp;#160;&amp;#160;&amp;#160; 先定義一下問題:如何使用Windbg or KD，藉由Windows的運作法則以及PE的格式，找出一個Process載入的Kernel32.dll的位置。更進一步的推導出Kernel32.dll所export的function。     &amp;#160;&amp;#160;&amp;#160; 就拿記事本為例子吧！打開Windbg，&amp;quot;File-&amp;gt;Attach To Process&amp;quot;，挑選notepad.exe。&amp;#160; &amp;#160;&amp;#160;&amp;#160; 接著看存放在fs:[30]的PEB data。             1: 0:001&amp;gt; dd fs:[30] L1

       2</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/03/kernel32dll1.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-3923550698587559533</guid><pubDate>Sat, 28 Feb 2009 13:33:00 +0000</pubDate><atom:updated>2009-03-14T12:03:24.875+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">Nt Insider</category><category domain="http://www.blogger.com/atom/ns#">PE Format</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">Windows Kernel Driver</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><title>Nt Insider : 常用的Windbg技巧(2)</title><atom:summary type="text">相關知識: Windows知識, Windbg指令, Windows Kernel Driver, Live Debug, PE格式 , x86 assembly 原文連結 : Debugging Techniques: Take one...Give one  技巧2: 在特定驅動程式呼叫特定(外部)函式的時候中斷執行  &amp;nbsp;&amp;nbsp;&amp;nbsp; 這是一個相當實用的偵錯技巧。舉個例子，現在我們正在練習寫一支很基本的Driver，做的事情很簡單，不過只是在DriverEntry裡面用ZwCreateFile去C:底下讀個檔。但是不知怎麼了，每次讀檔都會失敗。如果想要把中斷點下在ZwCreateFile，那可以說很難達到偵錯的效果，因為這個系統函式實在是太常、太容易被呼叫了。那該怎麼用Windbg解決這件問題呢？ &amp;nbsp;&amp;nbsp;&amp;nbsp; 很幸運的，Driver的</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/02/nt-insider-windbg2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-2666833253156125511</guid><pubDate>Fri, 27 Feb 2009 15:41:00 +0000</pubDate><atom:updated>2009-03-14T12:03:54.099+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">Nt Insider</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><category domain="http://www.blogger.com/atom/ns#">學習Windbg系列</category><title>Nt Insider : 常用的Windbg技巧(1)</title><atom:summary type="text">相關知識: Windows知識, Windbg指令, Live debug, x86架構  原文 : Debugging Techniques: Take One...Give One  技巧1 : 當應用程式出問題時,對RtlNtstatusToDosError設中斷點  應用程式產生錯誤的時候,有幾個可能性     這是應用程式內部功能的bug     應用程式(直接/間接)使用Win32的API,得到了一個Error     應用程式(直接/間接)使用Win32的API,雖然沒有發生Error,但是拿到的不是預期的結果    &amp;#160;&amp;#160;&amp;#160;&amp;#160; 本文要討論的技巧適用於狀況2.當應用程式直接或間接的使用了Win32 API並且得到了一個Error,NTDLL.dll的RtlNtstatusToDosError會被呼叫,此函式負責把Kernel回傳的</atom:summary><link>http://fruitfoxlu.blogspot.com/2009/02/nt-insider-windbg1.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-8121987023789173478</guid><pubDate>Wed, 10 Dec 2008 14:49:00 +0000</pubDate><atom:updated>2008-12-10T23:01:59.055+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Debug</category><category domain="http://www.blogger.com/atom/ns#">Programming</category><title>Programmer Universalis</title><atom:summary type="text">我也以為標題打錯字了但是書裡面真的這樣寫，好像是某種拉丁文吧。  最近在讀Memory Dump Analysis Anthology書裡的一段話和心裡一直尋覓的境界非常契合：  It&#39;s very good to be able to understand and even write everythingfrom GUI down to machine language instructions or up. Certainlyunderstanding how software works at every level is very helpful...(略)Debugging is not about stepping through the code.This is a very narrow view of a specialist programmer. </atom:summary><link>http://fruitfoxlu.blogspot.com/2008/12/programmer-universalis.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-2475107519076607628</guid><pubDate>Mon, 04 Feb 2008 08:18:00 +0000</pubDate><atom:updated>2008-02-04T16:39:12.925+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><category domain="http://www.blogger.com/atom/ns#">敗家</category><title>[菜單]新買的電腦</title><atom:summary type="text">CPU         Intel Core 2 Quad-Q6600 CPU
記憶體    威剛 DDR2-800 2G X2                        
主機板     ASUS(P5K-E/WIFI-AP)                  
顯卡        MSI NX8800GT-T2D5ESP-OC 特仕版                                       
硬碟        WD 500G WD5001ABYS 企業級(2代)               
DVD燒    BENQ DW200-S 20X S-ATA(黑)                           
Power     Seasonic 430W Power Supply    
機殼        聯力A07(黑)</atom:summary><link>http://fruitfoxlu.blogspot.com/2008/02/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-5095268890672563799</guid><pubDate>Mon, 28 Jan 2008 06:05:00 +0000</pubDate><atom:updated>2008-01-28T14:08:52.716+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><title>老頭一個</title><atom:summary type="text">剛上研究所的時候，希望自己每年至少能作一件神奇的事情

大四暑假，跟同學還有強者學弟們一起參加了全國性的比賽。最後很神奇的得了第三名。

碩一的時候作了SwingScript
這讓人可以用XML語法來寫GUI。
Text field、button、slider...該有的基本元件都有，甚至還可以show BMP。如此一來programmer可以更專注在演算法的開發設計。

碩二的時候作了Java filter以及碩士論文PHSQT
Java filter這個東西讓C/C++與Java可以互相溝通，但卻不必學JNI或是走其他複雜的路。
作PHSQT碩士論文的時候，遭遇到很多挫折，幸好維城學長不厭其煩的指教，再加上天天早九晚九的待在實驗室，最後總算是作的很完整，從問題背景、假設、演算法、作實驗、實驗結果分析，有一個結論出來。(雖然不是很令人振奮的結論 haha)

雖然跟SMP相關的都沒人在</atom:summary><link>http://fruitfoxlu.blogspot.com/2008/01/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-4097659731237223239</guid><pubDate>Tue, 01 Jan 2008 12:40:00 +0000</pubDate><atom:updated>2008-12-11T17:37:25.369+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><category domain="http://www.blogger.com/atom/ns#">敗家</category><title>Panasonic FX55手入</title><atom:summary type="text">之前試用過禹鴻的FX33，輕薄短小的機身留下深刻印象。前陣子跟同事去台東玩，感覺沒有一台相機在手很不方便，於是就打算跟女友合購入兩人的第一台DC。


2008年的一月一號，敗家行動終於展開了。原本計畫要手入FX33，但是看到FX55的3吋液晶螢幕，我就投降了。我對攝影一竅不通，只知道畫素越大好像越不錯，其他的名詞都不懂。所以要求很簡單，而FX55也讓我跟女友很滿意。

首先就是要防手震！之前跟別人借相機去東京，為了拍地鐵車票重試了不下數十次，就因為一手拿車票一手拿相機會抖。接著就是外型，FX55 時髦的黑色讓人越看越喜歡，機身還算輕薄，購入之後去淡水玩了一圈，不論是重量或是大小均不會讓人感覺有負擔。智慧拍照模式也滿適合我這個不懂攝影的人，覺得不好看就開這個模式就對了 :P


因為這是第一台DC，所以沒辦法po開箱照(相機不能自己照自己XD)
下面幾張是FX55拍出來的相片：
從淡水拍</atom:summary><link>http://fruitfoxlu.blogspot.com/2008/01/panasonic-fx55.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1VXcgJ-JN9urdok5cbktb7kaO_yfhk44kvc-ODtHUhWZ4kbd_dwCVowiaHimzeKR6yiBXRo9zoD02_tdbZoklAPdWXaw4RFDN427sUP9GYN6VK061fPq4hlAjuVVzYn_FqnVC3Eu1320/s72-c/P1000047.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-5619351378885588575</guid><pubDate>Sun, 11 Nov 2007 09:50:00 +0000</pubDate><atom:updated>2007-11-11T18:22:31.200+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><title>魏如昀 - 許哲珮</title><atom:summary type="text">在星光大道節目中聽到魏如昀唱許哲珮的&quot;白色婚禮&quot;，勾起我好久以前的回憶。
&quot;氣球&quot;是我大二時買的專輯，還記得跟我女朋友那時候剛在一起沒多久&gt;///&lt; 我們兩個人都很喜歡這個專輯裡面的歌曲，很可惜的這位創作型才女， 之後就再也沒有出過唱片，直到六年後的最近才出了第二張&quot;許願盒&quot;。 現在&quot;氣球&quot;還在我老家的房間裡。 白色婚禮 詞/曲：許哲珮
今天特別冷 我想 是冬天來了
翻出一件件毛衣也翻出有你的記憶
記得去年冬季 你說好下個冬季舉行一場白色婚禮
在耶誕前夕 就我和你 兩個人的婚禮也可以很甜蜜
接近零下的天氣 強迫自己穿著短袖上衣
冷到不能呼吸 卻害怕穿上毛衣 又想起了你 發現是冬季
眼淚結了冰 分不清 是太冷還是痛心
Oh來不及 毛衣來不及送洗
我過期的白色婚禮.沙灘不再美麗 情歌不再動 我們不再可以一起
一起 踩著浪花數著腳印 我們過期的約定

還有另外一首很棒的&quot;小木船&quot;，讓身為上班族</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/11/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-1628304002827117233</guid><pubDate>Sat, 10 Nov 2007 11:54:00 +0000</pubDate><atom:updated>2007-11-10T20:07:34.166+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><title>六分鐘極限Demo結束感言</title><atom:summary type="text">今天早上，在三四百人的面前，用英文完成了六分鐘極短的demo。
壓力非常的大，之前練到喉嚨都啞了。
通車的時候，就在捷運、公車上面喃喃自語的背稿。
請教美國同事糾正我的用字遣詞。
最後練到完全不用看投影片與影片，就可以很流利的背出全部六分鐘該說的話。

最後上台前，反而不那麼緊張
反覆的練習真的是免除緊張的最好方法。

最後，很高興完成這樣高難度的報告。
講完關鍵概念的時候，我聽到VIP桌那邊傳來了一聲&quot;good&quot;。
聽眾的回應對我來說就是最大的鼓勵。
Arther說我比七月初那次進步多了。
很高興又成長了。

謝謝Arther給我這個機會，讓我成長。
謝謝Ryan，有你的幫忙讓我可以專心present。
謝謝Ron、Fred，陪我練習。
謝謝Bobby、勞倫斯的投影片跟影片。
Thank you very much</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/11/demo_10.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-6641382190731055274</guid><pubDate>Fri, 19 Oct 2007 14:17:00 +0000</pubDate><atom:updated>2007-10-19T22:18:39.327+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Book</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><title>Windows via C/C++ 12/12出版</title><atom:summary type="text">Programming Applications for Microsoft Windows 第五版
改名為Windows via C/C++
原本正為第四版絕版而苦惱...
現在又高興起來了 YA!
&quot;fully updated for Windows Vista, including the latest information about Windows XP&quot;
基本上User mode programming這本必看啊!
看天瓏的討論區，似乎會立即進口。
等不及了!聖誕禮物就這本書吧!!</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/10/windows-via-cc-1212.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-6607062821411366694</guid><pubDate>Wed, 17 Oct 2007 04:56:00 +0000</pubDate><atom:updated>2007-10-17T13:03:19.413+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Programming</category><category domain="http://www.blogger.com/atom/ns#">Windows</category><title>OSR的好文章 : Nt vs. Zw - Clearing Confusion On The Native API</title><atom:summary type="text">連結 : OSR的好文章 : Nt vs. Zw - Clearing Confusion On The Native API

這篇提到一件很有趣的事情
所有的Native API都有Nt 跟Zw兩種 prefix
再加上ntdll.dll與ntosknl.exe各自都有expose Nt*/Zw*
所以總共有四種可能性
1.User mode呼叫Nt*
2.User mode呼叫Zw*
3.Kernel mode呼叫Nt*
4.Kernel mode呼叫Zw*

如果用debugger下去看的話，會發現1跟2沒有差別。3
的話就是直接呼叫真正的service，也就是1跟2最後會到的地方。
4卻會規規矩矩的把service放到eax，ebx指向parameter然後呼叫KiSystemService，KiSystemService再依照eax的值，查</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/10/osr-nt-vs.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-70796831771647428</guid><pubDate>Sun, 07 Oct 2007 01:36:00 +0000</pubDate><atom:updated>2007-10-07T09:39:50.241+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cook</category><category domain="http://www.blogger.com/atom/ns#">Life</category><title>煎餃 實戰!</title><atom:summary type="text">先把鍋燒熱，油燒熱。

排剛從冰箱拿出來的餃子到鍋子。煎一下子之後倒適量&quot;麵粉水&quot;，這是讓餃子底酥酥脆脆的關鍵。最後蓋上鍋蓋。聽聲音跟聞香味判斷水是否乾了。乾了的話會有煎餃香，跟油滋滋叫的聲
音。水乾了以後再煎一下下就可以拿起來了。

不需要鍋剷下去翻面，這樣底才會煎的好。基本上餃子是被&quot;蒸&quot;熟的，所以不要太常打開鍋蓋偷看。</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/10/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-2290952807892564683</guid><pubDate>Thu, 27 Sep 2007 02:05:00 +0000</pubDate><atom:updated>2008-12-09T17:23:46.116+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><category domain="http://www.blogger.com/atom/ns#">渡假</category><title>南京出差</title><atom:summary type="text"> 同事A的相機，我出現比較多次：http://picasaweb.google.com.tw/fruitfoxLu/ruryXF同事B的相機：http://picasaweb.google.com.tw/fruitfoxLu/aLzqPD02 有人在大街上曬棉被跟褲子的南京的城牆還在 市政府很帥氣一般人民可以感覺的出來貧富差距很大市區跟郊區的差距大到吐血高架橋下滿滿的人在下棋喝茶...出差的行程很滿，早上報告完。中午大陸的同事就開車帶我們去中山陵走走。中山陵在南京市近郊，是個很漂亮的地方。頂著大太陽一行人爬上中山陵的頂端，往下遠眺就是南京市，景色很棒。國父的陵寢天花板上浮雕著中華民國國旗，周圍的牆壁刻著建國綱要，保存的很好。外面的牆上還有許多歷史文件，以及建造中山陵時的黑白歷史照片。就是一整個很有文化。中午吃完飯，同事沿著長江路開回去，沿途的一磚一瓦都有故事。處處都是充滿古代中國風的建築</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/09/blog-post_27.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwtm_CaI6CkdwGEyKFJm00FDaO6xHY9R_xGrnpQdT91m3AM9pZfgcmMJ9t8Y5d0cOWA1cUOu0iGkTpf2mHRGX3_InAraQN24h5VNQIiyLnG4A4C5FQTxoxt5lBnen4tW6GWg7k4uTmVfs/s72-c/DSC02227.JPG" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-205853479480620564</guid><pubDate>Wed, 12 Sep 2007 04:14:00 +0000</pubDate><atom:updated>2007-09-12T12:17:13.394+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Life</category><title>自己的時間?</title><atom:summary type="text">昨天晚上 花了七十分鐘回家
到家開始吃晚餐已經是八點的事情。
吃完以後，開始用微波解凍魚，趕快煮一煮
不然下禮拜要去南京，下下禮拜又回家過中秋，魚放太久不好。

送進去微波大約十分鐘，乘空檔洗個菜，幫我的黑NDSL穿上FFCC果凍套。
穿上之後...hmm...黑底燙金字樣很有感覺，但是如果是白色NDSL會更配。
拿掉了任天堂的腕帶，換上莫古吊飾。有了這個東西晚上回家還會想唸書嗎!!XD

回到廚房，一面煎魚一面燙青菜 (抱歉學長囧rz 我對&quot;炒&quot;真的有天生的障礙)
剛退冰的魚發出噁心的味道，配上融化有重味道的水，趕快丟到鍋子裡開始煎。
ㄜ...忘了抹鹽了...算了...
一面煎個十分鐘，再翻面，魚開始發出香味，表面變成微焦的金黃色 :)
送魚半個檸檬，希望這樣會好吃一點。
最後煎兩個荷包蛋，完成!

看看手上的手錶，九點，剛好小k打電話來要我去接他下班。
晚上不能太晚睡，不然明天上班會</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/09/blog-post.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2994017067235797430.post-8692628361591668529</guid><pubDate>Tue, 04 Sep 2007 23:14:00 +0000</pubDate><atom:updated>2008-12-09T17:23:46.298+08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Book</category><category domain="http://www.blogger.com/atom/ns#">Life</category><title>iWoz來我們公司演講</title><atom:summary type="text">昨天中午Woz來我們公司演講，因為同樣是工程師，所以大家對這場演講特別感興趣吧，想要瞻仰大師的風采，十二點不到會議室就被擠爆。幾乎大家都來了，不能來的也用線上streaming在座位上看。 剛開始的時候，我想Woz不確定他想說甚麼，他甚至不確定我們能不能聽懂他的英文。所以演講的一開始他說的很慢，直到後來我們對他的笑話有反應，他才放鬆開始越講越快，笑話越來越多。這也顯示了他善解人意的一面。演講的內容跟他的自傳有很大的重疊，講他發明APPLE 1,APPLE 2的心路歷程與經過。不一樣的是穿插了一些有趣的秘辛。演講中Woz不時提到賈伯斯，他說賈伯斯是一位自我期許很高的人，非常想成為人群中的菁英，像莎士比亞、牛頓之流的人物。所以當賈伯斯拿到大學課表的時候，很失望而且激動的對Woz說：我到大學來是要成為莎士比亞、牛頓的，我要拿諾貝爾獎、我要開大公司作大事，但是你看看大學安排的課表，我要上英文？</atom:summary><link>http://fruitfoxlu.blogspot.com/2007/09/iwoz.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ3n49_drz8kpFqy52E4jbAAv8fhFt9PfLFyRspXyWqFPwrUaUtUAiLqee3QX98LF70dDlq2XXXvfGjITc9Y0Yk9IRMqo6ziGRFrrjCH1WEEMuaG3Zv0nnAQzeEn1wTUDLQ4AzQMa4hpo/s72-c/image.jpg" height="72" width="72"/><thr:total>8</thr:total></item></channel></rss>