· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› IDA : превратить данные в код

Посл.отвђт Сообщенiе


Дата: Сен 3, 2004 22:00:09

Есть один двоичный файл. процессор Intel. В некоторой
части кода ida решила что это данные , поскольку якобы
увидела ссылку на них в другой части кода. Там действительно есть ссылка на такое же смещение, правда от
сегмента ds. Попробовал undefine , потом code - не помогает


Дата: Сен 3, 2004 23:27:04

Если это не глюк Иды - значит, не код.
Попробуйте посмотреть, как это место выглядит в отладчике.


Дата: Сен 4, 2004 03:04:21

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

> Попробовал undefine , потом code - не помогает
подробности не помешают.
"не помогает" это как?
такое впечатление, что неправильно задан тип процессора (Options -> Processor Type) и она просто не знает этих команд


Дата: Сен 4, 2004 10:12:40

„. В некоторой
части кода ida решила что это данные , поскольку якобы
увидела ссылку на них в другой части кода. “


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


Дата: Сен 14, 2004 17:05:40

чтобы не плодить тем, тут спрошу

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

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


Дата: Сен 14, 2004 17:19:13

smax

Написать плагин ;-)
хотя может уже есть такой..


Дата: Сен 14, 2004 17:45:09

„2. можно ли в этом же окне включить бинарное отображение дизасемблированных команд?“
Options-General-Disassembly-Number of opcode bytes


Дата: Сен 14, 2004 17:48:33

„можно ли в этом же окне включить бинарное отображение дизасемблированных команд?“
options->general->opcode bytes


Дата: Сен 15, 2004 18:52:13

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

Только нужно жёстко указывать размеры ОТ и ДО, поэтому
получается дамп не выделенных строк, а выбранных ;-)


Дата: Сен 15, 2004 19:10:27

„Только нужно жёстко указывать размеры ОТ и ДО, поэтому
получается дамп не выделенных строк, а выбранных ;-)“

Ну можно в общем-то и выделение брать.
auto fp, ea;
fp = fopen(AskFile(1,"dump.bin","Save selected bytes"), "wb");
if (fp)
{
  for ( ea=SelStart(); ea <=SelEnd(); ea++ )
    fputc(Byte(ea), fp);
  fclose(fp);
}


Дата: Сен 15, 2004 19:41:27

reverser

Что-то я не понял, это что ты в цикле fclose вызываешь?
Да и вобще оно не нужно, файл и так закрывается автоматически после завершения работы скрипта.


Дата: Сен 15, 2004 19:49:55

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


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


Дата: Сен 15, 2004 19:56:32

reverser
volodya

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


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.196