Vũ Văn HảiFull-stack · AI-native
Hướng dẫnBlog
Trao đổi dự án

© 2026 Vũ Văn Hải · Viết từ kinh nghiệm triển khai thật.

Trang chủHướng dẫnBlogRSS
  1. Hướng dẫn
  2. /Công cụ dev
  3. /Debug và bypass SSL pinning của app Android trên giả lập

Debug và bypass SSL pinning của app Android trên giả lập

Soi traffic API của một app Android có SSL pinning bằng LDPlayer 9 và HTTP Toolkit: bật root, kết nối ADB, tự động bypass SSL, và xử lý các lớp bảo vệ nâng cao.

Cập nhật: 21 thg 9, 20265 phút đọc
AndroidMạngBảo mật
Mục lục
  • Yêu cầu
  • Tóm tắt thao tác nhanh
  • Các bước thực hiện
  • Bước 1: Chuẩn bị giả lập (bật root)
  • Bước 2: Kết nối qua HTTP Toolkit và khắc phục lỗi
  • Bước 3: Cấp quyền và chặn HTTPS bằng HTTP Toolkit
  • Bước 4: Tự động bypass SSL và quan sát
  • Giải quyết các lỗi nâng cao
  • Xử lý sự cố

Bài này hướng dẫn "soi" (inspect) request/response API của một ứng dụng Android, kể cả app production có SSL pinning, bằng cách kết hợp giả lập LDPlayer 9 (chạy Android 9, có sẵn quyền root) và HTTP Toolkit (đóng vai MITM proxy kiêm tự động tiêm mã bypass SSL).

Chỉ áp dụng cho app bạn sở hữu hoặc được cho phép kiểm thử rõ ràng. Chặn và đọc traffic của app hay của người khác khi chưa được phép là hành vi vi phạm pháp luật.

Yêu cầu

  • Máy tính chạy Windows.
  • Giả lập LDPlayer 9 (chạy Android 9), vì có sẵn quyền root và dễ cấu hình kết nối.
  • HTTP Toolkit, đóng vai MITM proxy và tự động tiêm mã bypass SSL.

Tóm tắt thao tác nhanh

Nếu đã setup xong một lần, các lần sau chỉ cần làm theo trình tự:

  1. Mở LDPlayer.
  2. Mở terminal (CMD/PowerShell) và chạy: adb connect 127.0.0.1:5555
  3. Mở HTTP Toolkit.
  4. Chọn kết nối Android 9 emulator.
  5. Cấp quyền root/VPN trên LDPlayer (nếu được hỏi).
  6. Mở app cần soi và bắt đầu đọc traffic.

Các bước thực hiện

Bước 1: Chuẩn bị giả lập (bật root)

  1. Tải và cài giả lập LDPlayer 9.
  2. Bật "Quyền root" và "ADB Debugging" trên LDPlayer:
    • Mở LDPlayer, click biểu tượng Cài đặt (bánh răng) ở thanh công cụ bên phải (hoặc góc trên phải).
    • Chọn tab Cài đặt khác (Other Settings).
    • Tìm Quyền root (Root permission), đổi từ Tắt (Disable) sang Bật (Enable).
    • Ở mục ADB Debugging (ngay dưới hoặc cùng bảng), chọn Open Local Connection (hoặc Enable) để mở cổng ADB local.
    • Nhấn Lưu cài đặt (Save settings).
    • BẮT BUỘC chọn Khởi động lại ngay (Restart now) để có hiệu lực.
  3. Đăng nhập Google Play, tải và cài app bạn muốn debug vào giả lập.

Bước 2: Kết nối qua HTTP Toolkit và khắc phục lỗi

Thường HTTP Toolkit tự chọn dạng "Android Device via ADB", nhưng nếu nó không nhận thiết bị (do khác phiên bản ADB hoặc sai port):

  1. Mở LDPlayer và đợi vào màn hình chính.

  2. Mở CMD/PowerShell trên Windows.

  3. Kết nối thủ công tới cổng ADB của giả lập (mặc định cho một instance là 5555):

    adb connect 127.0.0.1:5555

    Nếu báo lỗi adb is not recognized, hãy trỏ trực tiếp đến thư mục LDPlayer. Trong PowerShell bạn phải dùng .\adb.exe:

    cd C:\LDPlayer\LDPlayer9
    .\adb.exe connect 127.0.0.1:5555
  4. Nếu thấy connected to 127.0.0.1:5555 là thành công. Nếu ADB bị treo, gõ adb kill-server rồi adb start-server và thử lại lệnh connect.

Bước 3: Cấp quyền và chặn HTTPS bằng HTTP Toolkit

  1. Mở HTTP Toolkit trên máy tính; lúc này nó đã thấy thiết bị qua ADB.
  2. Ở danh sách thiết bị, bấm nút cấu hình "Android 9 emulator" (màu xanh dương) thay vì các thiết lập máy cũ còn trong cache (ví dụ Samsung S10/S22...).
  3. QUAN TRỌNG: ngay khi bấm chọn ở máy tính, nhìn ngay vào màn hình giả lập LDPlayer.
    • HTTP Toolkit sẽ tự push, cài lên giả lập và mở app.
    • Giả lập hiện thông báo hỏi quyền Superuser (root) -> bấm Cho phép (Allow) hoặc "Forever".
    • Tiếp theo, app trên giả lập cảnh báo cấu hình Thiết lập VPN (để route toàn bộ traffic qua nó) -> bấm OK.
  4. Khi HTTP Toolkit trên máy tính chuyển sang biểu tượng Connected màu xanh lá là thành công.

Bước 4: Tự động bypass SSL và quan sát

  1. Mở app mục tiêu trên giả lập.
  2. Proxy của HTTP Toolkit (nhúng sẵn cơ chế Frida) tự nhận biết và chọc vào app để đánh lừa/bypass hàm kiểm tra SSL của hệ thống.
  3. Quay lại giao diện chính HTTP Toolkit trên máy tính, bạn sẽ thấy đầy đủ traffic:
    • Request headers (token, cookie, user-agent...).
    • Body JSON gửi đi.
    • Raw response nhận từ server.
    • Query.

Giải quyết các lỗi nâng cao

App "production chuẩn" đôi khi có thêm các lớp bảo vệ đặc biệt. Nếu vẫn gặp lỗi, thử các cách nâng cao:

  • Chặn giả lập (emulator detection) hoặc check root sâu: app crash ngay khi mở do phát hiện root. Cần dùng thiết bị thật, hoặc cài Magisk trên LDPlayer kèm module Hide/Zygisk/Denylist để bypass phát hiện này.
  • Mã hóa payload (application layer encryption): server nhận request OK nhưng HTTP Toolkit chỉ thấy ký tự mã hóa lộn xộn (app mã hóa RSA/AES đè trên HTTPS). Phương án là dùng JADX decompile APK để tìm khóa, hoặc tự viết script Frida hook thẳng để bắt data raw.
  • Certificate pinning tùy biến (OkHttp3/Retrofit): proxy báo đỏ, kêu chứng chỉ sai. Cần dùng script Universal Pinning Bypass qua Frida-Tools thay vì cơ chế auto của HTTP Toolkit.

Xử lý sự cố

Triệu chứngCách xử lý
adb is not recognizedTrỏ tới thư mục LDPlayer và dùng .\adb.exe connect ... trong PowerShell
ADB treo, không connect đượcadb kill-server rồi adb start-server, thử connect lại
App crash ngay khi mởApp phát hiện root/giả lập - dùng thiết bị thật hoặc Magisk + Hide/Zygisk/Denylist
Traffic hiện ký tự mã hóa lộn xộnApp mã hóa tầng ứng dụng - decompile bằng JADX hoặc hook bằng Frida
Proxy báo chứng chỉ saiCertificate pinning tùy biến - dùng script Universal Pinning Bypass qua Frida
Bài trướcQuay ngược commit Git và cập nhật an toàn trên VPSBài tiếp theoSửa lỗi kết nối Claude Code trên Windows (ECONNREFUSED, Bun crash)

Bài liên quan

  • Cấu hình Vertex AI để gọi Gemini API (keyless và service account)

    Thiết lập Google Cloud Vertex AI (nay là Gemini Enterprise Agent Platform) để gọi model Gemini: enable API, tạo service account, xác thực keyless bằng ADC hoặc JSON key, cài SDK google-genai và xử lý các lỗi org policy, 429, 404.

    Tích hợp

    Tích hợp
  • Kết nối PostgreSQL trên VPS qua SSH Tunnel từ máy local

    Dùng SSH Tunnel để máy dev kết nối PostgreSQL trên VPS mà không phải mở port 5432 ra internet, kèm cách cấu hình DATABASE_URL cho môi trường local và production.

    Database

    Database
  • Kiểm tra nhanh thông số VPS bằng một dòng lệnh

    Script bash chạy bằng một dòng lệnh để kiểm tra OS, CPU, RAM, disk và mạng của VPS trong khoảng 15 giây, kèm bảng tham chiếu giúp bạn biết thông số nào là yếu, ổn hay mạnh.

    VPS

    VPS

Viết bởi Vũ Văn Hải

Tôi là Hải, full-stack developer ở TP. Hồ Chí Minh. Các bài ở đây đúc kết từ những hệ thống tôi tự dựng và vận hành. Cần dựng hoặc gỡ rối một hệ thống tương tự? Cứ nhắn tôi.

Trao đổi dự ánXem thêm hướng dẫn

Thấy sai sót hoặc lệnh không còn chạy? Báo cho tôi

Mục lục

  • Yêu cầu
  • Tóm tắt thao tác nhanh
  • Các bước thực hiện
  • Bước 1: Chuẩn bị giả lập (bật root)
  • Bước 2: Kết nối qua HTTP Toolkit và khắc phục lỗi
  • Bước 3: Cấp quyền và chặn HTTPS bằng HTTP Toolkit
  • Bước 4: Tự động bypass SSL và quan sát
  • Giải quyết các lỗi nâng cao
  • Xử lý sự cố