IDA again

Тема в разделе "WASM.RESEARCH", создана пользователем Broken Sword, 17 дек 2004.

  1. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    такой вопрос уже где-то был, но не могу найти где... как заставить IDA работать так, чтобы у всех процедур и функций названия аргументов и переменных были уникальными

    (т.е. вместо:



    arg_0 = dword ptr 10h

    arg_4 = word ptr 14h

    arg_8 = dword ptr 18h



    было что то вроде:



    sub12345678_arg_0 = dword ptr 10h

    sub12345678_arg_4 = word ptr 14h

    sub12345678_arg_8 = dword ptr 18h
     
  2. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    смотрю, ИДА не пользуется особой популярностью
     
  3. volodya

    volodya wasm.ru

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

    только чайники мы тут все :)

    Скажем, я не знаю как это сделать, если это вообще возможно
     
  4. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    нет, я придумал еще лучше - чтоб он вообще не парился с этими arg и var а везде подставлял значения. не могу найти в опциях где это включить...
     
  5. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Володя, просто что интересно - ИДА на первом проходе везде вставляет реальные значения, а на втором - заменяет их на arg и var... значит как-то можно отключить :)
     
  6. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    нашел... короче перед дизасмингом нада нажать Kernel Options 1 и убрать галочку с Create Stack Variables. Тогда он не будет подставлять вместо реальных значений var-ы и arg-и.

    Для чего оно вообще нужно - если вам вдруг понадобиться скомпилировать код или какую-то его часть, сгенеренную IDA-ой (produce asm-file), то компилятор уже не будет надоедать сообщением о redefenition - т.о. вы экономите кучу времени, вместо того чтобы вручную переименовывать var-ы и arg-и в каждой процедуре
     
  7. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    тему кстати можно сносить, вопрос уж больно специфический
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Зачем сносить, вдруг ещё кого-то будет интересовать такой-же вопрос..
     
  9. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    Возник еще один вопрос по IDA: в листинге имеется массив dword-ов, все эти dword-ы - смещения меток в коде, но он почему то вставляет непосредственные значения. Одним словом, как одним движением руки заменить:



    dword_751C50 dd 407D80h, 407D50h, 407B74h, 407B20h, 407EB4h



    на



    dword_751C50 dd offset loc_407D80h, offset loc_407D50h, offset loc_407B74h, offset loc_407B20h, offset loc_407EB4h
     
  10. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    выделить блок и нажать "o"
     
  11. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    насчет редифинишенов - если компилить масмом то все в порядке, ибо arg_4 внутри одного proc никаким боком не задевает arg_4 внутри дургого proc
     
  12. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    насчет "o" - спасибо, а насчет редифинишенов странно - у меня кричал
     
  13. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    слушай, а "на поток" можно как-то поставить это? ну в опциях где-то задается, чтоб он сам менял на оффсеты такие данные
     
  14. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    как заставить IDA вместо align вставлять db N dup (0) ?
     
  15. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    Broken Sword

    если в коде, то там обычно 90h и можно порулить processor specific options -> disassemle zero opcode и convert 90h to nop, если в данных то хз.
     
  16. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    ага, именно в данных