การดีบักแอปพลิเคชันด้วย IDA¶
ในบทนี้ เราจะแนะนำวิธีการใช้ FIRERPA และฟังก์ชันและสคริปต์ที่เกี่ยวข้องเพื่อดีบักแอปพลิเคชัน Android อย่างรวดเร็ว สภาพแวดล้อมการสาธิตของเราคือระบบ Android 10, ระบบโฮสต์คือ Ubuntu 22.04 และได้ติดตั้งเครื่องมือที่เกี่ยวข้อง เช่น IDA 7.5 (wine), ADB, jdb, Python เป็นต้น เราขอแนะนำให้คุณใช้ IDA เวอร์ชัน 7.5 ขึ้นไป และติดตั้ง FIRERPA เวอร์ชันเซิร์ฟเวอร์ล่าสุด

การตั้งค่าโหมดที่สามารถดีบักได้¶
ก่อนหน้านี้ หากระบบของคุณอยู่ในโหมดดีบักอยู่แล้ว คุณไม่จำเป็นต้องทำขั้นตอนนี้ มิฉะนั้น โปรดเปิดรีโมทเดสก์ท็อปของ FIRERPA และพิมพ์ setdebuggable ในเทอร์มินัล หลังจากป้อนคำสั่ง โทรศัพท์ของคุณจะทำการรีบูตแบบซอฟต์ แต่ไม่ต้องกังวล จะกลับสู่สถานะปกติในเวลาประมาณสองนาที ในตอนนี้ โทรศัพท์ของคุณจะอยู่ในโหมดที่สามารถดีบักได้แล้ว

การติดตั้งบริการดีบักของ IDA¶
ก่อนที่จะทำการดีบักต่อไป คุณต้องอัปโหลดบริการฝั่งเซิร์ฟเวอร์สำหรับการดีบัก Android ที่มาพร้อมกับ IDA ไปยังอุปกรณ์ของคุณ คุณสามารถหา android_server และ android_server64 ได้ในไดเรกทอรี dbgsrv ของไดเรกทอรีการติดตั้ง IDA ของคุณ หากแอปพลิเคชันเป้าหมายที่คุณกำลังดีบักใช้ไลบรารีที่เชื่อมโยงแบบ 32 บิต โปรดใช้ android_server มิฉะนั้นให้ใช้ android_server64 ลากและวางไฟล์ที่คุณต้องการเพื่ออัปโหลด หรือใช้ adb push ไปยังอุปกรณ์ Android และให้สิทธิ์ในการเรียกใช้งาน
chmod 755 android_server*
หลังจากให้สิทธิ์ในการเรียกใช้งานแล้ว คุณต้องเริ่มบริการ android_server คุณสามารถรันโปรแกรมนี้ผ่าน adb (ต้องมีสิทธิ์ root) หรือผ่านเทอร์มินัลของรีโมทเดสก์ท็อป สำหรับระบบเวอร์ชันที่สูงกว่า (>=10) คุณต้องตั้งค่าตัวแปรสภาพแวดล้อม IDA_LIBC_PATH ล่วงหน้า
IDA_LIBC_PATH=/apex/com.android.runtime/lib64/bionic/libc.so ./android_server64 -kk
หมายเหตุ
การส่งต่อบริการดีบักของ IDA¶
สำหรับสถานการณ์การดีบักที่ต้องการการตอบสนองแบบเรียลไทม์และประสิทธิภาพสูง เราขอแนะนำให้ใช้การเชื่อมต่อผ่าน USB โปรดตรวจสอบให้แน่ใจว่าคุณได้เสียบอุปกรณ์เข้ากับคอมพิวเตอร์ปัจจุบันและได้ทำการอนุญาต adb เรียบร้อยแล้ว จากนั้นให้รันคำสั่งต่อไปนี้
adb forward tcp:23946 tcp:23946
หมายเหตุ
เริ่มการดีบักแอปพลิเคชัน¶
เราไม่ได้ทำงานอะไรมากมาย เพียงแค่ได้ห่อหุ้มสคริปต์ที่สามารถช่วยให้คุณดำเนินการส่วนใหญ่ที่ตามมาโดยอัตโนมัติ เพียงทำตามคำแนะนำที่แสดงผลจากสคริปต์ คุณสามารถหาสคริปต์ ida.py ได้ในไดเรกทอรี tools ของโปรเจกต์ และใช้คำสั่งต่อไปนี้
python3 ida.py -d 192.168.0.2 -a com.android.settings

ในคำสั่งนี้ พารามิเตอร์ -d คือ IP ของอุปกรณ์ของคุณ ซึ่งก็คือ IP ของอุปกรณ์ที่รันบริการ FIRERPA และพารามิเตอร์ -a คือชื่อแพ็คเกจของแอปพลิเคชัน หลังจากรันคำสั่ง คุณจะได้รับแจ้งให้ทำการแนบ (attach) โปรแกรม IDA ของคุณเข้ากับโพรเซสของแอปพลิเคชันต่อไป



เอาล่ะ กระบวนการทั้งหมดเสร็จสิ้นแล้ว โปรดกลับไปที่บรรทัดคำสั่งของ ida.py และกดปุ่ม Enter ตอนนี้คุณสามารถทำการดีบักต่อไปได้แล้ว