Quantcast
Channel: 應用教學 – Hiraku Dev
Viewing all 94 articles
Browse latest View live

為什麼學習漢語拼音輸入法

$
0
0

其實不知道為什麼,最近發現我快 5 年前寫的漢語拼音輸入法教學常常是本站熱門文章,所以趁著有機會再把教學更新以及補充了一些內容。而這五年多以來我一直在電腦上使用漢語拼音輸入法。如果你還是在使用注音輸入法的話,以下將會比較一些漢語拼音輸入法的利與弊,跟大家分享為什麼我會從一個多年使用注音輸入法的使用者,跳槽變成漢語拼音輸入法的使用者。

 

由於我長期居住在台灣環境,本文章預設也是給使用注音輸入法的台灣人來閱讀的,因此下列當中許多情況是以台灣當地以及注音輸入法使用者為準。

學習漢語拼音輸入法有許多好處:

  1. 對於長年使用注音輸入法的使用者來說,學習門檻低,我自己是過了一個月左右的陣痛期,就學起來了
  2. 不需記憶字根或拆字,大部分的拼音可以快速對應到注音,少數要硬背而已
  3. 比起其他同樣以 26 英文字母來輸入的拼音系統(例如:通用拼音輸入法)來說,漢語輸入法的軟體選擇性更多
  4. 其他拼音系統有一堆輔助發音用的字,造成拼法比漢語拼音長,如「謝」在漢語拼音是「xie」,但是在其他拼音可能是「hsieh」,但是 h 又不發音…
  5. 在練習拼音輸入法的時候可以順便練習英打,如果原本是使用「一指神功」來注音輸入的話,練完拼音大概英打也差不多會了
  6. 漢語拼音輸入法在輸入之後必須手動選字選詞,被輸入法自動選字陷害的機會少很多
  7. 同上,新注音輸入法輸入一長串之後發現中間有錯字要把游標移過去再修正或重打,但是使用拼音輸入法因為手動選字所以不會浪費時間在這上面
  8. 常用詞彙通常可以輸入第一個字母就出現正確的字,例如「可以」原本是「keyi」,但是我平常只會輸入「ky」就自動出現了
  9. 打錯拼法在一些情況會自動修正,例如「睡覺」是「shuijiao」,但是鍵盤不小心按到「s」旁邊的「d」變成「dhuijiao」,還是可以出現「睡覺」
  10. 不必輸入聲調
  11. 上面 8、9、10 三點注音輸入法也有,但是通常是要另外付費或者安裝的第三方注音輸入法才有的功能,而這些功能在漢語拼音輸入法通常是內建的
  12. 不需要看注音或倉頡等字碼,所以鍵盤可以用英刻或者無刻,在國外或者沒印注音的鍵盤要輸入中文也不會按鍵試半天
  13. 大部分系統都有內建漢語拼音輸入法,不必像無蝦米之類的還要另外安裝或者購買
  14. 在手機上輸入只需要 26 個按鍵頂多加個分隔字串用的單引號,使得手機鍵盤按鍵比注音大,較不容易按錯
  15. 因為只需要用到 26 個鍵,所以在電腦上許多標點符號可以直接輸出,例如。,;、這些都不必再按 shift 或者其他組合鍵以跟注音字母作區隔
  16. 即使完全沒有中文輸入法的極端情況下,也可以直接輸出拼音來溝通…
  17. 別人比較不會拿你的電腦亂發文,因為不知道怎麼打字 XD
  18. 可以看懂中國論壇或網站上很多簡稱,例如 「zf」 等於「政府」,「fq」等於…之類的
  19. 外國人學中文基本上也是學漢語拼音這一套,因為他們不一定看得懂「中文字」,所以用拼音溝通有時候反而還比較快

 

當然,沒有一套輸入法是完美的,根據我多年使用經驗,在漢語拼音輸入法上還是有一些問題:

  1. 不能打注音文 XD
  2. 在台灣大部分的公共電腦中預設不會開啟拼音輸入法,要另外開啟
  3. 拼音輸入法沒有輸入聲調來作為斷字用,在少數情況下會斷字錯誤,例如「西岸」為 「xian」但預設出字是「先」,必須手動輸入「xi’an」才能正確出字。
  4. 拼音規則有些並不自然、直覺,例如「軒」是「xuan」,而不是如其他拼音的「hsuan」,對於沒學習過漢語拼音的人來說可能會無法發音
  5. 以平均來說,完整輸入一個字所要按的按鍵數量比注音還要多(當然很多詞大家都會只輸入第一個字母以減少按鍵輸入)
  6. 未對正體中文作優化的拼音輸入法可能會有一些問題,而 Windows 上面內建的拼音輸入法就未對正體中文優化(Mac 的有)
  7. 大部分第三方漢語拼音輸入法都是中國軟體,而這些軟體為了優化詞庫有不少都有作輸入分析或者上傳的情形,可能有隱私問題
  8. 同上原因,某些「敏感詞」可能不會出現在預設詞庫中,要手動選字輸入
  9. 有些漢語拼音輸入法沒有正體(繁體)輸出的選項
  10. 因為正體與簡體字是多對一的關係,基本上如果輸入法詞庫是從簡體硬轉正體的就會出錯,例如「頭髮」(头发)變成「頭發」,甚至會找不到字
  11. 中國發音與台灣發音部份字不同,例如「熟悉」是「shuxi」不是「shouxi」,在未對台灣發音優化的拼音輸入法中輸入「shou」會找不到「熟」
  12. 部分標點使用方式不同,台灣一般中文使用的引號是「」,中國則是使用 “”,所以有些漢語拼音輸入法輸入「」會比較麻煩些
  13. 因為是中國官方使用的拼音系統,有些人就是因為某些個人因素不喜歡 XD
  14. 因為跟台灣使用的通用拼音之類亂七八糟拼音系統不同,所以輸入台灣人名拼音時有可能被對方糾正「拼法不對」…

 

在這些缺點裡面,我覺得影響最大的就是 Windows 上面內建的漢語拼音輸入法在正體輸出上面真的非常難用,而我個人也不會去使用中國大型軟體公司開發的輸入法,所以我的建議是,在 Windows 上面可以使用 RIME 的小狼毫,而在 Mac 上面內建的漢語拼音輸入法其實就已經很好用了,如果有特別需求的話可以試試看同樣是 RIME 的鼠鬚管,或者是 QIM

而就算你決定繼續使用注音輸入法或者其他輸入法,我認為學習漢語拼音輸入法還是可以幫助你在國外或者一些場合中使用,所以即使不會拿來使用或許還是要看得懂,就跟「識簡書正」一樣。

最後,要是你決定開始學習使用漢語拼音輸入法的話,記得可以參考我的教學,可以幫助你更快上手喔~


How to remove BrowserEnhancer malware on Mac

$
0
0

Today, one of my friend told me that sometimes browsers on her mac change their homepage and default search engine to a strange website with prefix: “feed.helperbar". I googled this issue but the solutions are for Windows only. So, I found a way to remove this malware on Mac. I’m not sure whether this method works perfectly but at least the problem of my friend’s Mac seems be fixed so far.

 

If the malware is in your Mac, it would:

  • Change your default search engine to “HelperBar"
  • Change your homepage to “HelperBar", too
  • It affects all popular browsers in the same time, includes Chrome, Safari and Firefox
  • Sometimes the browsers would restart suddenly, after they restart, the settings are changed by the malware

 

To remove the malware, you should delete these files:

  • file. Yes, there’s a executable file named “file" in / (root of the system)
  • /var/tmp. the injector should be there

And I think (not very sure) that one of the injector is in the local TimeMachine backup, so we can disable the backup to remove it.

sudo tmutil disablelocal

Then enable it back to restore our settings.

sudo tmutil enablelocal

 

Related Thread: https://discussions.apple.com/thread/7564175?start=0&tstart=0

 

清除電腦裡面重複的 App 安裝檔,增進更多可用空間

$
0
0

很多人可能不知道,有時候 iTunes 不知道為什麼,會把舊版的 App 安裝檔(副檔名為 .ipa ,以下簡稱 ipa)保存在電腦中,與新版共存。如果你不是有特殊目的,要保留降級版本的話,這些 ipa 檔案在無形之中會佔用不少空間。所以今天要介紹給大家的就是如何快速找出重複的 ipa,並且刪除,釋放硬碟可用空間。

開始之前,我們要先找到 ipa 放在哪裡,所以先在 iTunes 的 App 列表中按右鍵,然後選擇顯示於 Finder (Windows 就是檔案總管)

iTunes_Show_FInder

 

接著可以看到所有的 ipa 檔案,仔細一看,哇原來有不少重複名稱但是版本不同的 ipa,我們通常只要留最新的,舊的刪掉就好了。不過有時候 App 之間的名稱太接近,像是 Angry Birds、Angry Birds 2、Angry Bird HD … 這些接近名稱,但是又實際上不同的 ipa 常常會造成誤刪,所以我們可以用一個方法來快速找出重複的舊版 ipa。

Duplicated_IPA

首先,我們「全選」所有 ipa,然後全部把它「打開」。當遇到重複的 ipa 的時候,就會跳出這樣的訊息,我們就知道是哪個 App 重複了,再刪掉舊版就好。當然,這邊就選擇不要取代咯!

Replace_IPA

結果我這樣清出了 1.1 GB,大家可以用同樣方法試試看,說不定可以清出更多空間。

Mini Display Port 轉接線不等於 Thunderbolt 轉接線

$
0
0

相信有點經驗的使用者都知道 Thunderbolt 不等於 Mini Display Port,目前的 Thunderbolt 只是用 Mini Display Port 的接口而已。不過即使身經百戰的 Mac 使用者仍然會有搞混的一天,以下就是強者我朋友的遭遇(我朋友真的不是我)。

 

因為工作需求關係,我朋友有一台 Macbook Pro Retina 15 (2015 年),以及一台 Mac mini(2011 年中)。平常使用時搭配了 LG 的 29UM57 (解析度 2560 x 1080)使用。

29UM57-P

 

因為這台螢幕只有兩個 HDMI 輸入的關係,所以朋友平常在 Macbook Pro Retina 是先用 Thunderbolt 接到雷霆雙劍這台 RAID,再用雷霆雙劍後面的 HDMI 孔轉接到螢幕上使用。另外一方面,想要使用 Mac mini 時,則從螢幕 OSD 切換輸入源,並使用 HDMI 輸入。

這時候問題來了,Mac mini 的 HDMI 只支援到 1920 x 1080 解析度,而 Thunderbolt 有支援 2560 x 1080,所以說平常使用 HDMI 輸入的時候,會變成螢幕左右兩邊都是黑邊的狀態。

29UM57-P 1920

 

為了解決這個問題,今天他就去買了 Mini Display Port 轉 HDMI 支援 4k2k 的版本來用。產品示意連結在此 (實際購買產品不同,不過找不到網頁。)回來接上 Mac mini,正興奮的想說可以完美 2560 x 1600 輸出了!結果當然不是這樣,輸出只有 1920 x 1080 … 這時候正常思考方式就會想說,是不是轉接線唬爛亂寫,這條線其實根本不支援 4k2k,所以再拿這條線去接 Macbook Pro Retina 測試,卻發現線沒問題,可以完美支援!

於是朋友就來找我求助了。

我一看 Apple 官網寫的規格頁面,就看出端倪了!果然是我朋友眼睛業障重啊!

Haitaofashi-Eye

 

官網寫的規格我們再看一次:

Mac_mini_2011_video_output_spec

Thunderbolt 連接埠支援最高 2560 x 1600 解析度
Thunderbolt 連接埠支援最高 2560 x 1600 解析度
Thunderbolt 連接埠支援最高 2560 x 1600 解析度

是 Thunderbolt 不是 Mini Display Port 啊!因為 Mac mini 2011 的 Mini Display Port 是舊版的,不支援 2560 x 1600,但是 Thunderbolt 卻支援了,所以在買線材的時候,要買的是「Thunderbolt 轉 HDMI」而不是「Mini DisplayPort 轉 HDMI」!

為了證明理論正確,我拿了一台 Thunderbolt 2 的 21:9 螢幕來測,插上去 Mac Mini,確實能用!所以說,買線材的時候千萬要注意 Thunderbolt 跟 Mini DisplayPort 的不同,以免多花一筆錢啊…

 

註:後來我用 34UC97 接 Mac mini,發現雖然規格上寫最高支援 2560 x 1600,但是實際上可以支援 3440 x 1440 的螢幕…太神奇了。

iOS 9.2-9.3 越獄,重開機可以躲過越獄偵測?

$
0
0

故事是這樣的,iOS 9.2-9.3 越獄,由於需要在重開機之後再開啟一次手機上的越獄程式,才能回到正常的越獄狀態。所以被許多人稱為「半越獄」模式(雖然實際上半越獄根本不是這樣定義的)。

也因為這種嶄新(?)的模式,最近有一種新的討論就是,如果重開機之後,不要執行越獄程式,是不是可以躲過一些 App 的越獄偵測?

與其在那邊討論,不如來實驗。於是我寫了一個越獄偵測的簡單 App。

 

這是 iOS 9.3.3 重開機後跑完越獄程式的偵測結果。可以看到幾乎所有的方法都能成功偵測到越獄(這邊打叉是被偵查到,打勾是躲過偵測成功)。Method A、B、C、D、E 牽涉到特定 App 的偵測方式,所以不公開他們的寫法。

jailbreak_detection_patched

 

重開機不進行越獄程式的結果。可以看到大部分偵測檔案位置的方法還是無法繞過偵測。尤其是 Cydia.app 這種幾乎每個擋掉越獄的 App 都會用的偵測法。反倒是 /bin/bash 抓不到了,Jailbreak Method A、D、E 也會失效。

至於上下都可以繞過偵測的 Jailbreak Method B,有可能是開發商寫錯,導致無論如何都能被繞過 XD 或者是在某些 iOS 版本有效,但是 9.3 無效了,這點不確定。

jailbreak_detection_reboot

 

結論:重開機躲過越獄偵測是「有可能」的,但是條件太嚴苛(需要開發者忘記偵測 Cydia.app 存不存在),導致這種機率算是不可能發生,所以大家還是乖乖裝反偵測 tweak 比較實在啦…

補充:今天發現 Paypal 用的偵測方式真的沒去偵測 Cydia.app。所以可以用重開機來解決…

解決 Office 2016 在 macOS 10.12 Sierra crash 的問題

$
0
0

今天在 macOS 10.12 Sierra 想開 PowerPoint,發現開了馬上 crash,重裝一次發現無效,於是找一找找到解法。在這邊先寫出來,之後大家升級就知道怎麼解決了。

這個問題是因為安裝的 Office 2016 版本太舊,簡單來說,去安裝最新版的版本就好了。但是有時候我們沒有辦法拿到最新版的安裝檔,例如大學裡面校園授權軟體上面放的永遠是最初版本…這時候就需要靠手動更新了。

因此,到這邊:https://support.microsoft.com/zh-tw/kb/3165798 下載最新版本的安裝檔,然後安裝就可以解決。要注意的是,由於很多核心套件都綁在 Word 裡面,跟其他 Office 軟體共用,所以 Word 一定要升級,如果你一開始就把 Outlook 或者 OneNote 刪除的話,就不用更新這兩個沒關係。

手動更新完畢之後,開啟任一個 Office 軟體,確認可以運作後,再去按檢查更新,讓他去抓 15.24 或者以上的版本,安裝完就正常了。

解決 zsh 載入緩慢的問題

$
0
0

這個問題困擾我一陣子了,雖然 zsh 很好用(我都在 Mac 用 iTerm + oh-my-zsh),但是一直以來都有開啟緩慢的問題。由於我會使用 TextExpander 來加速常用的指令輸入,所以現在反而速度瓶頸在 zsh 的載入。往往每次要到某個專案下 git pull 更新,指令都打完按 Enter 了,zsh 卻還沒載入完畢。

 

經過了一些時間的研究之後,發現 zsh 本身載入其實沒有想像中的久,問題出在 .zshrc 裡面載入的東西在慢。而經過仔細測試之後,我發現是由於我裝了 nvm,而 zsh 每次都要載入一個 93KB 的 nvm.sh…導致非常花時間。(又是 Node.js 害的…)

 

解決方法:
如果你不是每次都要用 nvm 的話,可以讓 nvm 不要預設自動載入。在原本的 .zshrc 中,把載入 nvm.sh 的部分換成用 function 包起來。像是這樣:

function loadnvm (){
    source $(brew --prefix nvm)/nvm.sh
    # 其他需要 nvm 才能正常用的東西也丟在這邊
}

當需要用 nvm 時,在 terminal 輸入 loadnvm,再讓他載入就好了。

如果你固定用某個版本的 npm,而不需要常常用 nvm 切換版本,可以在 .zshrc 加入兩行指令

export NVM_DIR=~/.nvm
export PATH="$NVM_DIR/v0.10.40/bin:$PATH"

其中 v0.10.40 換成你自己用的版本,這樣的話預設會可以用 npm,但是不能用 nvm(仍然需要手動載入)

 

經測試,這樣改了之後 zsh 載入速度快了 1.5~2 秒…真的順很多,如果你有一樣的困擾可以試試看。當然其他東西也可以改成這樣手動載入的,如果你有其他東西成為 zsh 載入瓶頸的話,也可以用這個方法解決。

解決 wireshark 在 macOS 找不到 interface 的問題

$
0
0

對於 wireshark,其實我也不太會用,就不多做介紹。只是偶爾分析封包的時候會用到而已,但是在 macOS 中一直有一個問題,就是一陣子沒開之後,會發現所有的 interface (網路介面)都消失了,抓不到。

The_Wireshark_Network_Analyzer

 

最直接的方法其實就是重新去官網下載安裝檔,然後重裝就好了。

不過這樣做實在有點麻煩,畢竟安裝檔也是蠻大的,加上不是每次都有那麼好的網路條件可以重新下載。所以後來爬文發現原來這個是因為檔案權限跑掉了所以才會這樣,因此可以用兩個方法來解決(下面兩步驟任選一個就可以,不必都做):

  1. 用 root 權限開啟 wireshark,terminal 下指令:
    sudo /Applications/Wireshark.app/Contents/MacOS/Wireshark

    這樣就可以看到所有的 interface 了

  2. 把權限改為自己,terminal 下指令:
    cd /dev && sudo chown $(whoami):admin bp* && ls -la | grep bp

然後看出來的結果是不是每個檔案都是你的 username:admin  的權限,如果不是的話再執行一次指令直到全部一致為止,然後用一般方式開啟 wireshark 即可。


在 armv7 的 Synology NAS 上裝 Gogs 來作為 git server

$
0
0

前陣子實驗室買了 DS216,原本除了當作工作資料儲存外,也想架一個 git server 給大家管理專案。不過因為沒做好功課的關係,買來才發現 Synology 官方支援的 GitLab 套件需要 Docker,而 Docker 需要在 x64 的裝置才可以執行(也就是至少要 DS216+ 才可以),於是開始找了解決方案…

雖然說 DS216 也是支援 git server,不過純粹的 git server 是全部都用指令的,並沒有 web server 跟簡單易用的 GUI。經過一些搜尋之後,找到了 Gogs 這個用 Go 語言寫成的替代方案。雖然說是用 Go 語言,但是 NAS 本身並不需要裝跟 Go 相關的東西,只要在編譯端(以下為 Mac)安裝就好了。

在開始之前,你需要先把 NAS 做一些基本的軟體修改,而以下操作都要用到 SSH,所以先去把 SSH 打開。接著我們要獲得 root 權限(admin 不行,一定要 root),教學可以參考這邊。快速貼過來如下(DSM 6.0):

  1. 先用 admin 權限的帳號登入 ssh
  2. 輸入 sudo -s
  3. synouser -–setpw root NEW_PASSWORD

這樣就可以設定 root 密碼了,之後用 root 登入。

此外,先裝 ipkg 跟一些基本文字編輯工具如 vim、nano 等,以方便接下來編輯設定檔用。

接著進入 DSM 網頁後台,安裝 git server 跟 Maria DB 兩個套件,Maria DB 之後需要 root 密碼,所以先設定好密碼供後續使用。然後我們要製作 Gogs 的 spk 安裝檔,如果你想自己編譯的話,就安裝 Go (在 Mac 可以用 homebrew 安裝),安裝完之後輸入這個指令:

GOOS=linux GOARCH=arm GOARM=7 go get -u github.com/gogits/gogs

之後最新版的 bianry 就會編譯完畢了。編譯完畢之後用 gogs-spk 工具打包,要注意的是不只 binary,public、scripts、templates 三個資料夾也要包進去,這三個資料夾可以在 gogs 原始碼專案中找到。

如果你懶得編譯,可以在這邊下載舊版已經打包好的 Gogs spk。

總之接下來就是安裝 Gogs,這邊應該都不會有什麼問題,安裝之後輸入你的 NAS IP ,後面加 port 3000。

gogs_settings

接下來請按照我上面的填寫,port 3000 可以換成你喜歡的,如果你自己有買域名可以設定 domain。如果沒有 domain 的話就用 IP 吧。要注意的是 Repository Root Path 一定要改掉,因為原本那個位置會在 Gogs 移除或者升級時被刪除。我建議是在 FileStation 開一個新的共用資料夾叫做 Gogs,然後控制台設定讓 users 群組禁止存取,這樣會比較安全。假設你跟我一樣開了一個叫做 Gogs 的共享資料夾,就在 SSH 裡面輸入

cd /volume1/Gogs

看看是否成功,如果成功代表位置沒錯,然後把 Repository Root Path 改為 /volume1/Gogs 即可。最後,如果你有 domain 的話,可以去控制台 -> 應用程式入口 裡面設定反向代理伺服器,這樣就不用每次都輸入 port 了。


到上面是基本 HTTP 設定,如果你要用 HTTPS 的話要更麻煩一點。首先先到控制台 -> 安全性 -> 憑證裡面,去生一個不是自己簽名的憑證(例如用 Let’s Encrypt)

設定完畢之後儲存,接下來到 SSH 裡面,輸入

vim /usr/local/gogs/gogs/custom/conf/app.ini

 

把 PROTOCOL 改成 HTTPS,ROOT_URL 前面如果是 http 改成 https。接著新增兩個項目:CERT_FILE 跟 KEY_FILE。CERT_FILE 輸入 /usr/syno/etc/certificate/_archive/亂數/cert.pem,KEY_FILE  輸入 /usr/syno/etc/certificate/_archive/亂數/privkey.pem。亂數要你自己去 cd 找一下確切名稱。確認之後存檔,之後到套件工具裡面把 Gogs 關閉重開就好了。

 

後記:這個教學看起來很簡單,但是實際上我搞了大半天,因為要弄 custom domain 跟 HTTPS 讓教學難度又提升一個層級…如果有問題再問吧。

為什麼我從不用 iCloud 備份手機

$
0
0

因為難用啊。

自從 iOS 5 有所謂「PC Free」的特性,以及 iCloud 可以備份手機之後,這幾年下來,相信很多人已經習慣用 iCloud 來自動備份手機的資料了。但是我卻從來不使用 iCloud 來備份手機,這篇文章就是要告訴大家,為什麼不要用 iCloud 備份。

在早先年代,由於 iPhone 只能透過 iTunes 備份,而又有一堆人平常不把手機接電腦,所以造成了資料遺失的情況時常發生。因此在 iOS 5 之後,Apple 推出了 iCloud,可以讓手機透過簡單的設定來自動備份使用者資料。

但是使用 iTunes 來備份依然是我的第一選擇,原因有很多,以下來一一說明:

  • iTunes 備份在大多數情況下擁有比較快的速度,相對於傳到雲端,用 USB 傳到電腦快多了
  • 現在隨著手機容量越來越大,照片畫素越高,檔案越大,免費的 5GB iCloud 拿來可能都不夠,反而沒辦法備份
  • 即使在網路不穩的地方也能使用,不必擔心斷線
  • 可以輕易的複製備份到其他地方儲存,作為快照使用
  • 同樣的,搭配 TimeMachine 等還原系統,本地備份可以擁有長達數個月,甚至數年的舊資料備份,不怕誤刪
  • 同上,不怕備份是損毀或者出錯,如果出錯再往前一個版本就好
  • 同上,不必怕因為降級 iOS 系統而不能還原備份,只要你有對應版本的備份,頂多損失一段期間內的資料
  • 可以透過軟體(例如 iMazaing)倒出單一檔案,或者進行檔案修改
  • 有越獄的使用者,可以透過本地備份倒出的方式,在乾淨系統下,進行部分檔案還原,而不需要全部資料都恢復
  • 不怕 iCloud 帳號被盜或者忘記密碼(不夠如果本地備份有加密但是忘記密碼…也一樣沒救)

對我來說,最重要的就是可以保持多個備份,還有越獄後可以還原指定檔案,這兩個功能很重要。多個備份可以防止自己誤刪,然後 iCloud 又自動把誤刪後的系統備份,導致無法還原舊資料的狀況。而越獄後還原指定檔案,更是讓我可以從 iPhone OS 2.0 的部分資料到 iOS 10 都還可以頭好壯壯的萬靈丹。

所以,在這邊建議所有使用 iCloud 備份的使用者,使用 iTunes 備份雖然比較麻煩,但是考慮到應用層面以及處理疑難雜症的情況,還是做個 iTunes 備份會比較好。當然,如果你兩邊都有備份也可以就是了。

iOS App 逆向實戰 – mach-o binary 破解

$
0
0

因為朋友要求,所以今天來嘗試繞過某銀行 App 的越獄偵測。

一開始的步驟跟大部分的情況一樣,先破殼拿到未加密的 binary,然後 classdump Objective-C header,然後寫了 tweak 嘗試注入。不過這次事情沒這麼簡單… 經過一番折騰後,總算是破解了,因此寫下這次的思路,供以後參考用。

注意:本教學僅供個人研究以及個人使用,散佈破解過的 binary 在許多國家與地區是違法行為,請不要這樣做。

首先,寫完 tweak 之後,發現 tweak 的 NSLog 根本沒有出現,檢查了 tweak 本身跟 filter 也沒有發現任何問題。仔細看 console 裡面,發現沒有任何 dylib 注入成功的紀錄,甚至沒有啟動 App 的 log,這下可妙了。

接下來,用 MachOView 檢查,發現有趣的東西:

machoview

Google 一下,__RESTRICT 會阻止 binary 被 dylib 注入,所以這時候有三種思路解決:

  1. 破解 /usr/lib/dyld
  2. 替換 __RESTRICT
  3. 不要用 tweak 了,直接硬幹 binary

第一種方式的成本太高(我能力不足,加上不知道 dyld 跟 MobileSubstrate 的載入順序,還有亂改系統檔案的風險太高),所以不考慮,轉而考慮第二跟第三種方式,由於不管哪一個都會破壞 codesign 而導致需要重新簽名,所以就算做了 tweak 也不能放到 Cydia 散佈。而在本範例中,我們湊巧改 binary 的成本會比替換 __RESTRICT 低,所以採取第三種方式 — 硬幹 binary。

由於 mach-o binary 可以把多個 CPU 架構的 binary 合在一起,但是新架構的 CPU 向下相容舊架構的 binary,所以基於懶惰的關係,雖然目標 App 有  armv7、armv7s、arm64 三種架構,我們就只破解 armv7 就夠了。

lipo ./targetApp -extract armv7 -o ./targetApp_armv7

之後用 Hopper 或者 IDA Pro 來偷看一下:

bankapp_hop

經過強大的計算,我們可以得知這個 method 長這樣:

- (void)jailbreakStatus:(int)arg1 {
    if (arg1 < 1) {
        return;
    }
    [self jailbreakAction];
}

如果你要用 hook 的,當然就是把 arg1 給永遠弄成 0,不過我們今天是要 binary 破解,所以要顯示 hex

bankapp_hop_hax

從這裡看出 cmp r2, 0x10x01 0x2a,之後用任何 hex editor,把 0x00039e1e 改成 0x02 0x2a,於是函式被我們改成了:

- (void)jailbreakStatus:(int)arg1 {
    if (arg1 < 2) {
        return; //arg1 永遠會是 0 或 1,所以下面的動作永遠不會被執行
    }
    [self jailbreakAction];
}

然後就破解啦!最後把 binary 丟回去 IPA 重簽名就可以用了。

最後最後,一定要記得一點:

散佈破解過的 binary 在許多國家與地區是違法行為,請不要這樣做。

因此,無論你是把 __RESTRICT 拔掉,或者學我這樣直接破解,都不能散佈破解後的成果,只能供自己使用。

一些升級 Sierra 之後要注意的事項

$
0
0

雖然 Sierra 都出到 10.12.1 了,但是之前由於沒有乾淨重灌所以出了一些問題,這次趁著重灌整理一下需要注意的事項。

  1. 首先,你如果要用一些會修改系統核心的軟體,記得關閉 SIP,或者參考軟體本身的教學,關閉部分 SIP 功能。我比較懶惰都直接關掉啦,只是這樣比較不安全。
  2. 如果要用 SIMBL 的話,關閉 SIP 之後到這裡安裝 mySIMBL 比較簡單。
  3. iStat Menus 5.20 (含)以下在重開機之後順序會跑掉,去抓 5.30 (目前是 beta 不會自動更新)即可。
  4. Parallels Desktop 10 可以用,但是我買了 12 了,懶得測試是否在重灌之後全新安裝時可以啟動。(從 10.11 升級,不重灌確定可以)
  5. Karabiner 不能用了,要換成 Karabiner-Elements,目前開發中,問題不少但是更新頻繁。
  6. 最嚴重的問題,Garbage Collection 不能用了,所以一些「古老的」App 無法使用。包括 Smultron、Fraise 這兩個文字編輯器、ScreenFlow 4.0 (5 以上正常),還有我最愛用的,從 Xcode 3 挖出來的 Property List Editor 也不能用了。
  7. CocoaPods 要安裝要下這個指令:sudo gem install -n /usr/local/bin cocoapods –pre

 

以上,大概幾點比較重要的部分,而日常使用的軟體大部分在這時間點應該都支援 Sierra 了。如果再遇到什麼問題會再貼上來。

把 Thunderbolt 外接硬碟改造成外接盒

$
0
0

雖然很突然,不過我買了一個 Thunderbolt 硬碟,然後把它裡面的硬碟換掉,並改造成外接盒了。由於長期以來用 FW800 外接的 TimeMachine 硬碟,在前一陣子貌似是因為 FW800 外接盒的供電問題,導致硬碟壞軌了,一氣之下想說乾脆買個 Thunderbolt 外接盒。

不過事情沒有想像中的簡單,在網路上搜尋了半天,發現大部分的 Thunderbolt 設備要不然就是像 AKiTio 雷霆雙劍一樣的 RAID 外接盒,要不然就是單顆硬碟或 SSD 搭配 Thunderbolt 介面外接盒的組合。含有 SSD 的組合大部分都很貴,而搭配 HDD 的組合則不算是外接盒,因為硬碟是作在盒內,且不讓你隨便亂拆的。所以這次的目標就是找一個便宜,又可以拆的 Thunderbolt 硬碟來改造。

 

使用 Thunderbolt 的原因

至於為什麼堅持要用 Thunderbolt 的硬碟呢?可以看下圖,由於我自從用了 LG 34UM95 (現在已經升級成曲面的 34UC97) 跟 AKiTiO 雷霆雙劍之後,搭配上一條 Thunderbolt 轉 FW800 的線,讓我的外接設備如下圖:

 

mac-external-devices

 

可以看到,所有設備都是直接透過 Daisy Chain 串接起來的,所以要開工很簡單,把電腦接上電源,然後串上 34UC97 的 Thunderbolt 2 接頭,就收工了,永遠不會忘記要接 TimeMachine 備份,永遠不會忘記要接 RAID。而未來當我換成 MacBook Pro 2016 款的話,也只要一條 Thunerbolt 3.0 轉 2.0,然後剩下的東西接上去轉接頭就好,不必每個設備都買轉接頭。(34UC97 本身還可以當 USB Type-A hub,直接把 Type-A 的東西串上去就好了)

此外,MacBook Pro 的 USB 只有兩個孔,平常插 iPhone 跟外接硬碟就滿了,如果還要常駐一台 TimeMachine 的話,就務必要用 Hub,而 Hub 又會掉速還會電壓不足…不如用 Thunderbolt 不佔孔還可以常駐。

所以這就是為什麼我堅持這次換 TimeMachine 的硬碟要用 Thunderbolt 的關係,這樣可以繼續用 Daisy Chain,以及不佔用 CPU 資源的好處是 USB 達不到的。(以往看到的資料寫到,USB 需要經過 CPU 轉換,如果有錯請指正)

 

購買 Thunderbolt 外接硬碟

因此,經過一番搜尋之後,我買了 Buffalo 的 PA 系列 500GB 款式。可能有人會想說,如果直接買 1TB 就不用改造了,為什麼買 500GB 版本來改呢?主要有兩個原因:1. 內建的硬碟不一定很好,我手邊有比較適合的硬碟。2. 1TB 的版本要 4488 元,500GB 只要 2790 元… 在經濟考量下,就買了 500GB 的版本。由於這個系列好像已經停產了?所以其實要找一下哪裡有賣,我這邊就不打廣告了。

另外要注意的地方是,這個硬碟是只有 Thunderbolt 1.0 的,雖然最高速度只有 10 Gbps, 但對我們來說只是要裝 HDD 做備份硬碟用,是已經足夠了。另外一點則是這個外接硬碟本身不支援 Daisy Chain,也就是說你買了之後只能接在所有 Thunderbolt 裝置的最後一個,後面無法再接東西,算是一個小缺陷。

 

準備工作

在開始之前,我們需要準備幾個東西:

  • Buffalo Thunderbolt 外接硬碟
  • 你自己要換的硬碟
  • 螺絲起子
  • 吹風機
  • 矽膠運動手環
  • 泡綿膠(非必須)
  • 透明膠帶(非必須)

可能有人注意到,為什麼沒有要準備 Thunderbolt 線?原因很簡單,這個外接硬碟有送一條…超級佛心的。

 

開箱與改造

首先,東西拿到之後我們看一下,發現生產日期是 2012 年 10 月… 四年多以前,可見沒什麼人買,這次改造根本是幫廠商清庫存(誤)。拿到之後,馬上破壞保固把它拆了。本體與背蓋是用雙面膠黏住的,所以硬拆就好。如果覺得難拆就用吹風機加熱,然後拆掉。

ministation-thunderbolt

 

之後看到一塊黑色的塑膠,上面都是雙面膠,清理殘膠要很久,可以選擇不要清理直接把它丟了,不過如果要丟掉建議先把上面的 U 形腳墊拆下。黑色塑膠跟底座是用卡榫以及螺絲固定的,先拆螺絲,再把卡榫弄開就可以拆下硬碟與機板。

ministation-thunderbolt-2

 

接著,撕掉膠帶就可以取下硬碟。換上自己用的硬碟吧!

ministation-thunderbolt-3

 

如果你跟我一樣把黑色塑膠丟掉的話,可以先把 U 形腳墊拆下來,然後用泡綿膠把它跟底蓋固定,泡綿膠另外一邊我用透明膠帶蓋住,避免又黏到本體。

ministation-thunderbolt-4

 

最後,把東西都蓋回去,然後用矽膠運動手環綁起來就好了。

ministation-thunderbolt-5

 

結果

換上之後確認可以正常使用,不過由於是用 HDD 的關係,雖然用 Thunderbolt,但是速度依然卡在 80MB/s 左右,不過只是拿來備份而已,就隨便了啦!換下後的硬碟可以用 1000 元台幣賣給不知情的人,這樣這個外接盒 + Thunderbolt 線只要 1790 元,是不是很划算呢?啊對了最後補充一下,就算沒有 Thunderbolt 的環境,這個外接硬碟還是可以接 USB 3.0,所以不用擔心,就算不用 Thunderbolt,依然可以給其他電腦或者 PC 讀取。

 

補充

有人問到這個 Thunderbolt 是不是因為原本搭配 HDD,所以為了降低成本會用比較差的晶片降速,導致裝 SSD 的時候速度出不來,於是拿來測試了一下。測試 SSD 是創見 370S 256GB 版本,不要問我為啥用創見,我手邊閒置的只有這顆。

首先直接接 Thunderbolt 孔測速(不經過其他裝置 Daisy Chain)

blackmagic-thunderbolt-ssd

 

接著換用 Daisy Chain 接到雷霆雙劍後面

blackmagic-thunderbolt-ssd-2

可以看到由於前面接了一堆東西,所以寫入被降速了,但是讀取沒有差別。另外我後來用了別的 USB 3.0 外接盒,測試速度依然跟 Thunderbolt 直接接差不多,由此可見這個外接盒應該不是 SSD 的速度瓶頸。倒是 SSD 沒有跑出原本應有的速度就是了。

補充:

我後來用了 Plextor M6S 測試,速度上限依然差不多,所以錯怪創見 SSD 了,但是我進去系統裡面看這個 Thunderbolt 裝置應該是 SATA 3 的,不知道為何速度一直在 SATA2 極限(375MB/s)左右,以上供想裝 SSD 的使用者參考

Divvy 設定還原法

$
0
0

Divvy 是個方便 Mac 使用者來規劃、分割視窗大小的軟體。今天我們不是來介紹功能,是要講如何還原設定。由於 Divvy 本身有一個功能是可以自己設定快捷鍵來快速設定視窗大小,所以我設定了一堆快捷鍵,然而設定卻只能匯出匯入,不能手動備份設定檔…

大部分的軟體都可以備份設定檔,然後重灌電腦之後還原設定檔就可以開工。但是 Divvy 不一樣,雖然我用 Time Machine 備份了,可是一旦要還原設定檔的時候他就會很神奇的不吃我之前的快捷鍵設定。看到官方教學,提到要匯出字串之後再還原字串回去…不過我都重灌了,是要怎麼匯出呢?其實還是可以的。

首先,先到 Time Machine 裡面挖到舊的設定檔,位置在 ~/Library/Preferences/com.mizage.direct.Divvy.plist。之後用 TextWrangler 開啟,記得千萬不要用 Xcode 或者任何可以直接開 plist 的軟體,一定要純文字編輯器(最好就用 TextWrangler)開啟。

接著找到 shortcuts 下面一堆 data,把它複製起來,然後合併為一行,中間不要有任何空白。最後在前面加上

divvy://import/

把這串東西用 Safari URL 開啟就好了。其實 shortcut 裡面的資料就是匯出工具會匯出的東西,我們現在只是手動匯出,再用程式匯入,這樣就可以正常還原設定了。如果在設定那邊看不到匯入的快捷鍵,則把 Divvy 重開就好了。

備份 iPhone 以及 Mac 上面的「替代文字」列表

$
0
0

在 iOS 跟 Mac 上,有一個「替代文字」的功能,可以讓你快速輸入字串,例如 omw 自動變成 On my way 這樣。由於 iCloud 同步很爛的關係,有時候這個列表會壞掉,或者偶爾你想要分享這個列表給朋友使用,這時候就可能會需要匯出以及匯入的功能。

像我就是把這個列表全部拿去給常用表情使用,搭配拼音輸入法,只要我打 emj,就會出現表情符號的列表讓我選。

那如果我要備份這個列表要怎麼做呢?其實很簡單,先按 cmd + A 全選,或者手動選你要備份的項目,然後直接拖到桌面上。

對,這樣就好了!然後如果你要分享給朋友,或者還原回去的話,就把這個檔案拖回去就好了…是不是很簡單呢?


小技巧:打字遇到不會唸的字怎麼辦?就把他拆開啊

$
0
0

有時候我們在打字的時候,會需要輸入不會唸的字,如果你是使用拆字方式來輸入(例如倉頡、無蝦米),那對你來說根本不是問題。不過要是使用拼音、注音等輸入法,由於不會唸幾乎等於無法輸入,對使用者來說可就是一個困擾了。

但是你知道嗎?其實 macOS 的注音跟拼音輸入法是有內建所謂的「拆字」輸入方式的。

舉例來說,我想輸入「夶」好了,但是我不知道怎麼唸,只知道是「大大」合起來,這時候就只要輸入「大大」的拼法(因為我用拼音,所以是 dada),然後展開選字列,按下「拆字」,就會出現啦!而且輸入法還會告訴你這個字怎麼唸,像是「夶」音同「比」,下次要輸入就知道怎麼打了。

同樣原理,輸入「longlonglong」,可以找到「龘」,輸入「wangba」可以找到「兲」…等等,而且不只拼音,用注音輸入法也可以使用喔!

小技巧:在 macOS 10.12.2 顯示電池剩餘時間

$
0
0

眾所皆知的,macOS 10.12.2 把電池剩餘時間功能給砍了,雖然全世界都知道明明就是新的電腦比較耗電,但是 Apple 就是要用這種掩耳盜鈴的方法…

無論如何,這個功能是可以被加回去的,方法也很簡單,把舊的電池顯示功能丟回去系統就好了。

(本文技巧感謝由 ‎Starck Chang 提供)

檔案請用我提供的版本,因為我是從 10.12.1 取出的,相容性會比較好。

下載位置:這裡

首先你要關閉 SIP 系統保護,這邊不多說明,如果你不知道怎麼關,就請不要亂動系統。

接著到

/System/Library/CoreServices/Menu Extras

記得先備份你的 Battery.menu,因為我內附的是只有 10.12.2 的版本,如果未來出了更新版本,則需要由你自己備份你目前使用系統的版本才對!

備份完畢之後,把 10.12.1 的蓋過去,然後在終端機輸入

killall SystemUIServer

就可以了。

不想動系統檔案?那去買 iStat Menus 也可以,功能還更多喔!

至於要還原的話,丟 10.12.2 的檔案(或者你自己的備份)回去就好了。

iPhone 4s 6.1.3 降級 5.1.1 教學

$
0
0

前幾天,在 @alitek123 的幫助下,我成功的把 iOS 6.1.3 的 4S 降級回 5.1.1 了,在經過同意之後,現在我來把教學跟大家分享。

因為原本的過程我沒有紀錄下來,所以會沒有什麼圖片對照,文後會附幾篇類似的教學,可以從那邊參考看看。

 

先備條件:

  1. iPhone 4s
  2. 系統目前版本需為 6.1.3
  3. 有 iOS 5.1.1 的 SHSH
  4. Mac 或 linux 系統
  5. PC 或者虛擬機 (某些情況非必須)

如果你的 iPhone 4s 不是 6.1.3,但是是 9.2~9.3.4 之間,可以用這個教學來降級。

確認你的 4s 是 6.1.3 系統之後,先用 p0sixspwn 越獄,這邊應該要用 Windows 的工具越獄,macOS 的因為目前系統版本與當時版本差異太大,會失敗。

越獄完畢之後在 Cydia 裝 Core Utilities 跟 OpenSSH,手機這邊就暫時準備到這邊。

 

下載項目:

  1. 修改過的 Odysseus v0.999.0
  2. jato_n94_downgrade.ipsw
  3. iPhone 4s iOS 5.1.1 官方韌體
  4. 4s511BB.Buildmanifest
  5. iFaith v1.5.9 (非必須)

 

先把所有東西下載下來,此外,你需要你的 iPhone 4s 5.1.1 的 SHSH,我會建議用 iFaith 獲得 SHSH 檔案。獲得 SHSH 的影片教學如下:

 

把 Odysseus 解壓縮到桌面,然後把你的 SHSH 檔案從類似「000001234567ABCD_5.1.1-9B206_cydia.shsh」的名字,改為類似「1250999905229-iPhone4,1-5.1.1.shsh」這樣的格式。其中,000001234567ABCD 是 16 進位,要換算成 10 進位,如你不會換算的話可以用系統內建的計算機,或者這個網站。接著,把 SHSH 丟到 ./odysseus/macos/shsh 裡面,兩個 ipsw 則丟到 ./odysseus/macos 裡面,如下圖。到此,準備工作完成。

接下來正式操作開始,把手機接到電腦上,關閉 iTunes,打開 Terminal,移動到 Odysseus 的 macOS 資料夾底下。

輸入:

./validate ./shsh/ECID-iPhone4,1-5.1.1.shsh ./iPhone4,1_5.1.1_9B206_Restore.ipsw -z

ECID 為你真實的 ECID,自己看著辦。輸出結果應該要如下:

./shsh/ECID-iPhone4,1-5.1.1.shsh seems usable for ECID 0xECID

只要看起來 useable 應該就可以了…

接著輸入:

./sshtool -k ../kloader -b pwnediBSS -p 22 裝置IP

系統提示輸入 SSH 密碼,預設是 alpine。

這時候應該會變成 pwned DFU 模式,iTunes 會跳出來說需要回復 iPhone,不理他,直接關掉 iTunes,輸入:

./idevicerestore -d -w -e ./jato_n94_downgrade.ipsw

如果一切順利的話就會正常開始降級了,如果降級「成功」,會跑進度條,然後跳出連接 iTunes 的畫面,iTunes 依然顯示這個 iPhone 需要回復。

這是因為 5.1.1 的 Baseband 跟 6.1.3 不一樣,而 Baseband 不能正常降級,所以我們接下來要再平刷一次修改 Baseband 的 5.1.1 官方韌體。

這時候我們要先來修改一下 5.1.1 官方韌體,把 4s511BB.Buildmanifest 解壓縮之後,可以看到裡面有三個檔案,可以用 BetterZip 或者 WinRAR、7-Zip 之類的,把官方韌體打開,然後三個檔案替換過去,並且刪除原本的 baseband 檔案,替換的檔案如下,注意到原本的 bbfw 那些要刪除:

把這個 IPSW 存檔,然後再次驗證

./validate ./shsh/ECID-iPhone4,1-5.1.1.shsh ./iPhone4,1_5.1.1_9B206_Restore.ipsw -z

最後一樣用 idevicerestore 還原就好了

./idevicerestore -d -w -e ./iPhone4,1_5.1.1_9B206_Restore.ipsw

 

參考教學:

注意,下面教學連結跟此教學有諸多步驟不同,請只參考相同的部分,不同的部分以本教學為準。

http://bbs.feng.com/read-htm-tid-10313479.html

快速切換 macOS beta program 狀態

$
0
0

如果想要用 macOS 的測試版,但是過了一段時間之後,不想繼續使用 beta 的話,一般來說可以去「設定」的 AppStore 選單裡面選擇是否接收 beta 版軟體。可是經過測試,這個選項有時候選了之後還是沒效,因此在此提供一個更快速的方法。

取消 beta program:

sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil unenroll

如果要回到 beta program 則是:

sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil enroll SEED_PROGRAM

SEED_PROGRAM 目前已知有 DeveloperSeed 跟 PublicSeed 兩種,選擇適合的的加入就好了。

 

在世界迷霧紀錄飛機航線的最佳方法

$
0
0

如果有玩世界迷霧的話,應該都會遇到一個問題,那就是出國的時候飛機的航線因為 GPS 收訊(以及開飛航模式的關係),無法紀錄軌跡。

不過其實這個是有解的,既然我們的手機無法紀錄,那就靠別人紀錄就好了啊!因此,今天要寫的就是如何用 flightradar24 來匯入到世界迷霧的方法。

首先,先確定你的航班的日期以及班次,然後在 flightradar24 搜尋班次,搜尋之後選擇你要的日期,然後按一下圖中的按鈕。

接著到一個新的頁面後,複製網址列,會得到一串網址,例如:

https://www.flightradar24.com/data/flights/cx467/#c9ccb49

如果你的航班是在過去七天內的話,就把 # 後面的編號,例如這邊是「c9ccb49」複製起來,然後直接用 這個工具 免費下載,選擇輸出 GPX。

如果你的航班超過 7 天的話,就要去註冊 flightradar24 的付費會員(會員前 7 天免費),最初級的付費會員可以下載前 60 天的紀錄,每個月只能下載 10 個紀錄,我想應該足夠一般人使用。若要下載更多,可能就要高級會員。註冊會員後選擇要的日期,按 KML 下載。

下載好的 KML 可以用 這個網站 轉成 GPX,雖然世界迷霧可以吃 KML 格式,但是因為飛機移動速度過快,導致很多點與點之間超過 2km,而世界迷霧不會認超過 2km 的點,所以要轉成 GPX 再編輯。

接著下載 GPX Track Editor,對,這個軟體只有 Windows 版,Mac 使用者自己開個虛擬機來用吧。下載之後載入你剛剛轉好的 GPX 檔案。然後在軟體中選擇 Tool → Options,確定是使用公制單位,不是的話自己改掉。

 

最後,選擇 Tracks → Increase Frequency,把 Maximum time 取消,把 Maximum distance 改成 2000 或以下。(根據實驗,改 2000 還是會有些點斷掉,改成 1950 左右的數字會比較完美),按 OK 後存檔即可匯入到世界迷霧中。

 

參考文章:https://www.ptt.cc/bbs/iPhone/M.1469221157.A.135.html Read More

Viewing all 94 articles
Browse latest View live