iOS安全攻防(一):Hack必備的命令與工具

程式媛念茜發表於2014-02-09

注:本文最初發布在 念茜的部落格

你的應用正在被其他對手反向工程、跟蹤和操作?你的應用是否依舊裸奔毫不防禦?

鄭重宣告一下,懂得如何攻擊才會懂得如何防禦,一切都是為了之後的防禦作準備。廢話少說,進入正題。

今天總結一下為hack而做的準備工作。

常用的命令和工具

ps ——顯示程式狀態,CPU使用率,記憶體使用情況等
sysctl ——檢查設定Kernel配置
netstat ——顯示網路連線,路由表,介面狀態等
route ——路由修改
renice ——調整程式執行的優先順序
ifconfig ——檢視網路配置
tcpdump ——截獲分析網路資料包
lsof ——列出當前系統開啟的檔案列表,別忘記一切皆檔案,包括網路連線、硬體等
otool ① ——檢視程式依賴哪些動態庫資訊,反編程式碼段……等等等等
nm ② ——顯示符號表
ldid ③ ——簽名工具
gdb ——除錯工具
patch ——補丁工具
SSH ——遠端控制

備註:
① otool,可檢視可執行程式都連結了那些庫:

可以得到:

可以反編譯WQAlbum的__TEXT__段內容, 截前10行:

可以得到:

② nm,顯示程式符號表,用我自己的應用程式私人相簿現身說法一下:

可以得到:

其中,WQPhotoViewController為類名,albumObject為該類的成員

③ ldid,是iPhoneOS.platform提供的簽名工具,我們自己編譯的程式需要簽上名才能跑在iPhone/iPad上,使用方法

編譯Hello world

1.首先找到編譯器:

1355320147_4514

arm-apple-darwin10-llvm-gcc-4.2 就是了。
為了方便起見,可以在.bashrc或者profile 配置下環境變數,方便編譯。

2.找到SDK

1355320496_4498

編譯我們自己的程式的時候需要指定該目錄下的SDK。

3.來個經典Hello world :

4.編譯

1355320696_9374

其中 -isysroot用來指定build時的SDK

5.校驗

1355320804_3461

file檢視一下型別,沒問題。

6.SCP給iPhone、iPad
前提是,裝置已經越獄並且安裝了SSH,且必須在同一網段。
$scp helloworld root@x.x.x.x:hello world

7.登入裝置簽名
$ssh -l root x.x.x.x
#ldid -S helloworld

8.執行程式
#./helloworld
Hello world !!!

執行成功,這就完成了最簡單的手動執行自己的應用程式。

相關文章