Использование структур в IDA

Тема в разделе "WASM.BEGINNERS", создана пользователем BlackBerry, 5 июл 2007.

  1. BlackBerry

    BlackBerry New Member

    Публикаций:
    0
    Регистрация:
    6 окт 2005
    Сообщения:
    5
    Адрес:
    Ukraine
    Как в IDA "привязать" структуру к дизассемблированому коду ?

    В IDA описал структуру:

    MYstruct struct
    field1 dd
    field2 dd
    end

    и хочу чтобы строка:

    text.0233 cmp es:[bx+4],0

    отображалась как :

    text.0233 cmp es:[bx+field2],0

    У меня IDA 5.0 и IDA 3.8b (MS-DOS)
    Больше интересует как сделать в IDA 3.8b
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Нажимаеш T выбираеш из списка нужную тебе структруру
     
  3. BlackBerry

    BlackBerry New Member

    Публикаций:
    0
    Регистрация:
    6 окт 2005
    Сообщения:
    5
    Адрес:
    Ukraine
    Вопрос в догонку:

    Как сохранить структуру на диске,чтобы потом загрузить в
    другом проекте ? IDA 3.8b
     
  4. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    насколько я знаю встроенного метода сохранения нет, но всегда можно написать скрипт. что-нибудь вроде
    Код (Text):
    1. #include <idc.idc>
    2.  
    3. static main()
    4. {
    5.     auto strucID;
    6.  
    7.      strucID = AddStrucEx(-1, "IDataSource", 0);
    8.  
    9.     AddStrucMember(strucID, "QueryInterface", -1, FF_DWRD, -1, 4);
    10.     AddStrucMember(strucID, "AddRef", -1, FF_DWRD, -1, 4);
    11.     AddStrucMember(strucID, "Release", -1, FF_DWRD, -1, 4);
    12.     AddStrucMember(strucID, "GetTypeInfoCount", -1, FF_DWRD, -1, 4);
    13.     AddStrucMember(strucID, "GetTypeInfo", -1, FF_DWRD, -1, 4);
    14.     AddStrucMember(strucID, "GetIDsOfNames", -1, FF_DWRD, -1, 4);
    15.     AddStrucMember(strucID, "Invoke", -1, FF_DWRD, -1, 4);
    16.     AddStrucMember(strucID, "get_SourceClass", -1, FF_DWRD, -1, 4);
    17.     AddStrucMember(strucID, "get_Source", -1, FF_DWRD, -1, 4);
    18.     AddStrucMember(strucID, "get_IsDirty", -1, FF_DWRD, -1, 4);
    19.     AddStrucMember(strucID, "put_IsDirty", -1, FF_DWRD, -1, 4);
    20.     AddStrucMember(strucID, "get_SourceURL", -1, FF_DWRD, -1, 4);
    21.     AddStrucMember(strucID, "get_ActiveConnection", -1, FF_DWRD, -1, 4);
    22.     AddStrucMember(strucID, "SaveToObject", -1, FF_DWRD, -1, 4);
    23.     AddStrucMember(strucID, "OpenObject", -1, FF_DWRD, -1, 4);
    24.     AddStrucMember(strucID, "SaveTo", -1, FF_DWRD, -1, 4);
    25.     AddStrucMember(strucID, "Open", -1, FF_DWRD, -1, 4);
    26.     AddStrucMember(strucID, "Save", -1, FF_DWRD, -1, 4);
    27.     AddStrucMember(strucID, "SaveToContainer", -1, FF_DWRD, -1, 4);
    28. }
    подробнее про скрипты можеш почитать у касперски "образ мышления ida" есть на его фтп(nezumi.org.ru)
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    BlackBerry
    Плагин Essense by kab.