MS COFF CodeView Symbols

Тема в разделе "WASM.WIN32", создана пользователем wasm_test, 27 окт 2010.

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну мне интересно глянуть, парсит ли его парсер пдбшки, которые генерит 2008 студия. Там недокументированный формат в некоторых местах, и не разреверсишь особо.
     
  2. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    Да, парсит, причем без ошибок, которые выдает загрузчик пдб инфо в ИДА. Но здесь нужно определить, какую инфу мы хотим получить: основные два типа информации в пдб - symbol info и type info.
    Type info у меня парсится 100%, не встречал в существующих типах никаких новых полей по сравнению с CV NB 10-11, да в VC 2008 появились некоторые новые типы, но использование их в пдб пока не встречал.
    Что касается symbol info, то основная требуемая инфа берется вся, остается только несколько недокументированных символов, но они непринципиальны для задачи реверсинга.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    угу, type info в 2008 парсится без изменений.
     
  4. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    Вообще-то правильный путь - использовать это. Но насколько оно полно в описаниях судить сложно, например, полный перечень всех символов и типов у меня (откуда взял не помню)
    Код (Text):
    1. enum vSymTag
    2. {
    3.     SymTagNull,                     //+
    4.     SymTagExe,
    5.     SymTagCompiland,                //+
    6.     SymTagCompilandDetails,
    7.     SymTagCompilandEnv,
    8.     SymTagFunction,                 //+
    9.     SymTagBlock,                    //+
    10.     SymTagData,                     //+
    11.     SymTagAnnotation,
    12.     SymTagLabel,                    //+
    13.     SymTagPublicSymbol,             //+
    14.     SymTagUDT,                      //+
    15.     SymTagEnum,                     //+
    16.     SymTagFunctionType,             //+
    17.     SymTagPointerType,              //+
    18.     SymTagArrayType,                //+
    19.     SymTagBaseType,                 //+
    20.     SymTagTypedef,                  //+
    21.     SymTagBaseClass,                //+
    22.     SymTagFriend,                   //+
    23.     SymTagFunctionArgType,          //+
    24.     SymTagFuncDebugStart,           //+
    25.     SymTagFuncDebugEnd,             //+
    26.     SymTagUsingNamespace,
    27.     SymTagVTableShape,              //+
    28.     SymTagVTable,                   //+
    29.     SymTagCustom,
    30.     SymTagThunk,                    //+
    31.     SymTagCustomType,
    32.     SymTagManagedType,
    33.     SymTagDimension,
    34.     SymTagMethod,                   //+
    35.     SymTagNested,                   //+
    36.     SymTagSpecialType               //+
    37. };
    //+ помечены реализованные
    на две еденицы больше, чем приведен в VC 2010
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Vam
    Ну тогда расскажите как парсить GSI/PSGSI. У меня там оффсеты левые совсем.
    + там используется сжатие, что недокументировано нигде, случайно обнаружил реверсингом.
    Или ты просто поток с символами читаешь? Так вот там оффсеты левые для дллок. Не совпадают с адресами функций.
    А для ехе все совпадает. Причем только системные пдб, те, что я сам собираю, парсятся нормально.

    Да если бы, мне в ядре пдб парсить надо.
     
  6. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    Я читаю пдб директориями с учетом их вложенности и вызова других пдб, на саму пдб выхожу через исполняемых файл - его дебаг директорию. насчет левости офсетов не замечал, пока всё совпадало.
     
  7. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
  8. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    Ваял недавно прогу (о чем тему поднимал) PDB -> MDB как сорцы найду выложу. Пока что некогда.
    ADD: вроде вот
     
  9. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Всем спасибо, все свободны. Формат разреверсил
     
  11. Vam

    Vam New Member

    Публикаций:
    0
    Регистрация:
    16 июл 2008
    Сообщения:
    149
    Ну и много там левого нашёл?
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    *нового?
    достаточно
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    не хек :) хочу чтобы отладчик был без юзермодной части