Сопоставить имена функций, вызываемых из oleaut32.dll, их адресам.

Тема в разделе "WASM.RESEARCH", создана пользователем verelex, 6 июл 2007.

  1. verelex

    verelex New Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2006
    Сообщения:
    90
    xz.exe
    Imagebase : 400000
    .text:00401000 ; Section 1. (virtual address 00001000)
    Flash9b.ocx
    Imagebase : 30000000
    .text:30001000 ; Section 1. (virtual address 00001000)
    oleaut32.dll
    Imagebase : 77110000
    .idata:77111000 ; Section 1. (virtual address 00001000)
    ...
    Например, часть кода программы, в которой исп-ся oleaut32 (в Olly):
    771177FD E8 1DF1FFFF CALL OLEAUT32.7711691F ;-(in oleaut)
    77117AEB E8 65D1FFFF CALL OLEAUT32.SysAllocStringByteLen ;-(in oleaut)
    77117FD7 E8 E8E5FFFF CALL OLEAUT32.VariantChangeTypeEx ;-(in oleaut)
    771179DB E8 2DF9FFFF CALL OLEAUT32.DispCallFunc ;-(in oleaut)
    300AFA7F FF15 98331A30 CALL DWORD PTR DS:[<&OLEAUT32.#6>] ; OLEAUT32.SysFreeString -(in Flash9b)
    300AFA8A FF15 A0331A30 CALL DWORD PTR DS:[<&OLEAUT32.#2>] ; OLEAUT32.SysAllocString -(in Flash9b)
    77114BDF E8 75FFFFFF CALL OLEAUT32.SysAllocStringLen ;-(in oleaut)
    300B66E8 FF15 B0331A30 CALL DWORD PTR DS:[<&OLEAUT32.#8>] ; OLEAUT32.VariantInit -(in Flash9b)
    300A5280 FF51 18 CALL DWORD PTR DS:[ECX+18] ; OLEAUT32.77119F27 -(in Flash9b)
    ...
    Теперь хочу узнать имена функций, напр. OLEAUT32.77119F27
    ------------------------------
    dumpbin oleaut32.dll:
    File Type: DLL

    Section contains the following exports for OLEAUT32.dll

    00000000 characteristics
    41107F06 time date stamp Wed Aug 04 12:15:34 2004
    0.00 version
    2 ordinal base
    442 number of functions
    398 number of names

    ordinal hint RVA name

    286 0 000141D3 BSTR_UserFree
    284 1 00014177 BSTR_UserMarshal
    283 2 00014146 BSTR_UserSize
    285 3 00013FD5 BSTR_UserUnmarshal
    414 4 00042EC2 BstrFromVector
    и.т.д...
    Теперь надо как-то сопоставить VA и RVA.
    RVA = VA - IB
    find name of "7711691F": 7711691F - 77110000(Imagebase) = 691F
    VA = 00001000 + 691F = 791F <--- нет такой функции

    OLEAUT32.77119F27 = 77119F27 - 771096E1(-ib+va) = 10846 ; тоже нет
    Относительно чего дается RVA в dumpbin'e?
    add:
    хотя как я понял есть 44 функции без имен...