Các dự án nhúng của tôi có một bước sau xử lý thay thế một giá trị trong tệp thực thi bằng đèn flash của CRC (một số phần). Bước này chỉ có thể được thực hiện sau khi liên kết vì đó là cơ hội đầu tiên để CRC hình ảnh. Trong quá khứ, định dạng tệp là COFF và tôi đã tạo một công cụ tùy chỉnh để thực hiện việc vá.Công cụ sửa đổi đơn giản tệp tin elf?
Công cụ phát triển đã chuyển sang ELF, vì vậy tôi cần phải triển khai lại trình vá CRC. Trước khi tôi làm, tôi nghĩ rằng tôi sẽ tìm kiếm một công cụ hiện có để làm điều này. Trình biên dịch dựa trên gcc, nhưng tôi không thể thấy bất kỳ kết hợp nào của ld
và nm
và readelf
có thể thực hiện công việc. Tìm kiếm của Google chưa thành công.
Công cụ hiện tại của tôi sử dụng nm
để tìm địa chỉ để vá và gọi cho trình vá bằng địa chỉ, giá trị dự kiến (để ngăn ghi đè dữ liệu sai) và giá trị CRC mới. CRC được tính dựa trên định dạng "hex" của tệp thực thi (mà tôi cũng vá) nên may mắn thay tôi không phải làm lại phần đó.
Tôi có thể triển khai điều này với libelf
và mã tùy chỉnh một lần nữa, nhưng trước khi thực hiện, nó đã tồn tại chưa?
Có cách nào tốt hơn để hoàn thành mục tiêu đưa CRC của tệp thực thi vào tệp thi hành để nó có sẵn cho ứng dụng không?
Đây là một gợi ý tuyệt vời, +1. Tôi sẽ thử. –