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

轉自:http://blog.csdn.net/yiyaaixuexi/article/details/8288077bash

      你的應用正在被其餘對手反向工程、跟蹤和操做!你的應用是否依舊裸奔豪不防護?網絡

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

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

經常使用的命令和工具

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

sysctl       ——檢查設定Kernel配置工具

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

route        ——路由修改spa

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

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:
00002de0pushl$0x00
00002de2movl%esp,%ebp
00002de4andl$0xf0,%esp
00002de7subl$0x10,%esp
00002deamovl0x04(%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;  

4.編譯


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

5.校驗


 

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 !!!

 

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

相關文章
相關標籤/搜索