Tôi có một chuỗi công cụ crosscompiling cho một hệ thống nhúng (mipsel) trên x86 Linux của tôi. Tôi biết làm thế nào để xây dựng một kernel tùy chỉnh (chúng ta hãy gọi hình ảnh "vmlinux") cho nó và làm thế nào để gỡ bỏ hình ảnh đó quaXác định địa chỉ tải và điểm vào của hình ảnh hạt nhân Linux bị tước
objcopy -S -O binary vmlinux vmlinux.bin
Đối với chế biến tiếp Tôi cũng cần địa chỉ tải và điểm nhập cảnh của hình ảnh. Trước tước nó là không có vấn đề để xác định chúng qua scripts/mksysmap
hoặc, một cách rõ ràng hơn, qua
nm -n vmlinux | grep -v '\([aNUw] \)\|\(__crc_\)\|\(\$[adt]\)' > System.map
Sau đó, tôi có thể xác định địa chỉ tải và điểm nhập cảnh qua
awk '/A _text/ { print "0x"$1; }' < _System.map
awk '/T kernel_entry/ { print "0x"$1; }' < System.map
Bây giờ thách thức là đôi khi Tôi không tự xây dựng hạt nhân, nhưng có được một hạt nhân được xây dựng sẵn sau nó đã bị tước bỏ các biểu tượng của nó thông qua objcopy. Ai có thể cho tôi biết làm thế nào để làm điều này? Tôi không phải là rất thành thạo trong xây dựng hạt nhân và sử dụng toolchain. Cả hai nm và objdump không thích những hình ảnh lột, nói
vmlinux.bin: File format not recognized
Cảm ơn bạn đã biết câu trả lời đó.Thật không may tôi đã không nhận được thông báo về câu trả lời qua e-mail, xin lỗi. Trên thực tế, tôi đã tìm cách khác để tìm ra địa chỉ tải và điểm vào, nhưng giải pháp của tôi là cụ thể cho tình huống và không thể áp dụng chung, vì vậy tôi không trích dẫn nó ở đây. Hãy để tôi chỉ nói rằng giải pháp được đề xuất của bạn không tạo tệp ELF, nhưng tệp không chứa thông tin di chuyển mong muốn. Do đó, thông tin không thể được trích xuất từ nó thông qua 'nm -n'. Cảm ơn bạn đã trả lời. – kriegaex