2010-09-19 45 views

Trả lời

8

Không, không nhất thiết. Điểm mấu chốt PE được định nghĩa trong cơ cấu IMAGE_OPTIONAL_HEADER, trong lĩnh vực AddressOfEntryPoint:

Một con trỏ đến các chức năng nhập điểm, tương ứng với địa chỉ cơ sở hình ảnh. Đối với các tệp thi hành, đây là địa chỉ bắt đầu. Đối với trình điều khiển thiết bị, đây là địa chỉ của hàm khởi tạo. Chức năng điểm vào là tùy chọn cho các tệp DLL. Khi không có điểm vào, thành viên này bằng không.

Trình liên kết có thể đặt giá trị này thành bất kỳ thứ gì bạn muốn, miễn là giá trị ảo ảo tương đối hợp lệ của nó vào PE. Một số trình biên dịch và trình liên kết có thể có quy ước đặt điểm vào ở đầu phần văn bản/mã, nhưng không có yêu cầu về định dạng OS hoặc PE cho nó.

+1

Tôi thấy rằng tôi không thể đặt 'AddressOfEntryPoint' tùy ý khi sử dụng Windows 7. Tôi đang tạo các tệp thi hành nhỏ mà không có thư mục dữ liệu hoặc bảng mục. Từ thử nghiệm và lỗi, tôi thấy rằng mục nhập có thể trỏ trực tiếp sau tiêu đề PE, nhưng không được bù đắp thêm một chút. –

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