<?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>こっちも小僧</title>
	<atom:link href="http://debug.tw/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://debug.tw/blog</link>
	<description>Happy Vacation on Earth</description>
	<lastBuildDate>Sat, 03 Sep 2011 10:43:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Introducing the purifierS</title>
		<link>http://debug.tw/blog/?p=342</link>
		<comments>http://debug.tw/blog/?p=342#comments</comments>
		<pubDate>Wed, 31 Aug 2011 10:56:31 +0000</pubDate>
		<dc:creator>mifan</dc:creator>
				<category><![CDATA[Hacking Lab]]></category>
		<category><![CDATA[Release Notes]]></category>
		<category><![CDATA[DLL Injection]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Skype]]></category>

		<guid isPermaLink="false">http://debug.tw/blog/?p=342</guid>
		<description><![CDATA[If you have updated Skype client approximately within the past month, you would probably notice that Skype somehow integrated with your Facebook account. It has added a new window titled &#8220;Skype Home&#8221; that enables you to commit posts to the social network service provided by Skype or Facebook. I am fine with the integration since I [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">If you have updated Skype client approximately within the past month, you would probably notice that Skype somehow integrated with your Facebook account. It has added a new window titled &#8220;Skype Home&#8221; that enables you to commit posts to the social network service provided by Skype or Facebook. I am fine with the integration since I deleted my Facebook account a few months ago, except that the window keeps popping up randomly during my days. There&#8217;s one time I was playing some first-person shooting game in full screen mode and the Skype Home window just popped up and the game was forced to be minimized. I was totally pissed off. Even the Windows Live Messenger which sucks so hard cannot match this new Skype <em>feature</em>. What&#8217;s worse, I found no options to turn off this window permanently in Skype client software.</p>
<p style="text-align: justify;">The behavior of the new feature has no substantial difference with adware. I wrote purifier because I couldn&#8217;t tolerate WLM installing annoying ad banners to its users&#8217; computer. And this time, I did the same thing to protect the users of Skype, which was recently acquired by Microsoft. Because it purifies your Skype client, I call it the purifierS. To avoid confusion with the original <em>purifier</em> that targets the WLM, which is originally named MSN Messenger, I rename the old purifier to purifierM.</p>
<p><strong>Download</strong></p>
<ul>
<li><span style="color: #ff0000;">NOTE:</span> some free-of-charge anti-virus software recognizes it as malware, according the <a href="http://www.virustotal.com/file-scan/report.html?id=e7d61092ea5949e17eee5f39c7485b2b3b5e7f4f80f07709386ab50c56e1770f-1314787675" target="_blank">report from VirusTotal</a>. If you suspect me, you can download and check the source code and compile it on your own.</li>
<li><a href="http://www.debug.tw/works/purifierS.html">Link to download page</a></li>
</ul>
<p><strong>Features</strong></p>
<ul>
<li>If you are using the Compact View, no more <em>Skype Home</em> window will ever pop up.</li>
<li>As all the work is done in memory, no file on your hard drive is modified. You can always run the original Skype by the way it used to be.</li>
<li>It&#8217;s a GPL-licensed free software. You can tell if I did bad things to you or learn the method I use.</li>
</ul>
<p><strong>Usage</strong></p>
<ol>
<li>Exit all running Skype instances.</li>
<li>Run purifierS and a cleaner Skype will be automatically launched.</li>
</ol>
<p><strong>Okay, but what is Skype Home exactly?</strong></p>
<ul>
<li>Skype has an <a href="https://support.skype.com/en/faq/FA10673/What-is-Skype-Home" target="_blank">official page</a> telling you what it is.</li>
<li>I got a screenshot for you. I use Compact View because it looks cleaner. On the right is the buddy list; on the left is the malicious Skype Home that this is all about.<br />
<a href="http://debug.tw/blog/wp-content/uploads/2011/08/skype.png" target="_blank"><img class="alignnone size-medium wp-image-352" title="Skype Home Screenshot" src="http://debug.tw/blog/wp-content/uploads/2011/08/skype-300x181.png" alt="Skype Home Screenshot" width="300" height="181" /></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://debug.tw/blog/?feed=rss2&#038;p=342</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>u2Bgotten 1.4.3 Released</title>
		<link>http://debug.tw/blog/?p=334</link>
		<comments>http://debug.tw/blog/?p=334#comments</comments>
		<pubDate>Sat, 13 Aug 2011 08:42:16 +0000</pubDate>
		<dc:creator>mifan</dc:creator>
				<category><![CDATA[Release Notes]]></category>

		<guid isPermaLink="false">http://debug.tw/blog/?p=334</guid>
		<description><![CDATA[YouTube updated its webpage template recently in a large scale. u2Bgotten then became unable to match the pattern for neither video titles nor URLs. In addition, the patent issues of H.264 drove Google to acquire On2 for alternative technologies to encode video. It can also be observed that Google already applied the open video encoding format [...]]]></description>
			<content:encoded><![CDATA[<p>YouTube updated its webpage template recently in a large scale. u2Bgotten then became unable to match the pattern for neither video titles nor URLs. In addition, the patent issues of H.264 drove Google to acquire On2 for alternative technologies to encode video. It can also be observed that Google already applied the open video encoding format VP8 to many 720p videos on YouTube, and more videos can be expected to be re-encoded in the near future.</p>
<p>u2Bgotten is updated to version 1.4.3 to adapt these changes. And as HD videos becoming essential when it comes to Internet video streaming, I feel there are no good reasons to ask users to choose from downloading HD versions or not anymore. So from the version 1.4.3, u2Bgotten no longer requests such confirmation and simply downloads the video of the best quality and resolution that YouTube provides. The caption downloading feature seems to be totally broken but however not fixed in this update. I will certainly look into that and find solutions in the next version.</p>
<p><strong>Download</strong></p>
<ul>
<li><a href="http://www.debug.tw/works/u2Bgotten.html">Link to download page</a></li>
</ul>
<p><strong>What&#8217;s New</strong></p>
<ul>
<li>Updated parsing pattern.</li>
<li>Changed to always download the file with finest quality and resolution.</li>
<li>Added recognition of VP8+Vorbis encoded video/audio streams.</li>
<li>Refactored string class.</li>
<li>Dropped support for ANSI compilation. Some clean-up of codes needs to be done in the future.</li>
</ul>
<p><strong>Known Issues</strong></p>
<ul>
<li>Captions cannot be downloaded.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://debug.tw/blog/?feed=rss2&#038;p=334</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wowSelect 1.0.1 Released</title>
		<link>http://debug.tw/blog/?p=320</link>
		<comments>http://debug.tw/blog/?p=320#comments</comments>
		<pubDate>Sat, 11 Jun 2011 09:44:48 +0000</pubDate>
		<dc:creator>mifan</dc:creator>
				<category><![CDATA[Hacking Lab]]></category>
		<category><![CDATA[Release Notes]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[private server]]></category>
		<category><![CDATA[WoW]]></category>
		<category><![CDATA[哇歐]]></category>
		<category><![CDATA[智障迪]]></category>

		<guid isPermaLink="false">http://debug.tw/blog/?p=320</guid>
		<description><![CDATA[How would you fight criminals if you had the authority to? An extreme ways goes to arresting EVERYONE so that no bad guy can escape from justice. Analogous to the criminals, anti-virus software applies different approaches to catch bad programs inside your computer, and some of them may be just too specious on good guys. Lately [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">How would you fight criminals if you had the authority to? An extreme ways goes to arresting EVERYONE so that no bad guy can escape from justice. Analogous to the criminals, anti-virus software applies different approaches to catch bad programs inside your computer, and some of them may be just too specious on good guys.</p>
<p style="text-align: justify;">Lately I am trying the famous and free-of-charge Avira AntiVirus Personal. It works fine in most cases, except that it keeps popping up alerts about my wowSelect. If you upload wowSelect 1.0.0 to VirusTotal, then you will <a href="http://www.virustotal.com/file-scan/report.html?id=76c167c5d2edf9cffa9c352e74066b55724852535b4dca145cc3d9bf656381ed-1307781748" target="_blank">see</a> Avira is the only one recognizing it as a virus. wowSelect is definitely a good program that helps you reclaim freedom from the software vendor, or at least it&#8217;s nothing Avira accuses it to be. It makes me starting to suspect that the high recognition rate, which is constantly emphasized by the vendors, is achieved by having high false positive rate: if you catch everyone, you won&#8217;t miss any bad ones.</p>
<p style="text-align: justify;">Bypassing the signature matching mechanism of anti-virus software is always fun. I first found out a specific sequence of Win32 API function calls in wowSelect led to the alert. Then I replaced some of those calls that referred to an entry in Import Address Table (IAT) with a function pointer. Fortunately, this simple trick worked! Avira never warned me about wowSelect again. I also uploaded the new version to VirusTotal and a virus-free result was reported.</p>
<p style="text-align: justify;">This trick may not have effects on other anti-virus software. However you can still see that the so-called <a href="http://www.avira.com/en/company-awards" target="_blank">No.1 anti-virus</a> certified by many organizations can be easily fooled even when the code is simply and equivalently modified. It makes us to continuously wonder the meaning of those certifications and, most importantly, your online security with those over-advertised software.</p>
<p><strong>Download</strong></p>
<ul>
<li><a href="http://debug.tw/works/wowSelect.html">Link to download page</a></li>
</ul>
<p><strong>What&#8217;s New</strong></p>
<ul>
<li>Avira AntiVirus won&#8217;t recognize wowSelect as virus anymore.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://debug.tw/blog/?feed=rss2&#038;p=320</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resume Flag Is Not Working in Windows XP (and 2000)</title>
		<link>http://debug.tw/blog/?p=291</link>
		<comments>http://debug.tw/blog/?p=291#comments</comments>
		<pubDate>Wed, 13 Apr 2011 16:35:29 +0000</pubDate>
		<dc:creator>mifan</dc:creator>
				<category><![CDATA[Hacking Lab]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[MaNGOS]]></category>
		<category><![CDATA[private server]]></category>
		<category><![CDATA[WoW]]></category>
		<category><![CDATA[哇歐]]></category>
		<category><![CDATA[智障迪]]></category>

		<guid isPermaLink="false">http://debug.tw/blog/?p=291</guid>
		<description><![CDATA[After the release of wowSelect 1.0.0 beta, some reported that the program would just freeze after launching WoW client. My first thought was that there&#8217;s something wrong in the debugging loop, causing wowSelect to wait for a specific event that never came. However, I had already tested on both Windows 7 and Vista and they [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">After the release of wowSelect 1.0.0 beta, some reported that the program would just freeze after launching WoW client. My first thought was that there&#8217;s something wrong in the debugging loop, causing wowSelect to wait for a specific event that never came. However, I had already tested on both Windows 7 and Vista and they both worked well, as expected. So this led me to that the reported bugged environment itself, which was Windows XP in the case, had the possibility to be responsible for this.</p>
<p style="text-align: justify;">Before going further, I think it&#8217;s better to explain how wowSelect works in details.</p>
<p style="text-align: justify;">Many custom WoW launchers you can find on the Internet are designed to enable players to connect to private servers, and they do so by mainly modifying the file <strong>realmlist.wtf</strong> inside <strong>Data</strong> folder. However, if your Windows is UAC-enabled, this requires you to authorize the launcher to run as <em>Administrator</em>. Actually, the Windows team admit that they design the UAC so that developers who want to get their programs running on those newer Windows must be cautious about the privilege and security issues that are for a very long time ignored by them and Microsoft. So a good program must use the minimal possible privilege to accomplish its job &#8211; it&#8217;s just silly to be annoyed by UAC pop-ups every time you want to play a game or check e-mails on Gmail as they have no reason to alter any system settings nor important files.</p>
<p style="text-align: justify;">That&#8217;s why wowSelect uses debug registers and debugging API to hook <strong>CreateFileA()</strong> and dynamically modifies the parameter passed to it. wowSelect first creates a temporary file and fills its content that specifies a desired server and then uses the hooking technique to break on the <strong>CreateFileA(&#8220;realmlist.wtf&#8221;)</strong> invocation and modifies its parameter to the path of our previously created temporary file. As the temporary file can be created anywhere and the rest of the process is done totally in memory, there is no need to alter any system file and thus wowSelect does not trigger a UAC pop-up dialog.</p>
<p style="text-align: justify;">To install a hook, wowSelect tries to set up debug registers, so the WoW process will be interrupted at the address of <strong>CreateFileA()</strong> in <strong>kernel32.dll</strong>, just prior to the very first instruction of that Win32 API function being executed. Later on, after finishing some work, wowSelect sets Resume Flag (RF) in the EFLAGS register in the client&#8217;s only thread by <strong>SetThreadContext()</strong>, this makes CPU <em>not</em> to issue an exception at the next instruction when returned from interruption, which is the first instruction of <strong>CreateFileA()</strong>. So the client continues, unaware of those things just happened.</p>
<p style="text-align: justify;">While testing version 1.0.0 beta on Windows XP, I found that setting RF, combined with a subsequent <strong>SetThreadContext()</strong> call, had no effects on the interrupted instruction; that is, the WoW process is stuck in the same instruction and never continues ever since the first interruption. If you look into the MSDN document for <strong>SetThreadContext()</strong>, it says that <em>some</em> bits in the CPU status register are ignored by the function because they must be maintained only by the operating system. So I guess <em>those</em> bits include RF in Windows XP while they exclude it in later versions.</p>
<p style="text-align: justify;">Of course, using hardware breakpoints is not the only way to hook a function. In fact, it&#8217;s rare used in this way. But for the purpose and application of wowSelect, it&#8217;s easier, more effective, and more elegant than many other methods. Because the RF couldn&#8217;t be used on Windows XP, and 2000, according to threads on many forums, I had to write some extra code and use the Trap Flag (TF) in EFLAGS instead, which works on Windows XP and is said to be the exact method mainstream debuggers use when dealing with hardware breakpoints.</p>
<p style="text-align: justify;">Now, finally, wowSelect 1.0.0 is released.</p>
<p style="text-align: justify;">Unfortunately, if one trys to use wowSelect on WoW 4.0.x clients, it will definitely freeze again. This is because 4.0.x clients uses <strong>CreateFileW()</strong>, a Unicode counterpart of <strong>CreateFileA()</strong>, to load server settings. I consider it a minor issue because the private server communities are yet to develop any acceptable 4.x server. Those who claim themselves 4.0.6 test (privately, for sure) servers will ask you to use a big custom launcher that patches the WoW client program in a large scale. The whole process is much more like a downgrade, in fact, since their servers run a 3.5.5a-like protocol and therefore they must make your client use the same old protocol as well, which enables you to login with a 4.0.x client but unable to enjoy Cataclysm game features. I think it&#8217;s better to wait for MaNGOS or any other project to release a stable and usable 4.x server. So I&#8217;m not in a hurry to make wowSelect capable with 4.0.x clients anyway. (You can still patch wowSelect on your own. With or without its source code, it&#8217;s all up to you!)</p>
<p style="text-align: right;">.</p>
<p style="text-align: justify;">在 wowSelect 1.0.0 beta 釋出之後，我收到了一些關於它在嘗試啟動魔獸主程式之後就會當掉的回報。我第一個念頭就是 debugging 迴圈裡面發生了甚麼事情，使得它一直在無止盡地等待某個永遠都不會出現的除錯事件。不過我在手上的 Windows 7 與 Vista 都能夠如同預期一般地正常運作，這讓我開始懷疑造成問題的元凶會不會是回報者所使用的 Windows XP。</p>
<p style="text-align: justify;">在故事繼續之前，我想還是先稍加解釋一下 wowSelect 的運作原理。</p>
<p style="text-align: justify;">網路上充斥著許多客製的魔獸啟動器，它們主要被用來讓魔獸主程式能夠連到世界各地的私人伺服器。魔獸主程式用來存放連線伺服器資訊的是 <strong>Data</strong> 目錄裡面的 <strong>realmlist.wtf </strong>檔案，這些啟動器會先更改這個檔案的內容，然後幫你執行遊戲主程式。然而如果你的 Windows 啟動了 UAC （使用者存取控制，就是那個經常在執行程式之前會跳出來要求更多權限的對話視窗），更改安裝在 Program Files 目錄下的檔案之前必須要通過 UAC 提升成系統管理者權限。事實上，微軟的開發團隊也承認之所以將 UAC 設計成一個很煩的機制，是為了讓使用 Windows 的程式開發者能注意長年以來被眾多開發者和微軟本身所遺忘的權限與安全性問題。因此一個好的程式應該要盡可能使用最小的權限去完成它的工作 ── 使用者不能忍受每次啟動遊戲或是開 GMail 收信的時候都要被煩一次，因為它們根本不該動到系統設定。</p>
<p style="text-align: justify;">這便是為什麼 wowSelect 使用了除錯暫存器（debug register）與除錯 API 來 hook <strong>CreateFileA()</strong> 這個 Win32 API 以及動態更改傳給它的參數。wowSelect 會先產生一個暫存檔，並寫入可以被魔獸主程式識別的伺服器相關設定內容。接著啟動魔獸主程式，然後透過 hook 等待主程式呼叫 <strong>CreateFileA(&#8220;realmlist.wtf&#8221;)</strong>，因為這正是它要載入設定檔的時間點。就在這個關鍵的時候，我們巧妙地將原本的參數 &#8220;realmlist.wtf&#8221; 改成方才所建立的暫存檔路徑，而該檔案裡面已由 wowSelect 設定了一個我們希望連上的伺服器（可以是其他國家的官服或是任何私服）。正由於暫存檔可以存在於任何使用者可寫入的路徑，加上剩下來的事情又全部都在記憶體當中進行，所以 wowSelect 不需要透過 UAC 請求權限就能完成所有工作。</p>
<p style="text-align: justify;">為了安設 hook，wowSelect 會設定相關的除錯暫存器，使得魔獸主程式呼叫 <strong>kernel32.dll</strong> 裡的 <strong>CreateFileA()</strong> 函數時，CPU 讓 EIP 暫存器指向該函數的第一個指令（instruction）的瞬間會引發中斷（interrupt）。接著在完成一些必要工作之後，wowSelect 會透過 <strong>SetThreadContext()</strong> 設定 EFLAGS 暫存器當中的 Resume Flag (RF)，這個旗標（flag）將控制 CPU 自中斷處理程序返回之後，於緊接著的第一個指令內暫時不引發除錯相關功能的例外（exception）。魔獸主程式因此得以繼續執行，而且對於剛才在中斷過程中發生的一切事情毫無知覺。</p>
<p style="text-align: justify;">在 Windows XP 上測試 1.0.0 beta 版的問題時，我發現使用 <strong>SetThreadContext()</strong> 來設定 RF 根本沒有作用。也就是說，會當掉完全是因為一旦某個中斷點被觸發，CPU 不知道我們在處裡完這個中斷之後希望它暫時不要在同一個指令上丟出相同的例外（因為我們已經處裡完），而很開心地持續產生中斷。如果你查一下 MSDN 對於 <strong>SetThreadContext()</strong> 的說明文件，就會發現它只告訴你「有些」CPU 狀態暫存器上的旗標會被忽略，因為那些旗標應該要由作業系統來管理。我只好推測 Windows XP 會把 RF 算在「那些」會被忽略的旗標當中，而之後的 Windows 則不會。</p>
<p style="text-align: justify;">當然啦，使用硬體中斷並不是唯一可以用來 hook 的方法，而事實上這個方法也鮮少被如此使用。但是若站在 wowSelect 設計目標與架構的觀點來考慮，這無疑是個非常簡單方便、有效以及優雅的方法。既然 RF 無法在 Windows XP 當中起作用（根據諸多討論版上的文章，RF 在 Windows 2000 當中也是無法使用的），我只好多寫幾行程式碼改用 Trap Flag (TF) 和一些額外的工作來達成原本的目標。由於在我的 Windows XP 環境裡面，這個新方法可以正常地運作，而且 TF 也被認為是主流除錯器在實作硬體中斷當中所用來讓程式繼續執行而使用的旗標，我就姑且這樣視它為一個可靠的夥伴了。</p>
<p style="text-align: justify;">就這樣，現在 wowSelect 1.0.0 （終於！）完成並釋出了。</p>
<p style="text-align: justify;">然而還有一件壞消息沒告訴你：很不幸地，如果你嘗試 wowSelect 在 4.0.x 版本的魔獸主程式上，它絕對會當給你看。這是因為大災變讓主程式改用了 <strong>CreateFileW()</strong> 來載入伺服器設定檔，這個函數是對應於 <strong>CreateFileA() </strong>的 Unicode 版本。不過我把它視為次要的問題，因為直到目前，私服開發社群還沒有辦法完成一個可接受的 4.x 伺服器軟體。你也許能在網路上找到一些自稱 4.0.6 測試伺服器（當然是「私人」測試），不過它們都要求使用者使用一個很肥的客製啟動器才能連上，而那個啟動器會對你的魔獸主程式本身進行非常大幅度的修改。事實上這個大修改可被視為一種大降級 ── 這些私服本身使用了 3.5.5a  版本的通訊協定（也許有一些小小的修改），所以它們必須讓你的魔獸客戶端程式也能使用這套舊通訊協定才能進行遊戲。經過大降級之後，你的 4.0.x 魔獸主程式只使用 3.5.5a 就已經存在的功能，雖然這能讓你連上那些私服，卻無法享受大災變之後才新增的遊戲內容。因此我個人覺得你應該等到 MaNGOS 或是任何其他私服軟體釋出穩定且可用的 4.x 伺服器軟體之後，再考慮去大災變的私服上玩。由此可知我個人不太急於加入對 4.x 魔獸主程式的支援，然而你還是能拿 wowSelect 去新增那些支援與功能（無論你要改原始程式碼還是二進位執行檔都可以）！</p>
]]></content:encoded>
			<wfw:commentRss>http://debug.tw/blog/?feed=rss2&#038;p=291</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>u2Bgotten 1.4.2 Released</title>
		<link>http://debug.tw/blog/?p=279</link>
		<comments>http://debug.tw/blog/?p=279#comments</comments>
		<pubDate>Sat, 09 Apr 2011 08:25:51 +0000</pubDate>
		<dc:creator>mifan</dc:creator>
				<category><![CDATA[Release Notes]]></category>

		<guid isPermaLink="false">http://debug.tw/blog/?p=279</guid>
		<description><![CDATA[As YouTube adjusted their watch page template recently, u2Bgotten is updated again to adapt the new parsing pattern, together with some minor changes on UI and usability. &#160; Download Link to download page What&#8217;s New Increased transfer buffer size of 256K bytes to possibly download the whole watch page at once. Updated video title&#8217;s matching [...]]]></description>
			<content:encoded><![CDATA[<p>As YouTube adjusted their watch page template recently, u2Bgotten is updated again to adapt the new parsing pattern, together with some minor changes on UI and usability.</p>
<p>&nbsp;</p>
<p><strong>Download</strong></p>
<ul>
<li><a href="http://www.debug.tw/works/u2Bgotten.html">Link to download page</a></li>
</ul>
<p><strong>What&#8217;s New</strong></p>
<ul>
<li>Increased transfer buffer size of 256K bytes to possibly download the whole watch page at once.</li>
<li>Updated video title&#8217;s matching pattern.</li>
<li>After finishing a video download, prompt the user before re-enabling the GUI, rather than after.</li>
</ul>
<p><strong>Known Issues</strong></p>
<ul>
<li>Caption of some videos may not be downloaded.</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://debug.tw/blog/?feed=rss2&#038;p=279</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

