# 📑 Báo Cáo Tổng Hợp Nghiên Cứu Bộ Kỹ Năng Đảo Ngược APK Mới

> **Mục tiêu:** Phân tích, so sánh và trích xuất các ý tưởng tốt nhất từ 3 repository kỹ năng dịch ngược (`haikow`, `CreditTone`, và `Fausto-404`) để nâng cấp bộ kỹ năng dịch ngược và phân tích APK hiện tại.

---

## 🔍 1. Tổng Quan Về Các Repository Nghiên Cứu

### A. `haikow/claude-reverse-skills`
- **Tập trung:** Tích hợp sâu các MCP Server phục vụ dịch ngược (IDA Pro, Radare2) và quy trình deobfuscate JavaScript (CDP-based).
- **Phát hiện chính:**
  - **IDA Pro head-less automation (`ida-reverse`)**: Chạy server HTTP MCP (`idalib-mcp`) dựa trên `idalib` (Python wrapper chính thức của Hex-Rays). Cung cấp 72 MCP tools chuyên sâu (`idapro_decompile`, `idapro_disasm`, `idapro_xrefs_to`, `idapro_set_comments`, v.v.).
  - **JS Deobfuscation Playbook (`mcp-js-reverse-playbook`)**: Sử dụng `js-reverse-mcp` (dựa trên Chrome DevTools Protocol) để debug, đặt breakpoints động trên XHR, hook runtime, trích xuất script source và giúp tái dựng/bù môi trường Node.js (environmental patching) theo dữ liệu thực nghiệm thay vì đoán mò.

### B. `CreditTone/android-reverse-engineering-skill`
- **Tập trung:** Quy trình phân tích tĩnh & động chuyên nghiệp của Android (APK/XAPK/JAR/AAR).
- **Phát hiện chính:**
  - Tích hợp sâu công cụ phân tích nhị phân native SO là **Rizin** (phiên bản fork chất lượng cao của Radare2) với các lệnh tối ưu hóa: `rz-bin`, `rz-strings`, và `rizin -qc`.
  - Hướng dẫn cụ thể về **Dynamic Analysis** (Frida hooks, packet capture, SSL Pinning bypass) và **JNI/SO Native analysis** (`System.loadLibrary`, `JNI_OnLoad`, `RegisterNatives`, `unidbg`).
  - Hướng dẫn phân biệt rõ ràng khi nào nên dùng IDA MCP (cho static decompilation của SO không bị obfuscate) và khi nào không nên dùng (obfuscation nặng, control-flow flattening, encrypted strings -> khuyên dùng Frida runtime tracing).

### C. `Fausto-404/ai-mobile-reverse-skills`
- **Tập trung:** Khung tổng quản (Orchestration Layer) 6 giai đoạn chuẩn bảo mật di động cho AI Agent.
- **Phát hiện chính:**
  - **Quy trình 6 giai đoạn**:
    1. *Phase 1 (APK Static Reconnaissance)*: Thu thập thông tin tĩnh (Manifest, components, permissions, SDKs, env guard).
    2. *Phase 2 (Traffic and Code Alignment)*: Khớp luồng traffic (kết nối Burp/Yakit MCP) với code Java.
    3. *Phase 3 (SO and JNI Deep Analysis)*: Phân tích sâu so và JNI (kết nối IDA/Ghidra MCP).
    4. *Phase 4 (Encryption & Vulnerability Analysis)*: Tổng hợp lỗ hổng, yếu tố mã hoá (hardcoded secrets, weak crypto).
    5. *Phase 5 (Minimal POC Validation Design)*: Thiết kế POC kiểm thử lỗi tối thiểu.
    6. *Phase 6 (Penetration Report Delivery)*: Tổng hợp báo cáo.
  - **Cơ chế Run Mode (Chế độ chạy)**: Hỗ trợ chạy từng bước (`step_by_step`) và chạy tự động liên tục (`auto_chain` các mode A/B/C tuỳ thuộc điều kiện đầu vào của các MCPs và Traffic).
  - **Quản lý trạng thái bằng Blackboard (`session_blackboard.json`) và State file (`analysis_state.json`)**: Có cảnh báo "Stall Warning" (Blackboard Hint) nếu một Phase kết thúc mà không tạo ra Fact mới nào trong blackboard để tránh blind-spots.

---

## 📊 2. Bảng So Sánh Các Bộ Kỹ Năng

| Tính năng / Quy trình | Bản hiện tại của chúng ta | `haikow` | `CreditTone` | `Fausto-404` |
|---|---|---|---|---|
| **Công cụ Decompile** | JADX, Vineflower | — | JADX, Vineflower (Intermediate dex2jar) | JADX |
| **Phân tích Native (SO)** | Tương tự bản của CreditTone | IDA Pro MCP (`idalib`) | Rizin (`rz-bin`, `rz-strings`), nm, readelf | IDA / Ghidra MCP |
| **Phân tích Động (Frida)** | Cơ bản | — | Frida hooks, JNI traces, SSL Pinning bypass | Burp/Yakit MCP |
| **JS Deobfuscation** | ❌ Chưa có | CDP-based MCP (`js-reverse-mcp`) | ❌ Chưa có | ❌ Chưa có |
| **Quản lý quy trình** | Tự do qua `/decompile` | Tự do theo công cụ | Theo Phase tĩnh/động | 6-Phase Blackboard (A/B/C Auto-Chain) |
| **Môi trường chạy** | Chỉ Linux/macOS | Hỗ trợ Windows | Hỗ trợ Windows (PowerShell) | Tiêu chuẩn đa nền tảng |

---

## 💡 3. Đề Xuất Cải Tiến Bộ Kỹ Năng Hiện Tại Của Chúng Ta

Dựa trên các nghiên cứu trên, chúng ta có thể nâng cấp bộ kỹ năng dịch ngược của AWKit theo các hướng sau:

### 🌟 Đề xuất 1: Nâng cấp Quy trình `reverse-apk` thành 6-Phase Blackboard (Theo Fausto-404)
- **Giải pháp:** Tái cấu trúc quy trình phân tích và lập bản đồ APK hiện tại. Tích hợp file `analysis_state.json` và phân vùng thư mục output thành các `step1/` đến `step6/` để Agent kế thừa kết quả dễ dàng.
- **Lợi ích:** Tránh việc AI phải hỏi đi hỏi lại các biến đầu vào, giúp Agent tự động hóa quy trình phân tích nâng cao (Auto-Chain) một cách trơn tru.

### 🌟 Đề xuất 2: Bổ sung Kỹ năng Phân tích Native bằng Rizin (Theo CreditTone)
- **Giải pháp:** Thêm Rizin làm công cụ phân tích SO mặc định trong `android-re-analyzer`. Viết thêm các helper scripts tích hợp rizin (`rz-bin`, `rz-strings`) để phân tích export symbols và strings của file `.so` tự động trước khi leo thang lên IDA.

### 🌟 Đề xuất 3: Tích hợp Hướng dẫn Chạy Trực Tiếp IDA Pro HTTP Server MCP (Theo haikow)
- **Giải pháp:** Học tập các scripts `start.ps1` (chạy background ẩn logs) và `open.ps1` (gọi HTTP API trực tiếp để bypass schema validation bug của Cursor/OpenCode) để mở file PE/ELF/APK/SO trên IDA Pro head-less.

### 🌟 Đề xuất 4: Hỗ trợ Kỹ năng JS Deobfuscation & Browser Debug (Theo haikow)
- **Giải pháp:** Tạo mới hoặc tích hợp thêm kỹ năng JS Reverse sử dụng `js-reverse-mcp` để hỗ trợ các bài toán bóc tách API web, signature bypass, và giả lập môi trường Node.js.
