How to patch iOS Applications using Objection

บทนำ (Overview)

ในการใช้งาน Frida เพื่อทดสอบบนเครื่องไม่ Jailbreak นั้นจะต้องมีการ Setup อุปกรณ์และโปรแกรมให้เป็นที่เรียบร้อยเสียก่อน โดยหลักการเบื้องต้นคือจะต้อง Modify โปรแกรมที่จะต้องการทดสอบเล็กน้อย โดยการเพิ่ม Library ที่ชื่อว่า FridaGadget.dylib เข้าไปในโปรแกรม .ipa จากตัวอย่างข้างล่างจะเป็นวิธีการใช้งาน โปรแกรม Objection สำหรับช่วยในการ Inject Library ดังนี้

Preparations

  1. ติดตั้ง xcode 
  2. สมัคร Developer ID มีค่าใช้จ่าย (สำหรับ Apple Id ที่เป็น Free ลองตรวจสอบอีกครั้งล่าสุดไม่สามารถใช้งานได้ ทดสอบล่าสุด 15 – 17 มีนาคม 2562)
    • สมัครตามขั้นตอน
    • ติดต่อ Call centre เพื่อส่ง ID card หรือ Car license เพื่อยืนยันตัวตน process ประมาณ 2-3 วันเสร็จสิ้น (ภาษาอังกฤษ)
  3. ทำการ Login Developer ID ใน xcode (คลิกตรง Team | Accounts | แล้วใส่ username password จากที่สมัคร)

  4. กด Manage Certificates | + | เลือก iOS Development
  5. สร้าง Project ใหม่ และทดสอบเสียบสายสัญญาณ กับเครื่อง iOS จากนั้นทดลอง Run app เพื่อติดตั้งบนเครื่อง iOS
  6. ในครั้งแรกที่ติดตั้งเครื่อง iOS จะต้องเชื่อมกับ Internet และจะพบข้อความดังนี้ 
  7. ให้ไปที่เครื่อง iOS และไปที่เมนู Settings | General | Profile & Device Management | DEVELOPER APP | และกดปุ่ม Trust
  8. ติดตั้ง objection How to install “objection”
    • ดาวน์โหลด objection จาก https://github.com/sensepost/objection
    • เข้าไปยังโฟลเดอร์ objection ที่โหลดมา จะพบโปรแกรม setup.py
    • จากนั้นใช้คำสั่ง Build และ Install ดังนี้
      python setup.py build
      python setup.py install
      objection
      
  9.  ติดตั้ง applesign 
    npm install -g applesign
    
  10. ติดตั้ง insert_dylib 
    git clone https://github.com/Tyilo/insert_dylib && cd insert_dylib &&xcodebuild && cp build/Release/insert_dylib /usr/local/bin/insert_dylib
    
  11. ติดตั้งโปรแกรม พวก zip
    brew install p7zip
    

Patching

  1. ค้นหา Signature สำหรับ Sign App เพื่อติดตั้งบนเครื่อง iOS
    security find-identity -p codesigning -v
    
  2. ใช้ objection เพื่อ patching โปรแกรม 
    objection patchipa -s DVIA-v2-swift.ipa -c [ใส่ signature ที่พบ]
    
  3. จะพบโปรแกรมที่ patch แล้ว 

 

อ้างอิง

https://github.com/sensepost/objection/wiki/Patching-iOS-Applications