eXTracted INternals

eXTracted INternals
 
ФорумФорум  ЧаВоЧаВо  ПоискПоиск  РегистрацияРегистрация  ПользователиПользователи  ГруппыГруппы  Вход  

Поделиться | 
 

 IDA Undo

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: IDA Undo   Вт 29 Июл - 1:47

Попытался сделать плагин для UNDO действий в IDA, реально получилось только работать с Rename и Undefine Data.
Дальнейшее развитие невозможно изза
1) Нет нотификейшенов о создании функции.
2) Именование меток возникает после того как функция уже создана
3) Undefine, Make Code и т.д. делается по одному элементу. Т.е. к вам приходит событие N-раз если в массиве/функции N элементов/инструкций. Вот вы вроде как делаете undefine для функций, а к вам валится 25 undefine для каждой из инструкций.
4) Если вы создаете функцию, которая вызывает еще какую-то другую функцию, к вам сыпятся события make_code до тех пор пока анализатор не упрется в тупик.

По этим же причинам невозможно сделать полноценный Source Control для IDA.

Если кто-то захочет убедиться, вот сорцы:
http://extint.narod.ru/Files/IdaUndo.rar
Вернуться к началу Перейти вниз
Посмотреть профиль
erithion



Количество сообщений : 25
Дата регистрации : 2006-09-18

СообщениеТема: Re: IDA Undo   Чт 18 Дек - 17:04

щас посмотрел - в SDK 5.2 есть. idp.hpp - idpnotify::add_func.
Ильфак в 5.2 много успел добавить - уже сталкивался.

Зато мысль по поводу 4)
Что если при add_func запоминать все, пока очередь анализа не будет пуста. Это то можно. autoIsOk вроде.

и еще, ты не смотрел, есть ли нотификации на изменение данных в базе?
я nalt и netnode хедеры имею ввиду?
Вернуться к началу Перейти вниз
Посмотреть профиль
erithion



Количество сообщений : 25
Дата регистрации : 2006-09-18

СообщениеТема: Re: IDA Undo   Чт 18 Дек - 17:07

по поводу 3) как будто тоже самое, если запоминать все "от забора и до обеда".
Т.е. Undo подлежат все адреса, которые появились в очереди после создания ф-и. Типа единая "транзакция"
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: IDA Undo   Пт 19 Дек - 0:08

erithion пишет:
щас посмотрел - в SDK 5.2 есть. idp.hpp - idpnotify::add_func.
Ильфак в 5.2 много успел добавить - уже сталкивался.

Зато мысль по поводу 4)
Что если при add_func запоминать все, пока очередь анализа не будет пуста. Это то можно. autoIsOk вроде.

и еще, ты не смотрел, есть ли нотификации на изменение данных в базе?
я nalt и netnode хедеры имею ввиду?
В пункте 4) имелось в виду большее. Если ты создаешь функцию, а в пределах нее идет вызов в какой-то код, который ща находится в состоянии undefined, то получается что вроде как ты создавал 1 функцию, а создалось несколько. Ибо анализатор пойдет рекурсивно.
И вот наступает фигня когда ты хочешь сделать undo только для 1 функции верхнего уровня. Изза того что а undo буфер легли и инструкции других функций, которые анализатор создал рекурсивно, ты думаешь что щас удалится одна функция, а выходит что удаляется все дерево.
Вернуться к началу Перейти вниз
Посмотреть профиль
Спонсируемый контент




СообщениеТема: Re: IDA Undo   

Вернуться к началу Перейти вниз
 
IDA Undo
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
eXTracted INternals :: Cтатьи :: Win32 reversing-
Перейти: