Hồi sinh iChat: Khi hai kỹ sư 'đánh thức' tính năng gọi video của Apple sau gần 20 năm
Một kỹ sư hệ thống đã reverse-engineer giao thức SNATMAP đã 'chết' của Apple để khôi phục khả năng gọi audio và video trên iChat AV thời OS X Leopard. Câu chuyện là minh chứng thú vị cho sức mạnh của retro computing kết hợp với sự hỗ trợ của AI.

Hồi sinh iChat: Khi hai kỹ sư "đánh thức" tính năng gọi video của Apple sau gần 20 năm
Ít ai ngờ rằng một dịch vụ tưởng chừng đã chết từ lâu của Apple lại có thể được "hồi sinh" chỉ bằng vài dòng cấu hình. Câu chuyện của Chris Jones và người bạn Methodius là minh chứng thú vị cho sức mạnh của retro computing, reverse engineering và sự hỗ trợ đắc lực từ các mô hình ngôn ngữ lớn (LLM).
Screenshot giao diện iChat AV thời OS X Leopard
iChat AV và chiếc webcam huyền thoại iSight
Vào đầu những năm 2000, cuộc chiến video call cấp độ người dùng phổ thông chỉ xoay quanh ba cái tên: MSN Messenger của Microsoft, Yahoo! Messenger và AIM của AOL. Nhưng đến tháng 6/2003, tại WWDC, Apple bất ngờ tung ra iChat AV cùng bộ vi xử lý G5 và OS X 10.3 Panther.
Đi kèm với đó là chiếc webcam được thiết kế "over-engineered" đẹp đến mức trở thành biểu tượng: iSight.
Tôi từng là kiểu fan Apple cực đoan và khó chịu nhất. Nhưng có một lĩnh vực mà Apple thực sự vượt trội: hội nghị truyền hình âm thanh và video.
Chris Jones, tác giả bài viết, kể lại rằng anh từng sở hữu một chiếc laptop G4 và một chiếc iSight. Cảm giác lúc đó giống như "đang sống trong tương lai". Bài viết này kể lại hành trình anh và người bạn Methodius tìm cách làm cho iChat AV hoạt động trở lại qua Internet.
Nguyên nhân iChat AV "chết": SNATMAP và chứng chỉ TLS hết hạn
Năm 2023, hai người bạn thử nghiệm một cuộc gọi audio đơn giản trên OS X Leopard. Phiên bản iChat này hỗ trợ XMPP (Jabber), nên họ dùng tài khoản trên jabb.im. Cuộc gọi đổ chuông, báo "đang kết nối" — rồi thất bại.
Sau khi dùng tcpdump để kiểm tra lưu lượng mạng, họ phát hiện ra vấn đề nằm ở bước đầu tiên:
- iChat gửi HTTP request tới
configuration.apple.comđể lấy địa chỉ SNATMAP server. - Apple đã chuyển hướng (redirect) sang HTTPS.
- Nhưng bộ thư viện TLS của OS X Leopard quá cũ để kết nối tới các máy chủ HTTPS hiện đại.
Kết quả: iChat không lấy được địa chỉ SNATMAP, nên hai bên trao đổi địa chỉ IP nội bộ (LAN) thay vì IP công cộng. Điều này khiến kết nối P2P xuyên NAT thất bại hoàn toàn.
Họ cố gắng tự dựng web server để phục vụ file snatmap.txt trỏ tới một IP do mình kiểm soát. Nhưng khi chạy thử, họ nhận ra SNATMAP server của Apple đã ngừng phản hồi. Không có tài liệu về cách server này hoạt động, hành trình tạm thời đi vào ngõ cụt.
Nước ngoặt nhờ LLM: Tái tạo giao thức SNATMAP từ số 0
Đến mùa hè 2026, Methodius và Chris quyết định thử lại. Lần này, họ có trong tay các bản ghi lưu lượng mạng (network captures) từ lần thử trước.
Họ dùng mô hình ngôn ngữ lớn (LLM) để reverse-engineer framework hội nghị truyền hình của iChat. Từ đó, họ tái tạo được cấu trúc gói tin request/response của giao thức SNATMAP và viết ra một file đặc tả (specification file) hoàn chỉnh.
Giao thức SNATMAP hóa ra đơn giản đến bất ngờ:
- Hoạt động trên UDP port 5678.
- Gói request gồm 16 byte với 4 trường: Type (
"1"), Nonce (số ngẫu nhiên), IP nội bộ của client (không dùng), port nội bộ (không dùng). - Gói response cũng 16 byte: Type (
"2"), Nonce (khớp với request), IP công cộng mà server thấy, và port công cộng tương ứng.
Sơ đồ minh họa kiến trúc SNATMAP và luồng kết nối iChat
Chris, vốn là kỹ sư hệ thống chứ chưa từng tự viết server, đã dùng file đặc tả do LLM tạo ra để tự tay viết một SNATMAP server bằng Python. Anh gọi vui đây là "Baby's First Server".
Xây dựng một "Internet thu nhỏ" trong phòng lab
Vì Methodius có con nhỏ, không có nhiều thời gian rảnh, Chris cần một cách tự kiểm thử iChat qua Internet mà không phụ thuộc vào người bạn. Giải pháp: tự dựng một mạng Internet thu nhỏ ngay trong nhà.
Anh thiết lập:
- Hai router NAT chạy OpenWrt dưới dạng máy ảo trên Proxmox (KVM).
- Một vùng mạng phẳng đóng vai trò "Internet".
- Hai máy Mac kết nối vật lý qua USB NIC vào router ảo.
- Một máy Debian chạy các dịch vụ ejabberd (XMPP), lighttpd (web) và SNATMAP server.
Bố cục lab thực tế với máy Mac và server Proxmox
Cách bố trí này cho phép anh kiểm thử và lặp lại nhanh chóng, mô phỏng chính xác điều kiện thực tế của một kết nối iChat xuyên NAT.
Kết quả: iChat AV gọi được trên Internet thật
Sau khi SNATMAP server hoạt động, hai người bạn chỉ cần thêm một dòng vào file /etc/hosts trên máy Mac cũ của họ:
157.230.2.213 configuration.apple.com
Lưu ý quan trọng: điều này giả định router của bạn thực hiện NAT bảo toàn port (port-preserving NAT) — điều mà hầu hết router tiêu dùng đều làm. Nếu bạn dùng router BSD như pfSense hoặc OPNsense, bạn cần bật tùy chọn source port preservation trong cấu hình outbound NAT.
Chris và Methodius trò chuyện qua iChat AV trên Internet thật
Một phát hiện thú vị khác: bạn không nhất thiết phải dùng iSight. Chris đã thử thành công với một chiếc webcam Logitech C920 khá hiện đại trên OS X Leopard.
Tự host hay dùng luôn server có sẵn?
Chris đã công bố cả file đặc tả và mã nguồn SNATMAP server để bất kỳ ai cũng có thể tự host. Nếu muốn tự triển khai, bạn cần:
- Một web server phản hồi request tới
configuration.apple.com. - Phục vụ file
snatmap.txttại đường dẫn/configurations/macosx/ichat/1/snatmap.txt. - Nội dung file chỉ đơn giản là:
snatmap://ĐỊA_CHỈ_IP_CỦA_BẠN:5678
Hoặc đơn giản hơn, Chris vẫn duy trì server SNATMAP của riêng mình cho "1 đến 5 người cuối cùng trên thế giới vẫn muốn video chat bằng phần mềm cổ đại này".
Với những ai đam mê retro computing, đây là lời nhắc rằng: không có dịch vụ nào thực sự 'chết' nếu còn người đủ tò mò để hồi sinh nó.
Góc nhìn cho người dùng Việt Nam
Câu chuyện này mang nhiều ý nghĩa với cộng đồng yêu công nghệ Việt Nam:
- Reverse engineering không còn là lãnh địa độc quyền của chuyên gia bảo mật — LLM đang hạ thấp rào cản để bất kỳ kỹ sư nào cũng có thể phân tích giao thức cũ.
- Nhiều dịch vụ, thiết bị IoT và hệ thống doanh nghiệp tại Việt Nam vẫn phụ thuộc vào các giao thức "di sản" tương tự. Việc hiểu cách chúng hoạt động có thể giúp kéo dài vòng đời thiết bị, tiết kiệm chi phí nâng cấp.
- Với những ai đang giữ máy Mac đời cũ hoặc thiết bị Apple PowerPC, đây là cơ hội để thử nghiệm lại một chút lịch sử công nghệ.
Nếu bạn muốn thử, hãy nhớ: đây là dự án cộng đồng phi chính thức, không được Apple hỗ trợ, và việc chỉnh sửa file /etc/hosts cần thực hiện cẩn thận để tránh ảnh hưởng tới các kết nối khác trên hệ thống.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Phát hiện hành tinh hình thành từ công thức vật chất mới sau khi sao khổng lồ đỏ nuốt chửng hệ Mặt Trời
06 tháng 10, 2026