Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых) |
![]() |
eXeL@B —› Основной форум —› Воспрос о загрузке DLL (IDA) |
Посл.ответ | Сообщение |
|
Создано: 17 мая 2005 12:33 · Поправил: SGN · Личное сообщение · #1 Есть несколько неясных моментов в работе IDA. Предположим есть EXE файл, использующий для своей работы 3-и (30-ть) DLL. Есть ли способ заставит IDA загружать ВСЕ библиотеки каждый раз по ОДНИМ И ТЕМ ЖЕ адресам? Я пока не могу этого добиться.... Как следствие, всякий раз, когда я начинаю заново анализировать DLL-ки, все добавленные мной комментарии, имена функций и переменных исчезают и дисассемблирование превращается в "тихий ужас"... Был бы очень признателен за разъяснения, как этого "ужаса" можно избежать. PS IDA 4.8 (Wzor) ![]() |
|
Создано: 17 мая 2005 13:29 · Поправил: ssx · Личное сообщение · #2 |
|
Создано: 17 мая 2005 14:00 · Личное сообщение · #3 Скорее всего я не правильно выразился... Суть в следующем: при запуске отладчика, EXE + DLL загружаются и таинственный процесс познания.... ( это понятно +) ) Анализ программы идёт на ура: обнаруженные функции и переменные благополучно переименовываются, комментарии, как и положено, сохраняются там, где их ввели. Всё прекрасно, до.... до окончания отладки и повторного её перезапуска. После этого, все (или почти все) метки, имена функций, комменты куда-то деваются (точнее остаются по прежним адресам) и приходится всё делать сначала. И, как мне кажется, если заставить грузиться все DLL по определённых адресам то моя мега работа, таки, будет продвигаться вперёд. Вот и вопрос: Что сделать, чтобы всё мной обнаруженное, добавленное и переименованное оставалось на своих местах? Кстати, если ли способ, при котором имена функций и переменных сохраняются при загрузке DLL по произвольному адресу, то это было бы ещё лучше! Спасибо. PS Видимо я что-то очень сильно недопонимаю..... ![]() |
|
Создано: 17 мая 2005 14:39 · Личное сообщение · #4 |
|
Создано: 17 мая 2005 14:45 · Личное сообщение · #5 |
|
Создано: 17 мая 2005 14:53 · Личное сообщение · #6 |
|
Создано: 17 мая 2005 14:57 · Личное сообщение · #7 |
|
Создано: 17 мая 2005 15:13 · Личное сообщение · #8 |
|
Создано: 17 мая 2005 15:22 · Личное сообщение · #9 >честно скажу, как заставить все dll грузить по одному и тому же адресу Хочу для ястности уточнить, что не нужно грузить ВСЕ DLL по ОДНОМУ И ТОМУЖЕ (СТРОГО КОНКРЕТНОМУ +) ) АДРЕСУ!! Нужно, чтобы загрузившийсь в ПЕРВЫЙ сеанс по произвольно выбранным адресам, в ПОСЛЕДУЮЩИЕ сеансы анализа эти адреса загрузки DLL НЕ МЕНЯЛИСЬ! Вот... ![]() |
|
Создано: 17 мая 2005 15:26 · Личное сообщение · #10 |
|
Создано: 17 мая 2005 15:39 · Личное сообщение · #11 |
|
Создано: 17 мая 2005 15:53 · Личное сообщение · #12 |
|
Создано: 17 мая 2005 15:58 · Личное сообщение · #13 |
|
Создано: 17 мая 2005 17:05 · Личное сообщение · #14 |
|
Создано: 18 мая 2005 09:54 · Личное сообщение · #15 >ну есть конечно в IDA менюшка patch... Вообще интересно получается... Чтобы была возможность при очередном сеансе анализа программы видеть ВСЕ изменения внесённые на предъидущем шаге нужно "ковырять" (изменять Image Base) оригинальный библиотеки? Что-то очень сомнительно... причём вдвойне.. А как же многочисленные .map, .ids, .pdb, gbg, .flirt файлы? +) Может какой скриптик есть? Может просто есть способ привязывать имена(коменты) не к абсолютным адресам, а к смещениям относительно адресов загрузки кажной конкретной DLL-ки? Вопросы, вопросы, вопросы... От ить, что ж делать то... ![]() |
|
Создано: 18 мая 2005 10:01 · Личное сообщение · #16 |
|
Создано: 18 мая 2005 11:54 · Поправил: TOR · Личное сообщение · #17 |
|
Создано: 18 мая 2005 12:13 · Поправил: SGN · Личное сообщение · #18 При помощи Hiew поменял IВ у двух DLL (из 23)... И что? А ничего.... IDA начал анализ с того, что произвела rebase иследуемой DLL на новый адрес.... Втора загрузилась тоже Х... знает куда. Все имена во второй DLL слетели нафиг... Может можно что-то подкрутить в самом EXE-шнике? PS Такое ощущения, что только я парюсь с анализом и отладной приложений состоящих из кучи DLL А остальные либо этого не делают, либо юзают только 1 DLL-ку +(((((( ![]() |
|
Создано: 18 мая 2005 12:29 · Личное сообщение · #19 |
|
Создано: 19 мая 2005 12:13 · Личное сообщение · #20 |
|
Создано: 19 мая 2005 14:58 · Поправил: SGN · Личное сообщение · #21 infern0 я конечно понимаю, что многого ещё не понимаю, но, право, не настолько же.... Конечно, в качестве дизассемблируемого файла я беру file1.DLL и в project options указываю EXE. C анализом file1.DLL проблем не возникает. Вся беда в том, что EXE использует не одну DLL, а 23... Причём, практически в 95% случаев file1.DLL используется НЕ EXE-ом, а ДРУГИМИ DLL-ми. Думаю не стоит объяснять что это значит и почему у меня теряется отладочная информация в этих ДРУГИХ (во ВСЕХ, кроме анализируемой) DLL. Так как ПРАВИЛЬНО сделать, чтобы отладочная информация сохранялась как минимум в 2-х (ДВУХ) дллельках???? Кстати, Изменение IB DLL не вариант... В некоторых случаях (да что там скрывать почти всегда) изменённые DLL-ки по указанным адресам не загружаются. Ведь из много (23), а IB менялось только у 2-х +) PS Вариант с изменением IB у всех 23-х DLL, просьба, не предлагать +) ![]() |
|
Создано: 19 мая 2005 17:14 · Личное сообщение · #22 еще раз - принцип работы ИДА состоит в том, что все твои комментарии, имена, etc будут сохранатся ТОЛЬКО для сегментов проги, которая была загружена изначально в ИДУ. Все что грузится дополнительно, грузится во временные сегменты и изменения сделанные там исчезнут при закрытии отладчика. is it clear ? Что -бы сохранялись изменения сделанные во второй длл, грузи ее в ИДУ изначально. А на двух стульях одной задницей - это не в этом продукте ![]() ![]() |
|
Создано: 19 мая 2005 18:08 · Личное сообщение · #23 infern0 Есть ли в IDA возможность загрузки необходимых DLL (не считая анализируемой) по требуемым адресам? Возможно ли сохранять имена не по абсолютным адресам, а по смещениям относительно выбранного (например адреса загрузки некоторой DLL)? Или, например, сохранять имена в некотором файле, а затем при загрузке накладывать их на необходимые адреса? ![]() |
|
Создано: 19 мая 2005 21:15 · Личное сообщение · #24 |
|
Создано: 19 мая 2005 22:21 · Личное сообщение · #25 |
|
Создано: 20 мая 2005 11:18 · Личное сообщение · #26 |
![]() |
eXeL@B —› Основной форум —› Воспрос о загрузке DLL (IDA) |