Получения адреса секции в msvc
От: reider  
Дата: 12.10.18 10:54
Оценка:
Доброго времени суток.
Я в студии создал свою секцию, #pragma data_seg(".1111"), как получить в коде её адрес?
Компилирую по заданной базе и нахоху пока так:
DWORD dwImportDirectoryVA, dwSectionCount, dwSection = 0, dwRawOffset;
    LPVOID lpFile;
    PIMAGE_DOS_HEADER pDosHeader;
    PIMAGE_NT_HEADERS pNtHeaders;
    PIMAGE_SECTION_HEADER pSectionHeader;
    PIMAGE_IMPORT_DESCRIPTOR pImportDescriptor;
    PIMAGE_THUNK_DATA pThunkData;
    lpFile = (LPVOID)0x00400000;
    pDosHeader = (PIMAGE_DOS_HEADER)lpFile;
    pNtHeaders = (PIMAGE_NT_HEADERS)((DWORD)lpFile + pDosHeader->e_lfanew);
    dwSectionCount = pNtHeaders->FileHeader.NumberOfSections;
    dwImportDirectoryVA = pNtHeaders->OptionalHeader.DataDirectory[1].VirtualAddress;
    pSectionHeader = (PIMAGE_SECTION_HEADER)((DWORD)pNtHeaders + sizeof(IMAGE_NT_HEADERS));
    pSectionHeader++;
    pSectionHeader++;
    pSectionHeader++;
DWORD ADDR = pNtHeaders->OptionalHeader.ImageBase + pSectionHeader->VirtualAddress;


Есть ли более человеческий способ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.