星球

Blog:Jserv's blog


最後更新: 2012/8/30 20:08:00
RSS | RDF | ATOM

"Accelerated Android Development with Linaro" 簡報上線

2011/5/30 12:43:00 | Jserv's blog
五月 18 日,受邀代表 [Linaro],在 ARM 舉辦的 [Android Software Ecosystem] 研討會,介紹 Linaro 以及作為合作開發夥伴的 0xlab 最新的進展,簡報已上線,請見: Accelerated Android Development with Linaro View more presentations from Jim Huang 副標題是 "Infrastructure, Validation, and Optimization",我嘗試用這三者簡化 Linaro 這一年的開發方向與使命,特別在 open source 走入消費性電子產品的今日,最有效率的累積開發成果的方式,就是回歸到市集導向的公開模式,並且透過令人目眩的硬體更新速度,讓種種創新成為可能。當然,目前的成果仍非常有限,還需要更多的開發動能注入,感謝您的指教,也請多討論交流。...

小技巧:#include "/dev/stdin"

2011/6/7 3:31:00 | Jserv's blog
Susam Pal 有篇短文 [Compiler taking input while compiling] 提到一個非常有趣的技巧,就是在 C 語言程式中去 #include "/dev/stdin" (UNIX) 或 #include "CON" (Windows),這樣就能在編譯時期,接受標準輸入作為新增的程式碼。那麼,實際的應用呢?筆者想到一種應用型態,試想,有許多成功的 open source 專案長年累積眾多開發者或貢獻者,會期望在 UI 顯示這些份清單,可能的作法有兩個: 讀取某個文件檔,如 AUTHORS 透過 Makefile 的修改,在編譯時期指定 -DAUTHOR_LIST="..." 之類的編譯參數 前者看來很有彈性,但可能大題小作了,不過只是字串,有必要因此開檔嗎?又,萬一多個版本共存於同一個環境,該怎麼辦呢?後者麻煩了一些,但絕對會運作,但這又額外的風險,因為我們不確定這份清單到底有多長、shell 是否能處理過長的字串。更麻煩的是,因為是編譯參數的修改,make 無法清楚得知確切的編譯時間變動,無法確保最終的字串輸出,因為即使將 'AUTHORS' 一類的檔案放入 Makefile target 的相依清單中,還是有可能面臨產生 C-style string...

演講:Android 系統最佳化的迷思

2011/6/19 23:47:00 | Jserv's blog
七月 8 日 (週五) 將應臺北科技大學的邀請,在行動終端應用技術與趨勢研討會探討「Android 系統最佳化的迷思」的議題,相關議程資訊可參考 [行事曆]。在這個議程中,我將簡要歸納兩年多來在 Android 系統層面的經驗,最早可溯及 2008 年底,開始在 Andes CPU 移植 Android,隨後就是在 [0xlab] 接觸多種不同的 SoC 與多樣的裝置,而,不同於過往探討如何改善系統的效能,議程將點出若干「最佳化」的迷思,特別在 Android 平台上,還得考慮到非技術的商業因素。 議程暫定的提綱有: 從主流 CPU 架構與 SoC 平台的「亮點」,看 Android 的支援程度 最佳化 -- 另一個無法證明程度的詞彙,以及 Android 上面美麗的錯誤 由發展軌跡看 Android 的變革:2D, GPU, RenderScript, SMP,...

演講:Android 應用程式逆向工程提示

2011/6/20 0:23:00 | Jserv's blog
七月 23 日 (週六),小弟將應 HIT (Hacks In Taiwan) Conference 2011 大會的邀請,出席並給予主題為「Android 應用程式逆向工程提示」的演講,詳情可參考 [議程表]。逆向工程一向是許多開發者或黑客所熱衷的主題,在 Android 異軍突起於智慧型手機、平板電腦裝置,甚至智慧電視的今日,自然就是個值得研究的方向。本議程嘗試分析現有 Android 系統架構以及提供應用程式執行環境的 Dalvik 虛擬機器,並透過若干可公開取得的工具,對 Android 應用程式作逆向工程,涵蓋從動態追蹤、反組譯、反編譯,到修改與施加保護等實務。 不同於 Mahmud ab Rahman 的主題〈Reversing Android Malware〉,小弟不會探討 Android 上慢慢浮現出來的惡意程式,也不會探討其影響,而是著重於逆向工程的原理與技巧本身,出發點是善意的,至少有助於提昇工程能力的培養。命名「提示」,就是強調這是一系列的方法與模式,並沒有預設立場要進行怎樣的行為,當然也衷心希望,這個議程分享,對與會者能有些啟發。期待您的指教,謝謝!...

「Android 系統最佳化的迷思」簡報上線

2011/7/30 13:01:00 | Jserv's blog
本月應臺北科技大學的邀請,在行動終端應用技術與趨勢研討會探討「Android 系統最佳化的迷思」的議題,簡報已上線,請見:[android-opt-myth.pdf] Android Optimization: Myth and Reality View more presentations from Jim Huang 重點提示如下: Android Meets Hardware Revolution: ARM 核心的演化, 直逼個人電腦的高規格, 多元的 ARM 指令集與先進製程, 高品質的移動通訊基礎 Unproven "Optimization": 「最佳化」的迷思, 關鍵是策略, 經典的 Android service, 以 SurfaceFlinger 為例, Android 本質上與 GNU/Linux 的差異 Android...

「Practice of Android Reverse Engineering」簡報上線

2011/7/25 12:46:00 | Jserv's blog
很榮幸今年 [台灣駭客年會 HIT2011] 能被邀請為講師,為與會的來賓介紹 Android 應用程式的逆向工程。議程內容延續 Thinker 的 "The Code Injection and Data Protection of Android" 與 Mahmud ab Rahman 的 "The Code Injection and Data Protection of Android",主要是探討 Dalvik VM 行為與相關的 DEX bytecode 變化,簡報以上線,可參考 [android-reverse.pdf] Practice of Android Reverse...

避開 PTRACE_TRACME 反追蹤技巧

2011/8/30 23:25:00 | Jserv's blog
在前文 [ptrace / SIGTRAP / int3 的關聯] 提到藉由檢查 ptrace(PTRACE_TRACEME, ...) 的技巧,確認該 process 是否被 GDB 所追蹤,而做出必要的回應。不過,這不表示就沒轍,事實上,還是能透過 gdb 來追蹤。 先來看看之前的範例程式碼: 嘗試編譯並使用 gdb: $ gcc -o ptraceme{,.c} && gdb ptraceme GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08 ... (gdb) r Starting program: /tmp/ptraceme No, I...

「開放原始碼作為新事業: 台灣本土經驗談」簡報上線

2011/8/29 13:39:00 | Jserv's blog
本月適逢台灣區開放源碼界的盛會 [COSCUP],除了過去分享 [0xlab] 這一年來的 [開發進度] 外,今年嘗試調整演講的型態,以「開放原始碼作為新事業: 台灣本土經驗談」為題作 keynote 分享,簡報已上線,請參考: [0xlab-experience-2011.pdf] 開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011) View more presentations from Jim Huang 一開始先分享 [0xlab] 成立時的背景,為了搭 Google Android 的順風車,著實付出頗多代價,特別對我們這些對 open source 有著天真憧憬的人來說。中間則是以一位系統開發者的角度,看 Android 特有的生態系統 (ecosystem) 有了哪些本質上的轉變,而我們則以與其他團隊或知名開放原始碼專案合作的方式,試著去找到一個切入點:專注於 Android 系統層面的軟體品質。過程中,也以開放原始碼的形式,釋出了若干專案,可參考 [0xlab::Technologies]。另外也分享了一個小插曲,當出國在 ARM 的長官前面忐忑不安地作簡報,腦袋真是一片空白,只好在終端機前面敲 "git...

致歉:網站資料佚失

2011/9/2 2:15:00 | Jserv's blog
應該半年前甚至更早就該發布此聲明,不過一直因為工作而耽擱,特別是曾有一度想把這個 blog 關閉。每個月都會接獲來信,告知網站連結失效、內容錯亂,甚至連在 blog 留言或搜尋都有問題,而坐視這些問題不顧,實在是本人的疏失,請多包涵。 首先,感謝這幾年來持續協助小弟處理網站資料的朋友,像是小州、Andrew、Rex,還有四元等 (應一併把台大計中、交大網路,甚至中研院的 admin 算入,但實在無法具體指出相關的人名)。最早在 info.sayya.org 零星放一些檔案作分享,也沒想到一放就歷經了十年,更沒想到 2004 年玩票性寫了 blog,竟然持續至今。雖然工作與興趣都是接觸最新的資訊技術,但在使用工具的方面,我個人卻很不習慣新的工具,blog.linux.org.tw 大概只剩下我這個唯一的使用者,而且幾乎沒有換過版型,後端的 MovableType 系統沿用至今 (有記憶以來,2003 年就長這樣),原本該被嫌棄過度老舊,沒想到竟然有網友說小弟的 blog 版面很清爽、看起來很專業,對此,還真不知道該怎麼回應。 儘管對於重要資料做了備份,但一直沒對網站資料作 1:1 的備份,於是,一旦硬碟出了狀況 (包含異地備份也出問題,可見小弟實在太久沒用心),從網站連結到若干網路服務,幾乎都處於失效的狀態,對此,真是非常抱歉,但目前還沒想出比較有效率的回復方式。我想,倘若您需要特定的連結所指向的檔案,煩請來函 <jserv.tw@gmail.com> 告知,小弟將嘗試參考檔名自備份區取出該資料,謝謝!另外,blog 的意見回應功能也是失效的狀態,煩請多利用 email。...

演講:Android 圖形系統 -- 設計與實做分析

2011/9/14 14:29:00 | Jserv's blog
九月 24 日 (週六) 小弟將在高雄市作免費的技術分享,此次主題為「Android 圖形系統 -- 設計與實做分析」,以下摘錄 [Study-Area 活動訊息]: 議題:Android 圖形系統:設計與實做分析 議程簡介:同事在深度移植 Android 後,在 COSCUP 2011 分享經驗時,傳達了一個重要的概念:「欲征服 Android,必先征服GUI」,誠然,Android 的圖形系統不僅反映了應用程式開發的思維,也與硬體特性和演進息息相關,本議程嘗試分析現有 Android 系統架構,並由系統移植與開發的角度,探索跨程序資料交換、OpenGL|ES 引擎、2D 系統,以及 RenderScript 等相關設計。 預定議題大綱: 從 Android 內部資料交換開始 圖形系統分析 2D 與硬體加速 OpenGL|ES 工業標準與擴充 RenderScript 活動時間:9 月 24 日13:30~17:00...