Некая процедура выполняется в DLLке. Вызывается эта процедура из основной программы или же из другой DLL. Я загрузил исследуемую dll в IDA, приаттачился к процессу, сделал некоторые комментарии, изменил названия функций... но надо теперь исследовать код из которого вызывается функция. Сегмент из которого идет вызов отмечен как debug021 или как-то так. То есть нет информации, какому программному объекту он принадлежит. Загружаю в IDA основную программу, но теперь нет возможности использовать созданные комментарии и т.п. в уже исследованной dll. Как можно указать IDA, что нужная dll уже проходила обработку и присоеденить ее со всеми комментариями?
prustr Попробуй сдампить базу этой длл в idc (File->Produce File->Dump database to IDC file). А потом выполнить этот idc над базой основной программы. Придется только этот idc немного подрихтовать, чтобы исключить совпадение имен сегментов и т.д.
А не как, коментарии в IDA-нужны только для самого тебя, также в компиляторе комментарии нужны только для программиста, при компиляции комментарии в машинный код не добавляются, но в IDA при выходе из программы появляется окно в котором при нажатии кнопки OK появляется файл данных, в том же каталоге что и файл программы, вот в этом файле и могут сохранятся твои комментарии расширение файла *.idb при запуске IDA можешь загрузить этот файл в программу. Что косается ошибки debug021 это не сегмент а ошибка компилятора, для каждого компилятора есть свои коды ошибок описание которых можно найти в литературе.Твоя ошибка скорей всего возникает в *.exe файле при неправильном вызове .dll,но может и в *.dll, просто код может неправильно код оформлен, точно сказать немогу так как незнаю каким компилятором ты пользуешся так как для разных компиляторов свои коды ошибок.
Ок. Спасибо. Не силен в написании скриптов пока. Нужно умных книжек почитать сначала. Вообщем коментарии можно и по новой написать
Вот такой вопрос еще, не могу разобраться, как включить запись трассировки. Делаю, меню debugger | tracing | tracing options устанавливаю размер буфера 0, задаю имя файла, условие остановки оставляю пустым. Запускаю отладку. останавливаю отладку. В итоге в окне трассировки пусто, файл, указанный для записи трассировки не создан. Почему? Что не так?
Разобрался, надо ставит точку останова, включать трасировку функций или инструкций, запускать, тогда все в порядке