IDA : превратить данные в код

Тема в разделе "WASM.RESEARCH", создана пользователем INM7RIPE, 3 сен 2004.

  1. INM7RIPE

    INM7RIPE New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2004
    Сообщения:
    11
    Адрес:
    Ukraine
    Есть один двоичный файл. процессор Intel. В некоторой

    части кода ida решила что это данные , поскольку якобы

    увидела ссылку на них в другой части кода. Там действительно есть ссылка на такое же смещение, правда от

    сегмента ds. Попробовал undefine , потом code - не помогает
     
  2. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Если это не глюк Иды - значит, не код.

    Попробуйте посмотреть, как это место выглядит в отладчике.
     
  3. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    > Там действительно есть ссылка на такое же смещение,

    > правда от сегмента ds.

    подведи курсор к смещению и нажми ALT-R, появится диалог выбора сегмента, относительного которого это смещение адресовать



    > Попробовал undefine , потом code - не помогает

    подробности не помешают.

    "не помогает" это как?

    такое впечатление, что неправильно задан тип процессора (Options -> Processor Type) и она просто не знает этих команд
     
  4. valterg

    valterg Active Member

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




    Внимательно проверь, что в куске для которого сделал undefine не осталось близких "вкраплений" ( idaw их синим подсвечивает). Я на днях этим занимался - приходилось по 2 раза undefine делать. А ссылки на эти data как-то благополучно сами рассосались :)
     
  5. smax

    smax New Member

    Публикаций:
    0
    Регистрация:
    5 сен 2004
    Сообщения:
    32
    Адрес:
    .ru
    <font size=2>чтобы не плодить тем, тут спрошу</font><!--size-->



    1. а как сделать дамп в бинарный файл выделенных строк в IDA-VIEW окне?



    2. можно ли в этом же окне включить бинарное отображение дизасемблированных команд?
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    smax



    Написать плагин :derisive:

    хотя может уже есть такой..
     
  7. reverser

    reverser New Member

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


    Options-General-Disassembly-Number of opcode bytes
     
  8. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336


    options->general->opcode bytes
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    smax

    По поводу 1) можно с помощью idc скрипта:
    Код (Text):
    1. auto fp, ea;
    2. fp = fopen("dump.bin", "wb");
    3. for ( ea=0x401000; ea < 0x406000; ea++ )
    4.   fputc(Byte(ea), fp);


    Только нужно жёстко указывать размеры ОТ и ДО, поэтому

    получается дамп не выделенных строк, а выбранных :derisive:
     
  10. reverser

    reverser New Member

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


    Ну можно в общем-то и выделение брать.
    Код (Text):
    1.  
    2. auto fp, ea;
    3. fp = fopen(AskFile(1,"dump.bin","Save selected bytes"), "wb");
    4. if (fp)
    5. {
    6.   for ( ea=SelStart(); ea <=SelEnd(); ea++ )
    7.     fputc(Byte(ea), fp);
    8.   fclose(fp);
    9. }
    10.  
     
  11. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    reverser



    Что-то я не понял, это что ты в цикле fclose вызываешь?

    Да и вобще оно не нужно, файл и так закрывается автоматически после завершения работы скрипта.
     
  12. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    Что-то я не понял, это что ты в цикле fclose вызываешь?





    Asterix, нет, ни в коем случае. Учи синтаксис С - в цикле for вызывается одна-единственная команда - fputc. fclose вызывается ПОСЛЕ. Тебе даже табуляцией показали положение дел. Такая табуляция безразлична для лексического анализатора, но человеку покажет, что к чему :)
     
  13. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    reverser

    volodya



    Sorry, я не туда смотрел, что-то око мое затуманилось и я посчитал if началом цикла, а соответственно то что в {} телом, а цикл то у нас тут только for %)