Сейчас на форуме: _MBK_, Adler (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Как в IDA сделать такое?
Посл.ответ Сообщение

Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 февраля 2011 21:18
· Личное сообщение · #1

IDA тем хороша что это интерактивный диз ассемблер и если он обнаруживает что ошибся предлагает передизассемблировать это место.
Теперь задача. Надо найти все такие места... Можно держать F7 до опупения или даже вставить зубочистку в кнопку, но это ИМХО не верно.
Из инструментария IDA предлагает IDC.

Чего Я хочу? - Хочу что бы ида фигачила выполнения кода пока она ИЛИ не встретит брекпоинт ИЛИ не наткнётся на ситуацию когда код был дизассемблирован неверно.

И вот Я пишу скрипт:

auto ev;
while(1)
{
StepInto();
ev = GetDebuggerEvent( WFNE_ANY, -1 );
if( BREAKPOINT == ev || DBG_ERROR == ev ) break;
}

Запускаю и всё виснет...

Что Я делаю не так?



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 06 февраля 2011 21:46
· Личное сообщение · #2

Что Я делаю не так?
Все не так.
Первое есть отдельный топик для ИДЫ --> Тынц <--. Второе - ИДА ИНЕРАКТИВНЫЙ дизассемблер, т. е. по русски это 70% работы нужно делать ручками а не предлагать ИДЕ, как это делать желательно почитать литературу.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше


| Сообщение посчитали полезным: YellowKlen

Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 февраля 2011 21:53
· Личное сообщение · #3

gena-m
Спасибо за линку, но Я так и не понял, можно ли сделать что Я хочу или нет?
Делать перепост вопроса в ту тему что вы дали, так там вроде народ делится а Я с вопросами полезу...



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 06 февраля 2011 22:09
· Личное сообщение · #4

можно ли сделать что Я хочу или нет?
Нет, нельзя, Вам нужно понять принципы работы с ИДА, ее огромные возможности держатся на большом количестве ручной работы, и пока Вы не освоите все это, лучше использовать Олли, а в ИДА восстанавливать запутанные алгоритмы. А у Вас получается как у барона Мюнхаузена - ИДА сама должна найти свои ошибки и исправить.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 06 февраля 2011 22:14
· Личное сообщение · #5

nen777w пишет:
Спасибо за линку, но Я так и не понял, можно ли сделать что Я хочу или нет?
Делать перепост

А как тебе такой вариант: можно почитать ту тему, и возможно ты найдешь что-то интересное для себя.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 4.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 06 февраля 2011 22:36 · Поправил: nen777w
· Личное сообщение · #6

Ладно.. может меня не правильно поняли....
Ещё раз объясню. Можно нажимать F7 до опупения, можно вставить зубочистку.... но когда то приходит момент когда ида натыкатеся на код который до этого считала данными.
Это ведь событие о котором движок IDA наверняка знает?! Он ведь сообщает об этом!
Можно заскриптовать нажатие F7 до того момента пока такое событие не возникнет?

Или другая интерпретация:
Можно ли заскриптовать нажатие F7 пока IDA не наткнется на брекпоинт?



Ранг: 87.8 (постоянный), 10thx
Активность: 0.070
Статус: Участник

Создано: 07 февраля 2011 00:48
· Личное сообщение · #7

По Ф7, прийдется не один день ходить пока программа доберется хотя бы до вывода окна, но это не так страшно поскольку потом программа попадает в цикл обработки сообщений из которого оладчик ИДЫ уже не выйдет, поскольку его возможности крайне ограничены, и он падает от малейшего "чиха". Поэтому отладчик ИДА лучше вообще не использовать.
ида натыкатеся на код который до этого считала данными
Таое бывает редко, при анализе не это проблема.
Отладчику без разници что в данный момент в EIP - код или данные, все будет выполнятся.
Отладчик и дизассемблер ИДЫ это разные вещи и одному глубоко все равно что думает другой.
Методы какието странные получаются.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше



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


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