Bài viết này chủ yếu hướng dẫn fix lỗi Failed to attach: unexpected early end-of-stream hoặc Failed to attach: need Gadget to attach on jailed iOS; its default location is: /Users/<username>/.cache/frida/gadget-ios.dylib
Lỗi này mình chỉ gặp trên rootless jailbreak

Đầu tiên là cài frida trên Mac

Trên iPhone mở Sileo, vào phần “Nguồn” rồi thêm địa chỉ https://build.frida.re
Sau đó vào mục tìm kiếm tìm Frida và tiến hành cài đặt. Khi cài xong thì frida-server sẽ tự động chạy, tại máy Mac có thể chạy lệnh trên terminal để chạy app, ví dụ:

Lúc setup theo các bước như “sách giáo khoa” mà gặp lỗi Failed to attach: unexpected early end-of-stream thì mình hơi ??? bởi vì nhìn thông báo lỗi cũng không hiểu lắm, trên android cũng không bị bao giờ 🙁

Và sau mội thời gian mày mò tìm hiểu thì giải pháp mà mình tìm được là set listen address cho frida-server

Theo mặc đinh, khi cài frida bằng sileo thì frida-server sẽ được đặt tại /var/jb/usr/sbin/frida-server (trong trường hợp rootless), kill process của nó để set lại host không kill được vì nó sẽ tự chạy lại, nếu chạy file đó kèm theo các tham số set host sẽ gặp lỗi vì port mặc định đã được sử dụng…

Giải pháp là copy file đó đến thư mục /var/jb/usr/ sau đó xoá file /var/jb/usr/sbin/frida-server đi, tiếp đó là chạy frida-server vừa copy và set host cho nó, cụ thể như sau:

Sau đó thì lệnh frida -U -f <package> -l <script> sẽ hoạt động.
Nếu gặp lỗi Failed to attach: need Gadget to attach on jailed iOS; its default location is: /Users/<username>/.cache/frida/gadget-ios.dylib
thì vào https://github.com/frida/frida/releases tìm file frida-gadget-<frida-version>-ios-universal.dylib.gz down về giải nén ra, đổi tên thành gadget-ios.dylib rồi chuyển vào thư mục ~/.cache/frida là xong

Đừng tải file frida-gadget-<frida-version>-mac-universal.dylib.gz nhé 😀

Categorized in:

Tagged in: