Формат ELF

Тема в разделе "WASM.RESEARCH", создана пользователем mox_2000, 8 июл 2005.

  1. mox_2000

    mox_2000 New Member

    Публикаций:
    0
    Регистрация:
    8 июл 2005
    Сообщения:
    1
    Привет All



    Очень нужна помощь в разборе формата файла (библтотека) в формате ELF



    Если кто то этим занимался откликнитесь.



    А то второй день немогу совместить то что написано в документации с тем что есть в файле





    Стоит задача разобраться с данным форматом.

    Приведу кусочек файла(библиотеки) может так будет понятна проблема





    вот фрагмент файла библиотеки

    ...........................................



    0000A0 30 34 0A 00 00 7F 45 4C 46 01 02 01 00 00 00 00

    0000B0 00 00 00 00 00 00 01 00 35 00 00 00 01 00 00 00

    0000C0 00 00 00 0D E8 00 00 0A 28 00 00 00 00 00 34 00

    0000D0 00 00 00 00 28 00 18 00 17 00 00 00 00 00 00 00

    0000E0 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00



    из этого куска видим

    File format: ELF/Dwarf (0000A5 начало )

    Ident: ELF with 32-bit objects, MSB encoding, Version 1

    Type : Relocatable file (0x1)

    Version : 1

    Machine : Motorola HC12 (0x35)

    Entry point: 0

    Elf flags : 0

    ElfHSiz : 34

    ProgHOff : DE8, ProgHSi: 0, ProgHNu: 0

    SectHOff : A28, SectHSi: 28, SectHNu: 24, SectHSI: 23





    дальше если смотреть по этому фрагменту то получается

    что

    PROGRAM HEADER TABLE — 0 Items и стартовый адресс где это все находится Starts at: DE8



    ...............................

    000DE0 01 00 00 00 0C 00 00 00 04 00 00 00 0C 00 00 00

    000DF0 DF 00 00 00 04 00 00 00 00 00 00 00 00 00 00 04

    000E00 A4 00 00 00 0C 00 00 00 01 00 00 00 0D 00 00 00

    000E10 04 00 00 00 0C 00 00 00 F4 00 00 00 04 00 00 00

    ......................................................

    но так как Items-ов 0 то проверить нет возможности



    далее



    SECTION HEADER TABLE — 24 Items

    Starts at: A28, Size of an entry: 28



    А реально получается что начало секции находится где то 9B6 ( 2E 73 79 6D.................)



    ..........................................................

    0009B0 47 00 00 00 00 00 2E 73 79 6D 74 61 62 00 2E 73

    0009C0 74 72 74 61 62 00 2E 72 6F 64 61 74 61 00 2E 72

    0009D0 6F 64 61 74 61 31 00 2E 64 61 74 61 00 2E 62 73

    0009E0 73 00 2E 74 65 78 74 00 2E 64 65 62 75 67 5F 69

    0009F0 6E 66 6F 00 2E 64 65 62 75 67 5F 61 62 62 72 65

    000A00 76 00 2E 64 65 62 75 67 5F 6C 6F 63 00 2E 64 65

    000A10 62 75 67 5F 6C 69 6E 65 00 2E 64 65 62 75 67 5F

    000A20 66 72 61 6D 65 00 2E 64 65 62 75 67 5F 70 75 62

    000A30 6E 61 6D 65 73 00 2E 64 65 62 75 67 5F 61 72 61

    000A40 6E 67 65 73 00 2E 72 65 6C 61 2E 74 65 78 74 00

    000A50 2E 72 65 6C 61 2E 64 65 62 75 67 5F 69 6E 66 6F







    Кто поможет разобраться с этим?
     
  2. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    есть хорошая книга kaspersky "записки исследователя

    комп. вирусов", где подробно разобран формат elf.
     
  3. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    _edge

    Не точнее чем в документации.
     
  4. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    а документация и лежит на этом сайте :)

    HIEW тоже понимает ELF и есть масса open source библов для работы с ELF, надо только на сорсфордж вылезти