Objection เป็นตัวที่ทำให้การใช้งาน Frida นั้นง่ายขึ้น แทนที่จะต้องเขียน script ยาวๆ เค้าก็ปรับเปลี่ยนให้เป็น API ในการคุยกับ frida ให้เลย ซึ่งทำให้การทำ bypass jailbreak และ bypass ssl pinning ใน Mobile Application ทำได้ง่ายมาก โดยมี step ดังนี้ครับ
1. เปิด frida_server บน iOS/Android ให้ได้ก่อน (วิธีการติดตั้งไปดูใน Official ของ Frida ละกันครับ)
1 |
frida_server |
2. เปิด Mobile Application ที่จะทำการ bypass
3. List Application ภายในเครื่อง
1 |
frida-ps -U |
4. ทำการเชื่อมต่อจากเครื่อง MacOS/Windows และ hooking ไปยัง Mobile Application
1 |
objection --gadget "<Application Name>" explore |
5. List Class ทั้งหมดของ Application
1 |
ios hooking list classes |
ในขั้นตอนนี้ให้หา class ที่เป็นประมาณว่า JailbreakDetection
6. หา Methods ของ class ที่เราจะ hook ซึ่งในที่นี้ยกตัวอย่างว่าเค้าตั้งชื่อว่า “JailbreakDetection” class ครับ (วิธีหาง่ายกว่าคือใช้ bfinject แล้วเปิดด้วย jd-gui เพื่อดูว่ามี class อะไรบ้าง จะง่ายกว่า)
1 |
ios hooking list class_methods JailbreakDetection |
7. ทำการ hook ว่าถ้ามีการ return จาก method jailbroken หรือว่า isJailbroken: ก็ให้ return เป็น false
1 2 |
ios hooking set return_value "-[JailbreakDetection jailbroken]" false ios hooking set return_value "-[JailbreakDetection isJailbroken:]" false |
8. จากนั้นเปิดใช้งาน app แล้วเมื่อมีการ return ค่าจาก method jailbroken หรือว่า isJailbroken: ก็จะกลายเป็น return false ไปให้โดยทันที เราก็จะ bypass การตรวจจับได้เลยครับ 🙂
#แถม ถ้าเป็นการ bypass sslpinning ก็ให้ใช้ shortcut command ของ objection ที่ทำไว้ให้ได้เลยครับ
1 |
ios sslpinning disable |
ถ้าไม่ได้ก็ลองวิเคราะห์หา library ที่คนเค้านิยมใช้กันแล้ว hooking ตอน return ดูครับ
Source::