2009-10-13 18 views
5

Tôi đang thử nghiệm với quyền truy cập bộ nhớ trong .NET. Hiện tại, tôi có một chương trình được quản lý bắt đầu quy trình không được quản lý và truy xuất BaseAddress của một trong các mô đun được tải (DLL). Những gì tôi muốn làm là bằng cách nào đó đọc tiêu đề PE của mô-đun được nạp để sau này tôi có thể truy xuất địa chỉ xuất của nó.Làm cách nào để đọc tiêu đề PE của mô-đun được tải trong bộ nhớ?

Thật không may, tôi không thể tìm thấy bất kỳ thông tin nào về điều này. Bất kỳ ý tưởng?

Trả lời

5

This là điểm khởi đầu tốt cho định dạng tệp PE.

Bạn có thể P/Gọi ReadProcessMemory từ địa chỉ cơ sở mà bạn phải sao chép tiêu đề vào quy trình của mình. Bạn sẽ cần phân tích bộ nhớ mà bạn đã đọc vào các tiêu đề PE khác nhau. Tiêu đề đầu tiên là IMAGE_DOS_HEADER, sẽ trỏ bạn đến số IMAGE_NT_HEADERS. Sau đó, bạn có thể sử dụng IMAGE_OPTIONAL_HEADER trong IMAGE_NT_HEADERS để tìm vị trí của số IMAGE_EXPORT_DIRECTORY trong tệp nhị phân.

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