Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Написание плагина к IDA PRO (сегменты и регистры)
Посл.ответ Сообщение

Ранг: 4.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 января 2007 01:55
· Личное сообщение · #1

Взялся изучать данную область, заступарился на следующей задачке:
определить имя сегмента, с которым на данный момент работает программа.
Средствами интерфейса в ИДЕ это делается с помощью полной трассировки (удалось это сделать), а вот реализовать на апи не выходит.

псевдокод по реализации:

// Get EIP register value
get_reg_val("eip", &eip);


далее, в цикле бегаю по всем сегментам и просматриваю совпадение адресов:
for (по всем сегментам, цикл по seg){
if ((eip.ival > (seg->startEA)) && (eip.ival < (seg->endEA)))
msg("EIP=%a from segment %d at %a to %a is named %s ", eip.ival, i, seg->startEA, seg->endEA, segName);
}


При таком подходе, программа пишет имена сегментов, которых просто нет в природе (выдал реальный текущий список сегментов)!

Может, спуститься на более низкий уровень (разбирать структуру сегментов)?
Или что-то в адресации напутал с ИДА?


 eXeL@B —› Программирование —› Написание плагина к IDA PRO (сегменты и регистры)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати