- 建議OEM可以提供很方便可以開關secure boot的介面
- 建議OEM(在BIOS廠商的協助下)可以在系統軔體裡提供標準機制去設置key
- 建議以setup模式賣出,讓作業系統去負責安裝初始key的動作
星期一, 10月 31, 2011
UEFI secure boot impact on Linux閱讀小記
BaseHTTPServer
基本上,do_GET時,要用 parsed_path = urlparse.urlparse(self.path) 。而 do_POST 時,要
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
拿到的 form,可以用 form["your_key"] 去找到指定參數的值,但拿到的值,型態是MiniFieldStorage,要用 value 屬性去拿真正的值,也就是 form["your_key"].value 才是真正的值,該文裡也有上傳檔案處理的範例。
星期五, 10月 28, 2011
twisted筆記
作HTTP Server時,會要實作twisted.web.resource.Resource,render_GET裡的request可以參考twisted.web.http.Request : API documentation,引用參數,可以用args屬性,這是一個dictionary。除了render_GET,當然也可以用render_POST、request_HEAD...
星期四, 10月 27, 2011
woeid
在Twitter API文件:GET trends/:woeid裡的woeid原來是Yahoo! Where On Earth ID,由Yahoo提出的。
1 表示全球,要知道自己所在地區的trends,還得要先用Yahoo的Service去查到所在的woeid,才能再去問Twitter。
Tail call
跟遞迴比較大的差別,目前我認知到的是會利用另外一個參數來傳遞結果,實際應用上應該只要是遞迴都可以改寫成Tail call吧,再想想可以怎麼應用。
星期三, 10月 26, 2011
Mining the Social Web - Example 1-3
實作這個範例時,出現錯誤:TwitterHTTPError: Twitter sent status 404 for URL: trends.json using parameters: ()
有人回報給作者:Example 1-3 fails with 404 errors,也有人去 StackOverflow 上問:Problem with Twitter package by sixohsix,可是都沒有解決問題的答案。
答案在twitter API -GET trends上:因為deprecated了。要改用GET trends/:woeid,也就是像這樣的網址 http://api.twitter.com/1/trends/1.json 才可以取得。
換言之,程式要改為:
import twitter t=twitter.Twitter(api_version='1') t.trends(id=1)
星期四, 10月 20, 2011
Greasemonkey-輔助續借學校圖書
星期三, 10月 19, 2011
"How to install Ubuntu on Android"觀後感
看完還是順手紀錄一下,要不然就白花這25分鐘看了。
簡單的說,要先 root 並且裝上 busybox,接著下載 bootubuntu,這是預先編譯好的 ARM Ubuntu image,放到 SD Card 上的 ubuntu目錄下。然後用 adb shell 連上,執行 su,到 SD Card 的 ubuntu 目錄下,執行 bootubuntu,就進 ubuntu 環境了。有了 ubuntu 環境,就能執行 apt-get,立馬就可以裝上 openssh-server、tightvncserver,openssh-server 是為了有更好的終端機環境可用,因為 Windows 的命令提示字元不夠理想。tightvncserver 則是要給 market 上的 vnc client 用的,執行 vnc client 連到本機上的 vnc server,就有 Ubuntu 畫面跑出來了。
星期四, 10月 13, 2011
CentOS 5裝Python 2.6
$sudo yum install python26
再裝 python26-virtualenv python-pip:
$yum install python26-virtualenv python-pip
製作環境:
$mkdir -p python-envs
$cd python-envs
$virtualenv-2.6 --no-site-packages --distribute myenv
$pip-python install -E myenv yolk
啟用:
$source myenv/bin/activate
$yolk -l
星期五, 10月 07, 2011
電影流水帳(2011/5/26~2011/10/7)
- 奶奶強盜團(IMDB)。3個奶奶好不容易攢了錢,要去夏威夷玩,很開心的去預約了行程,然後要付款,可是旅行社卻告訴她們要把錢存到戶頭去才可以。去到銀行存款,卻遇到搶案,存摺陰錯陽差地沒有刷到,銀行經理就跳出來說,不算,你們怎麼證明有拿八百萬來存款?於是,一番哭天搶地之後,還是沒能拿回錢。她們決心自己去找到搶匪,把錢要回來。很幸運,她們找到其中一個,不過這傢伙手上沒有錢,因為他被背叛了。這下絕望了,本想說再撐幾年繼續攢錢的,可是其中有一個人已經沒有時間了,她得了癌症。沒辦法,只能靠武力解決了,於是她們就要脅搶匪教她們搶銀行。經過一番訓練之後,她們要出擊了。第一次被呼弄,第二次真的就搶了,也順利搶到,可是來不及逃出,就被警察包圍了。她們跟人質訴說了她們遇到的情況後,人質深感同情,反過來幫她們逃出去(斯德哥爾摩症候群?!)。展開一段追逐之後,最後還是在機場被逮,瑯噹入獄。在獄中,得癌症的那個奶奶就病死了。後面真的很感人,眼淚差點就流下來,相當好看的片子。
- Piranha 3D(IMDB, Wikipedia),中譯:3D食人魚。超簡單的劇情,可是看起來很爽,有辣妹、有裸體、有殺戮、有血也有肉。食人魚因為地震的關係從原本與世隔絕的洞窟中被放了出來,開始肆虐。在河邊發現片頭老人的屍體之後,下水探勘的生物學家也被幹掉,活著的人趕緊走人,然後運氣不錯,有逮到一隻魚,就去找魚類博士(這是演"回到未來"的那個怪博士!!)鑑定,說是遠古時代的超級食人魚。媽呀~太可怕了,警長就趕緊去疏散湖邊的人,沒人鳥...想當然爾,食人魚展開一場殺戮。警長的兒子情竇初開,不想幫警長媽媽(警長是女生,是好久沒出來演的伊莉莎白蘇)帶孩子,就用錢收買妹妹,叫弟弟妹妹們乖乖待在家裡,自己就跑出去看有料的了。弟弟妹妹不安份,也跟著跑出去,後來被困在島上。警長的兒子跟拍寫真的大叔與正妹們,後來也遇到食人魚了,就趕快逃走。路上遇到困在島上的弟弟妹妹,就要脅拍寫真的大叔說,我媽是警長,快過去救人~然後就救人,救完人,船就觸礁了。該死,食人魚也來了,又是一場殺戮。警長兒子的女友被困住,該死的人都死了,警長兒子趕緊向老媽求救,最後警長就救了她的兒女,炸死一堆魚。最後的最後,那個魚類博士又打電話來,說你們抓到的這隻還不是成魚喔,應該還有爸爸媽媽在活動,接著,我被嚇到從椅子上彈起來。
星期三, 10月 05, 2011
z4root
最初找到的是這篇:Android adb setuid提权漏洞的分析,裡面就寫得很清楚了,他寫的不是 z4root,而是 RageAgainstTheCage,主要是靠著一直建 process,建到極限值,然後試著砍掉 adb,再靠 adb 程式沒有檢查 setuid 傳回值的漏洞來取得 root 權限。一般的 daemon 程式都是這樣子,一開始是 root,之後會用 setuid 切換身份,所以在 setuid 之前都是 root。而 setuid 通常不會失敗,但是因為可用的程序限制到了,才失敗 (參考 kernel/sys.c 裡的 set_user)。
好,那跟 z4root 又有什麼關係?還好 z4root 有源碼。
z4root 裡就有用到 RageAgainstTheCage,z4root.java 是主要的 Activity,當你 click root 按鈕值,會啟動 Phase1 Activity,這邊就會把包成 resource 的 RageAgainstTheCage 寫到z4root的應用程式目錄下,然後變更其權限並且執行。噹噹,執行完以後,當然 adb 就有 root 權限了。
然後 Phase1 有 thread 去持續檢查執行 RageAgainstTheCage 的程序,如果成功了,會利用 Alarm 服務去啟動 Phase2。Phase2 這邊我有點不太明白,最後是將 su、busybox、SuperUser.apk 都搬到系統分割區了,然後就重開機,可是這個時候怎麼會有權限可以作這些事情呢? 如果照上面的 RageAgainstTheCage 來看,我猜想應該是在執行 RageAgainstTheCage 時,把程序數衝到最大限制,然後之後所執行的程序其實都是 root 啟動的,要切換使用者身份時失敗,所以之後的程序都是 root,也因此 Phase2 Activity 也有同等的 root 權限。這邊因為跟 java 的 thread 作法不是很熟,所以就不了了之。
z4root 最後是重開機,此時已經有埋必要的 su 跟 SuperUser.apk 在系統裡,也就有了可以 root 的可能。