iOS逆向環境搭建

小星星_ios發表於2020-03-23

提高工作效率的工具

名稱 用途
Alfred 便捷搜尋/工作流
XtraFinder 增強形Finder
iTerm2 完爆Terminal的命令列工具
Go2Shell 從Finder快速定位到命令列工具

Mac遠端登入到iPhone

通過Mac遠端登入到iPhone的方式建立連線

SSH、OpenSSH

  • SSH
    • Secure Sehll,安全外殼協議,是一種可以為遠端登入提供安全保障的協議
    • 使用SSH,可以把所有傳輸的資料進行加密,“中間人”攻擊方式就不可能實現,能防止DNS欺騙和IP欺騙
    • 是通過TCP協議通訊,所以要確保MACiPhone在同一個區域網
  • OpenSSH
    • SSH協議的免費開源實現
    • 可以通過OpenSSH的方式讓Mac遠端登入到iPhone

###使用OpenSSH遠端登入步驟

  1. ssh 帳戶名@伺服器主機地址,初始密碼為alpine
ssh root@192.168.1.1 
複製程式碼
  1. 進入之後可以用 passwd命令來修改密碼
  2. 退出命令
exit
複製程式碼

root、mobile

  • root: 最高許可權帳戶,$HOME/var/root
  • mobile: 普通許可權,只能操作一些普通檔案,不能作業系統級別的檔案,$HOME是/var/mobile

SSH的通訊過程

  1. 建立安全連線,就是利用SSL
  2. 客戶端認證
    • 基於密碼
    • 基於金鑰
cd ~/.ssh
ssh-keygen
ssh-copy-id root@192.168.1.1
cat ~/.ssh/authorized_key
複製程式碼
  1. 資料傳輸

22埠

埠:對外服務的埠

  • 21: ftp
  • 80: http
  • 22: ssh

通過USB進行SSH登入

  • 預設情況下,由於SSH走的是TCP協議,Mac是通過網路連線的方式登入到iPhone,要求iPhone連線Wifi
  • 為了加快傳輸速度,也可以通過USB連線的方式進行SSH登入(usbmuxd)

usbmuxd的使用

  1. 下載usbmuxd工具包
https://cgit.sukimashita.com/usbmuxd.git/
複製程式碼
  1. iPhone的22埠對映到Mac的10010埠
python tcprelay.py -t 22:10010
複製程式碼
  1. 連線自己的10010埠
localhost,本地虛擬網路卡的IP地址,127.0.0.1
ssh root@localhost -p 10010
複製程式碼
  1. usbmuxd會將Mac本地10010埠的TCP協議資料,通過USB連線轉發到iPhone

iOS終端的中文亂碼問題

  • 預設情況下,iOS終端不支援中文輸入和顯示
  • 解決文案:新建一個~/.inputrc檔案
set convert-meta off
set output-meta on
set meta-flag on
set input-meta on
複製程式碼
  • 如果是想在終端編輯檔案內容,可以安裝一個vim

Cycript的開啟和關閉

  • 開啟
cycript
cycript -p 程式ID
cycript -p 程式名稱
複製程式碼

Cycript常用語法

  • UIAPP
[UIApplication sharedApplication]
複製程式碼
  • 定義變數
var 變數名 = 變數值
複製程式碼
  • 用記憶體地址獲取物件
#記憶體地址
複製程式碼
  • 已載入的所有OC類
ObjectiveC.classes
複製程式碼
  • 檢視物件的所有成員變數
*物件
複製程式碼
  • 遞迴列印view的所有子控制元件(跟lldb一樣的函式)
UIApp.keywindow.recursiveDescription().toString()
複製程式碼

*篩選出某種型別的物件

choose(UIViewController)
複製程式碼

www.jianshu.com/p/c6c5571d8…

相關文章