Home » 2015 » April (Page 2)

iOS 8 的 DoS 攻擊:強制無限重開機

Twitter 上看到別人 retweet 的新聞:

RSA Conference 發表的 0-day exploit:「iOS 8 Vulnerability Lets Hackers Crash Any iPhone and iPad Within Wi-Fi Range」。

Adi Sharabani and Yair Amit of Mobile security firm Skycure presented their latest research, titled "No iOS Zone", at the RSA security conference in San Francisco on Tuesday.

示範影片:

起因自 iOS 對惡意 SSL certificate 的處理會造成重開機:

All an attacker need to do is create a malicious wireless network that uses the Wi-Fi connection in order to manipulate SSL certificates sent to iOS handsets.

目前最好的解法是關閉無線網路:

Another best measure is to simply avoid the free wireless networks you find in the street providing public Internet access.

1024 色的 CGA 畫面

應該是在 Hacker News Daily 上看到的,1024 色的 CGA 畫面:「1K colours on CGA: How it's done」。比較容易懂的是「CGA in 1024 Colors - a New Mode: the Illustrated Guide」這篇文章。

用到的技巧其實在先前就已經知道了 (維基百科的「Special effects on composite color monitors」這段提到的技巧),不過原文算是把研究做完。

用的方法是 CGA 的 80x100 文字模式 + AV 端子 (Composite video) NTSC 的效果做到的。

故事從頭講起,最前面帶出最基本的 80x25x16 (每個字是 8x8),以及可以修改 register 變成 80x100x16 (每個字變成只有 8x2,只會顯示最上面兩排 pixel):

Basically, you adjust CRTC registers to get 100 rows of text instead of the usual 25; this gives you a character box of 8x2 pixels, a quarter of the normal 8x8.

然後文章作者解釋這也就是 Macrocom 所發展出來的技巧:

然後再來就是利用 80x100x16 再配合 AV 端子的特殊效果:

這在維基百科上也有提到:

於是就可以利用 0x55 (U 這個字) 湊出 256 色:

然後再加上 0x13 (雙驚嘆號) 就可以湊出 512 色:

最後達到 1024 色的方法是透過暴力更新做到的:

The lowdown on how this is done is all in reenigne's writeup, which is linked to at the top of this post. But this is the basic idea: by starting a new CRTC frame every other scanline and twiddling with the start address, it's possible to lay down our character rows so that the first scanline of each gets duplicated twice!

這個方法對於 8088 的 4.77Mhz 其實不太容易,所以這部份只有實作靜態圖片:

Naturally, there are downsides: having to mess with the CRTC every couple of scanlines is quite taxing for the poor 4.77MHz 8088, so there's not much you can do with this other than static pictures. The 512-color variant, using only ASCII 0x55 and 0x13, doesn't suffer from this – it's basically "set and forget", requiring no more CPU intervention than any 80-column text mode (the familiar overhead of avoiding snow).

然後這是最後的成果,上面是 AV 端子產生出來的結果,下面是 RGBI 的結果:

1981 年的 CGA,在 34 年後居然搞成這樣... XD

Google 的 Jsonnet

GoogleJSON 延伸發展出來的描述性語言,Jsonnet:「Jsonnet: a more elegant language for composing JSON」。

// Jsonnet Example
{
    person1: {
        name: "Alice",
        welcome: "Hello " + self.name + "!",
    },
    person2: self.person1 { name: "Bob" },
}

所對應的 JSON 會是:

{
   "person1": {
      "name": "Alice",
      "welcome": "Hello Alice!"
   },
   "person2": {
      "name": "Bob",
      "welcome": "Hello Bob!"
   }
}

可以透過 self 與運算做不少事情。不知道拿來當設定檔如何...

看日期推出一陣子了,去年八月就放出來了...

在美國政府宣佈贊助非法後,Snowden 取得大量 Bitcoin 贊助

美國政府宣佈資助「反動組織」非法後 (感謝對岸發展出來這個用語,用在這邊還頗適合的),也就代表資助 Edward Snowden 非法。

而這反而引起類似「史翠珊效應」的情況發生,反而造成大量的 Bitcoin 贊助 Edward Snowden:「After Anti-Donation Executive Order, Bitcoin Donations For Snowden Jump」,原始報導出自「After Obama's cybersecurity order threatens Snowden fund, bitcoin donations spike」。

Bitcoin 的「無中央控管」以及「交易不可回退」的特性在這個事件中展現相當大的優點。

KKBOX 徵人:軟體開發中心 (i.e. Client Team)

索引:


在寫自家的介紹時,特地跑去跟軟體開發中心的主管要 Client Team 的介紹,人家交稿的速度快多了... Q_Q

Anyway,這篇是由 Client Team 的主管所寫的介紹,一樣是所有的部門都有職缺 (人力銀行上未必有開),有興趣的可以提供 resume 到 recruit at kkbox.com 這個信箱。


軟體開發中心 (Application Develop)

在 KKBOX 裡頭,我們還蠻習慣以老派的 Client/Server Side 來稱呼不同技術背景的開發人員,Client Side 說穿了就是開發 App 的那群人,只要你喊得出來的主要平台,大概就是我們負責的。

軟體開發隨著功能的演進,程式碼就會變得又肥又大,自然免不了些壞味道,面臨設計架構的難題,我們希望內部開發者能夠清楚三件事情: Design Pattern,Unit Test,和 Refactoring。上述觀念應當不用多說什麼,幾乎都變成顯學了。我們期盼透過一些原則和流程來讓開發工作變得不會那麼難以維護。

Client Side 目前共有四個 App 開發部門和 SQA 部門:

  1. Windows 開發部: KKBOX 在早期開發時,當時主流的作業系統還是 Windows XP,所採用的開發框架是 MFC,儘管技術很老,但那是個什麼事情都可以自己打造的年代,我們也樂此不疲。會用到 C++/COM 與微軟早年推出的視窗各類技術 MFC/ATL/DirectShow 。說個秘密,我們也還最低限度的維護著 KKman 呢。
  2. .NET 開發部: 主要負責的是 Windows Store App 和 Windows Phone 的開發,採用的是微軟在下個世代主推的 Universal App 開發框架來打造 KKBOX 在三個 Windows 平台的體驗。這部門需要熟悉的程式語言是 C#,部門有兩位微軟 MVP 相當熟悉微軟的平台技術,很活躍於微軟舉辦的聚會。
  3. Android 開發部: 很明顯地,就是在 Android 手機作業系統上開發 App 的部門,除了手機之外,我們也在 Tablet / STB / Smart TV 各式裝載 Android 系統的裝置上開發。需要熟悉 Java 程式語言和 Google Android SDK。這部門的開發人員很常在 Android Taipei 上出沒,分享開發心得。
  4. iOS 開發部: 聽名字應該也不用多解釋,主要就是在 Mac/iPhone/iPad 上開發 App,為了掌握最新技術每年我們都會派人前往舊金山參加 WWDC。需要會的程式語言是 Objective-C,當然蘋果力推的 Swift 也開始加入開發行列,每個月也都在 CocoaHeads 聚會中跟其他開發者閒聊。
  5. 測試開發部: 俗稱 SQA 部門,著重依據測試的原理和方法來設計測試案例,因此像是黑箱測試方法的 BVA 和 ECP,以及 MBT … 等等都是在設計測試案例時,會用到的測試原理。內部有個小組專門負責研究與建置自動化測試框架,讓各個專案可以各自依照需求建立自己的測試系統。需要熟悉 Python 程式語言,同時我們也將日常得到的心得放在「科科和測試 Testing with KK」上,提供給同樣想把軟體測試工作做好的每個人。

順道一提,除了 KKBOX 以外,還有 KKTIX,Hami Music 和日本服務 Utapass,也都是上述開發部門負責的。所以你要真的那麼愛寫 App 的話,那這裡應該蠻適合你的。

KKBOX 徵人:平台營運處 (API Team)

索引:


續上篇的「KKBOX 徵人」,順便跟 Client Team 的同事徵文,等他寫完後也會貼出來讓大家知道 Client Team 目前找什麼人。

Server Team 這邊徵人的部份順著每個部門說明,這次先講平台營運處 (API Team)。

曲庫開發部

曲庫開發部,負責接唱片公司所提供的 API 以及 DDEX 資料,將這些資料半自動或是自動化整合到 KKBOX 的系統內。

另外這個部門在某些情況下,會需要寫程式特殊處理曲庫資料。舉例來說,前陣子金牌大風被華納音樂集團併購,這時候就有授權單位轉移的工作要做。

人工上架的系統也是這個部門開發,由公司另外的部門作業。

API 開發部

API 開發部,負責開發與維護 KKBOX 應用程式的 API。

平台開發部

平台開發部,負責系統建制。我用條列的方式試著列一些出來:(應該是列不完)

  • 搜尋引擎的設計與維運,目前現在是使用 Solr,正在研究翻新成 Elasticsearch
  • 與曲庫開發部合作,像是音檔轉檔與 DRM 機制。
  • 與 API 開發部合作,像是依照商業邏輯選擇使用我們自己租用的國際頻寬,或是使用 Akamai 供應音檔。
  • 各種通靈業務。

影音服務開發部

影音相關的研發,也是偏 Server Side 的部份。

找什麼樣的人?

不限於這些,可以是聯集也可以有其他技能:

  • 系統分析、系統設計 (SA & SD),包括了以上業務的分析與設計,主管會調度分配對應的項目。
  • Java 工程師 (以及資深工程師),目前主要是針對平台開發部的搜尋引擎。
  • PHP 工程師 (以及資深工程師),這邊提到的四個部門都有在找。
  • Full Stack Engineer,平台開發部與影音服務開發部都有找。

待續...

冨樫中...

.SUCKS 的 Domain...

easyDNS 這篇「Why We Will Not Be Registering easyDNS.SUCKS」把議題拋出來了。

.SUCKS 的 domain 申請的目的就是要發橫財,而這也從 Sunrise Claim 的價錢看出來:USD$2499。而當初抗議成立時也沒被接受,現在看起來不像會有進一步的進展。

除非如同 comment 所提到的被 Google 抵制,不過實在不像...

Facebook 更新在 Open Source 軟體裡的專利授權條款

Facebook 的 Open Source 專案一般都採用 BSD licenses 放出,而由於 BSD licenses 並沒有專利授權,所以 Facebook 自己附帶專利授權條款讓使用者不用擔心在使用時侵犯到 Facebook 的專利。

而前陣子這個條款更新了:「Updating Our Open Source Patent Grant」,範例可以參考 osquery 裡的檔案:舊版的可以參考「PATENTS」這裡,而新版的可以參考「PATENTS」這裡,差異可以看「Update patent grant」這個 commit。

不過看起來還是不怎麼友善...

Archives