Сейчас на форуме: Magister Yoda (+4 невидимых)

 eXeL@B —› Основной форум —› Скрипт для поиска переходов вызовов из малых в болшие адресса в IDA отладчике
Посл.ответ Сообщение

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

Создано: 27 февраля 2009 14:45
· Личное сообщение · #1

По сабжу, кто то видел, имеет что то подобное...?

Спасибо.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 27 февраля 2009 14:55
· Личное сообщение · #2

0x401000 это большой адрес ?

-----
My love is very cool girl.




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

Создано: 27 февраля 2009 14:57
· Личное сообщение · #3

Раскручивать тему про теорию относительности не буду...

Если конкретно, надо вывести список всех переходов из одной части ЕХЕ в другую часть, как сделать это быстро, без ручек, не знаю... нужна помощь =)



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 27 февраля 2009 15:04 · Поправил: cppasm
· Личное сообщение · #4

Я конечно не телепат, но помоему он хочет скрипт для поиска команд, передающих управление на более старшие адреса относительно адреса самой команды.

Т.е.
Code:
  1. 401000 jmp 401010 ; передача управления на старшие адреса - подходит

Code:
  1. 401010 jmp 401000 ; передача управления на младшие адреса - не подходит




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

Создано: 27 февраля 2009 15:06
· Личное сообщение · #5

Конкретно, в идеале, указываю два блока кода в ЕХЕ, и плагин выводит все переходы из одного в другой... Может хоть приближенное что то есть, а то ЕХЕ на пару мег, или не для ИДЫ, для другого дизасма....



Ранг: 42.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 27 февраля 2009 15:31
· Личное сообщение · #6

Типа такой ИДА скрипт?
Code:
  1. auto ea, d, ea1start, ea1end, ea2start, ea2end;
  2. ea1start = 0x401000; //Первый блок - откуда
  3. ea1end = 0x402000;
  4. ea2start = 0x405000; //Второй блок - куда
  5. ea2end = 0x409000;
  6. for (ea = ea1start; ea < ea1end; ea++)
  7. {
  8.    if (Byte(ea) == 0xE9)   // 0xE9 - это jmp rel32, если нужен "call rel32", то это 0хE8
  9.    {
  10.       d = Dword(ea+1);
  11.       if ((d+ea+5 >= ea2start) && (d+ea+5 <= ea2end))
  12.       {
  13.          Message("%x: jump to %x\n", ea, d+ea+5);
  14.       }
  15.    }
  16. }

Доработать поиск в другом направлении сам сможешь..



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

Создано: 27 февраля 2009 15:49
· Личное сообщение · #7

Спасибо, я как раз вот начал разбирать ИДА язык... супер =)


 eXeL@B —› Основной форум —› Скрипт для поиска переходов вызовов из малых в болшие адресса в IDA отладчике
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати