Таблица импорта

Тема в разделе "WASM.BEGINNERS", создана пользователем w_user, 13 апр 2017.

  1. w_user

    w_user New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2017
    Сообщения:
    3
    Здравствуйте. Пытаюсь разобраться с PE загрузчиком ЕХЕ. получается все кроме импорта
    код:

    mov edi, [ebx].OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT*sizeof(IMAGE_DATA_DIRECTORY)].VirtualAddress
    test edi, edi
    jz next1

    add edi, pNewImageBase
    assume edi : ptr IMAGE_IMPORT_DESCRIPTOR
    import1:
    cmp [edi].FirstThunk, 0
    jz next1

    mov eax, [edi].Name1
    add eax, pNewImageBase
    invoke LoadLibraryA, eax
    mov hModule, eax

    push edi

    .IF [edi].OriginalFirstThunk
    mov esi, [edi].OriginalFirstThunk
    .ELSE
    mov esi, [edi].FirstThunk
    .ENDIF

    add esi, pNewImageBase

    mov edi, [edi].FirstThunk
    add edi, pNewImageBase
    @@:
    .IF dword ptr [esi]
    lodsd
    .IF !(eax & 80000000h)
    add eax, pNewImageBase
    inc eax
    inc eax
    .ELSE
    and eax, not 80000000h
    .ENDIF
    invoke GetProcAddress, hModule, eax

    stosd

    jmp @B
    .ENDIF

    pop edi

    add edi, sizeof(IMAGE_IMPORT_DESCRIPTOR)
    jmp import1

    next1:

    в результате импорт не меняется :dntknw:
    подскажите пожалуйста по коду в чём заключается ошибка. сам не справляюсь. надеюсь на профи. спасибо

    p.s.: при загрузке длл этот код отлично работает, при ехе нет.
    ехе - обычный MessageBox + ExitProcess , собранный masm-ом
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.331
    Права на запись в секцию с IAT есть?
     
  3. w_user

    w_user New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2017
    Сообщения:
    3
    да, это мной выделенная память
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.331
    Ну, тогда грузи ее в отладчик и пошагово проверяй, в каком месте начнет делать не то, что должна.
     
  5. w_user

    w_user New Member

    Публикаций:
    0
    Регистрация:
    13 апр 2017
    Сообщения:
    3
    все делает то что должно, EP загружаемого вызывается, только адреса в импорте загруженного не соответствуют правильным
     
  6. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    rococo795 нравится это.