Thiết bị nhúng - Phần 2

thanhlong

Moderator
gemgem
Tham gia
18/03/2025
Bài viết
64
Được Like
0
Coin
2,477
Points
355
[Part 2] - Embedded devices hacking

Bài trước mình có đưa một số thông tin tổng quan về các khái niệm thiết bị nhúng. Để reverse được firmware của thiết bị nhúng, chúng ta cần có 2 thứ. Một là file firmware, hai là hiểu biết về ngôn ngữ nền tảng của firmware đó. Phần này chúng ta sẽ tìm hiểu, làm sao để lấy được file firmware của thiết bị.

* Download firmware từ nhà sản xuất.

Để hỗ trợ người dùng cập nhật firmware cho thiết bị của mình, các nhà sản xuất sẽ cung cấp các file firmware để người dùng tải về và cập nhật cho thiết bị của mình, chúng ta có thể tìm và tải về thực hiện phân tích với file firmware đó. Tuy nhiên, đối với file firmware được tải về sẽ bao gồm rất nhiều phần được nén vào một file firmware ví dụ như hình ảnh, code xử lý, data...v.v điều này sẽ gây khó khăn trong việc phân tích. Phần sau chúng ta sẽ tìm hiểu làm thế nào để phân tích một file firmware có nhiều thành phần như vậy.

Nhiều nhà sản xuất thiết bị lựa chọn cập nhật firmware từ xa cho khách hàng thì sao, hay đồng nghĩa với nhà sản xuất không cung cấp file firmware. Chúng ta sẽ tìm hiểu đến phương án tiếp theo.

* Dump firmware từ bộ nhớ của thiết bị thông qua các cổng giao tiếp.

Các mạch điện tử của thiết bị thường sẽ được tích hợp một số chuẩn giao tiếp để nạp firmware, để debug thiết bị (Ví dụ: UART, JTAG,...v.v). Vậy làm sao chúng ta có thể nhận diện và kết nối được đến cổng giao tiếp này. Mình xin lấy ví dụ thực tế là một bảng mạch hỗ trợ giao tiếp UART. Chúng ta sẽ có một sơ đồ kết nối như sau:

1-png.14544

Sơ đồ tổng quan giao tiếp giữa người dùng và thiết bị.

UART (Universal Asynchronous Receiver – Transmitter) là bộ truyền nhận tín hiệu không đồng bộ. Để kết nối thiết bị tới máy tính cần phải sử dụng chuẩn giao tiếp RS-232. Trong ví dụ sử dụng mạch chuyển đổi sử dụng module FT232RL.

2-png.14545


Mạch chuyển đổi FT232RL.

Do giao tiếp RS232 sử dụng cổng COM(ít được sử dụng) nên mạch chuyển đổi FT232RL có thể giao tiếp qua cổng USB. Để sử dụng cần cài thêm driver để giao tiếp giữa mạch chuyển đổi và máy tính. Ngoài ra cần có một chương trình giao diện giúp người dùng thao thác nhận và gửi dữ liệu từ máy tính (VD: minicom, hypertrm,…).

Cuối tuần mình sẽ viết tiếp về cách nhận diện và kết nối, giao tiếp với bảng mạch của thiết bị.

Các bạn có câu hỏi hoặc góp ý thảo luận ở dưới nhé!
 
Top Bottom