ก่อนหน้านี้เราติดตั้งและใช้งาน bfinject สำหรับการ decrypt application และการ dump class มาแล้ว คราวนี้มา debug ขณะ Application นั้นๆกำลังรันบ้าง ทำไมถึงใช้วิธีนี้ เพราะการโหลด cycript โดยตรงนั้นทำไม่ได้อีกต่อไป เราไม่สามารถติดตั้ง cycrpt ไปยัง iOS Jailbreak ได้อีกต่อไป (ผมทำไม่ได้ใน Eletra jailbreak เลยจำเป็นต้องใช้วิธีอื่นแทน)
1. ติดตั้ง cycript ที่เครื่อง Mac เราก่อน แล้วย้ายไปที่ /usr/local/bin
1 2 3 |
mv ~/Downloads/cycript_0.9.594/cycript /usr/local/bin cp -pvr Cycript.lib /usr/local/bin/ chmod +x /usr/local/bin/cycript |
2. ทำ iTunnel อีกครั้งไปยัง 22 ของมือถือ
1 |
itnl --lport 2222 --iport 22 |
3. Ssh เข้าไปในเครื่อง
1 |
ssh -p 2222 root@localhost |
4. Load Cycript ไปยัง Application
1 |
bash bfinject -P <Application Name> -L cycript |
ถ้าสำเร็จจะขึ้นเป็น
ถ้าไม่ได้ให้ปิด Application แล้วลองใหม่ และอย่ากด OK ให้เปิดหน้านั้นค้างไว้
5. กลับมาที่ MacOS ของเราให้ทำการติดต่อไปยัง cycript ของ iOS Application โดยใช้คำสั่ง
1 |
cycript -r <iPhone IP>:1337 |
1 2 3 4 |
หากพบปัญหา Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib ให้ update macvim > sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ > sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib |
เมื่อเข้าได้จะเจอ prompt “cy#”
จากนั้นก็สารพัดที่เราจะ debug เพื่อดูข้อมูลของ Application ได้เลยครับ
- ดูหน้าจอที่ใช้งานล่าสุดว่าเป็นตำแหน่งไหน
1 |
var app = [UIApplication sharedApplication] |
- http://iphonedevwiki.net/index.php/Cycript_Tricks
- https://resources.infosecinstitute.com/ios-application-security-part-4-runtime-analysis-using-cycript-yahoo-weather-app/#gref
- https://github.com/tanprathan/MobileApp-Pentest-Cheatsheet
Source::
- https://github.com/AloneMonkey/MonkeyDev/wiki/Q&A
- https://ivrodriguez.com/reverse-engineer-ios-apps-ios-11-edition-part2/