2010-02-24 28 views
5

Tôi cố gắng để viết elf chương trình nạp thực thi cho ARM platform.I có một số truy vấn ở đâyLàm cách nào để tải tệp thực thi ELF có thể di chuyển lại?

1) Làm thế nào để tạo ra định vị hoặc vị trí độc lập thực thi ELF (những gì là những tùy chọn liên kết biên dịch &) 2) Làm thế nào để tải này trên đã tạo tệp thực thi ELF.

Như astart, tôi đã làm một số công việc và nó hoạt động tốt. Tôi đang sử dụng một địa chỉ cố định cho RO_Base và không tách Phân đoạn trong khi xây dựng (không sử dụng bất kỳ tùy chọn --split nào), để tôi nhận được một đoạn mã tiếp giáp, dữ liệu, phần bss. sau này tôi tải elf vào cùng một địa chỉ với RO_Base và thực thi mã như là một chuỗi mới. điều này làm việc tốt. Tôi đã không thực hiện bất kỳ chuyển địa chỉ nào ...

Bây giờ tôi muốn làm cho nó động và có thể tải tới bất kỳ địa chỉ nào bằng cách tạo ELF có thể thay đổi và sửa đổi Trình tải thành các thay đổi thích hợp. Hãy giúp tôi làm cho nó hoạt động.

Cảm ơn,

Trả lời

0

Chỉ cần sử dụng cờ -r để liên kết để làm cho tệp có thể định vị lại.

Sử dụng một cái gì đó như this để định vị lại tệp trong bộ nhớ.

0

Đây là một chủ đề lớn. Tôi sẽ đến tham khảo "Linkers and Loaders" của John R. Levine. Đây là bản thảo của cuốn sách, Chapter 7 Relocation, tôi hy vọng nó hữu ích

Các vấn đề liên quan