Frida toàn tập [Part 2]

III. Các mode hoạt động

Có rất nhiều cách để đưa Frida vào chương trình ta muốn debug, tùy thuộc vào nền tảng (windows, linux, android), ngôn ngữ lập trình hoặc hoàn cảnh, ta chia ra một số mode hoạt động sau đây:

3.1.Injected

Đây là cách phổ biến để sử dụng Frida bằng cách build một thư viện GumJS, inject vào chương trình . Frida-server chạy trên các thiết bị đích (IOS, Android), là một daemon lằng nghe qua TCP localhost:27042.

3.2. Embedded

Có vài trường hợp không thể dùng injected mode, ví dụ với hệ điều hành iOS chưa jailbreak hoặc với Android thì chưa root. Frida cung cấp một shared library là frida-gadget đưa vào chương trình muốn debug (nhúng vào code), chúng ta phải sử dụng frida-trace để tương tác. Để tham khảo frida-gadget, tham khảo tại phần IV.

3.3 Preloaded

Dynamic loader là thành phần trong Linux thực hiện việc tìm kiếm và nạp các shared library cần thiết cho chương trình của chúng ta. Thứ tự các library được load do bộ loader thực hiện tùy theo trường hợp. Trong Linux, biến môi trường LD_PRELOAD là một biến chứa đường dẫn tới các shared library. Những thư viện này sẽ được dynamic loader nạp vào trước khi nạp bất kì thư viện nào khác, kể cả thư viện libc.

IV. Frida Gadget

Như đã nói ở trên, Frida gadget là một shared library được đưa vào chương trình cần debug một khi “injected” mode không phù hợp. Để thực hiện điều này, ta có thể thực hiện qua 03 cách như: sửa source code, sửa thư viện của chương trình bằng cách sử dụng công cụ insert_dylib hoặc sử dụng dynamic linker như LD_PRELOAD, DYLD_INSERT_LIBRARIES

Đồng thời cũng có 03 cách điều khiển khác nhau, trong đó Listen là cách mặc định. Thêm file config với phần tên giống hệt Gadget binary nhưng thêm.config. Ví dụ: nếu binary là FridaGadget.dylib thì config file là FridaGadget.config.

<Đang cập nhật thêm>

Tham khảo tại:

Published by Nhat Truong

Hi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: