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

Hack必備的命令與工具



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

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

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


常用的命令和工具


ps           ——顯示進程狀態,CPU使用率,內存使用情況等

sysctl       ——檢查設定Kernel配置

netstat     ——顯示網絡連接,路由表,接口狀態等

route        ——路由修改

renice       ——調整程序運行的優先級

ifconfig    ——查看網絡配置

tcpdump   ——截獲分析網絡數據包

lsof           ——列出當前系統打開的文件列表,別忘記一切皆文件,包括網絡連接、硬件等

otool      ——查看程序依賴哪些動態庫信息,反編代碼段……等等等等

nm         ——顯示符號表

ldid       ——簽名工具

gdb          ——調試工具

patch       ——補丁工具

SSH         ——遠程控制




備註:

 otool,可查看可執行程序都鏈接了那些庫:


 otool  -L WQAlbum 

可以得到:


WQAlbum:
/System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AdSupport.framework/AdSupport (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/System/Library/Frameworks//MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices (compatibility version 1.0.0, current version 40.0.0)
/System/Library/Frameworks/CoreMedia.framework/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
……


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

otool -tV WQAlbum |head -n 10 

可以得到:


WQAlbum:
(__TEXT,__text) section
start:
00002de0 pushl $0x00
00002de2 movl %esp,%ebp
00002de4 andl $0xf0,%esp
00002de7 subl $0x10,%esp
00002dea movl 0x04(%ebp),%ebx
……



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



nm -g WQAlbum  ( -g 代表 global) 

可以得到:


001e5eec S _OBJC_IVAR_$_WQPhotoViewController.albumObject
001e5efc S _OBJC_IVAR_$_WQPhotoViewController.int_current
001e5f00 S _OBJC_IVAR_$_WQPhotoViewController.int_total


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




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

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

ldid -S helloworld 



編譯Hello world


1.首先找到編譯器:






arm-apple-darwin10-llvm-gcc-4.2 就是了。

爲了方便起見,可以在.bashrc或者profile 配置下環境變量,方便編譯。


2.找到SDK




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


3.來個經典Hello world :


  1. #include <stdio.h>                                                                                             
  2. int main(){  
  3.        printf("Hello world !!!\n");  
  4.        return 0;  
  5. }  




4.編譯




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


5.校驗




file查看一下類型,沒問題。


6.SCP給iPhone、iPad

前提是,設備已經越獄並且安裝了SSH,且必須在同一網段。

$scp helloworld [email protected]:hello world


7.登錄設備簽名

$ssh -l root x.x.x.x

#ldid -S helloworld


8.執行程序

#./helloworld

Hello world !!!


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章