eXeL@B —› Основной форум —› Отладка DLL |
Посл.ответ | Сообщение |
|
Создано: 20 декабря 2005 03:14 · Личное сообщение · #1 |
|
Создано: 20 декабря 2005 03:35 · Поправил: [HEX] · Личное сообщение · #2 SimplyLex Точно так же как и в запускаемой программе. На примере Олли: Запускаешь программу под Оллей, жмёшь ALT+E и открываем окно в котором видны все подгруженные библиотеки. Выбираешь длл которую тебе надо отлаживать и жмёшь Enter. Попадаешь внутрь неё дальше все тоже самое как с обычной программой. Тоесть ставишь бряк на свою функцию отпускаешь Оллю на свободу, вводишь код, тыкаешь в кнопку и останавливаешься на своём бряке. Поидее особых проблем не должно возникнуть... ----- Computer Security Laboratory |
|
Создано: 20 декабря 2005 03:39 · Личное сообщение · #3 |
|
Создано: 20 декабря 2005 07:41 · Личное сообщение · #4 |
|
Создано: 20 декабря 2005 07:46 · Поправил: Bitfry · Личное сообщение · #5 Разница между exe и dll состоит только в том, что dll грузится не обязательно от ImageBase. То есть если ты в CmbBar пишешь: bp 401000 (допустим это точка входа в exe). Ты точно знаешь, что и при следующей загрузке всё будет также. А вот если ты в dll ставишь бряки, то почти наверняка они не будут иметь смысла при следующем старте программы. Часто в первый раз dll грузится именно от ImageBase, а вот в следующий раз она уже в памяти висит и просто проецируется на твоё адресное пространство. В этом случае она будет "садиться" из соображений оптимизации (я не знаю точно, но могу предположить, что это некая дефрагментация). Короче - динамическая библиотека. А так всё то же самое. SimplyLex пишет: elcom_reg.dll Я думаю это процерура регистрации, Обычно библиотека содержит не одну экспортируемую процедуру. Посмотри экспорт, там часто из имени всё понятно =) ----- Всем привет, я вернулся |
|
Создано: 20 декабря 2005 08:21 · Личное сообщение · #6 |
|
Создано: 20 декабря 2005 15:46 · Личное сообщение · #7 |
|
Создано: 20 декабря 2005 20:59 · Личное сообщение · #8 |
|
Создано: 21 декабря 2005 00:18 · Личное сообщение · #9 |
|
Создано: 21 декабря 2005 00:33 · Личное сообщение · #10 Grey Может пора и ссылку дать? Точно - Павлик Морозов ! SimplyLex В Оле грузишь прогу, жмешь Alt-E,выбираешь свою DLL, жмешь Ctr-N, выбираешь нужную функцию и ставишь бряк F2 (или ENTER и получаешь листинг данной фукции в окне Олли - а там ставишь бряк, как правило не на первой иструкции что-бы исключить проверку на INT3) |
|
Создано: 21 декабря 2005 11:02 · Поправил: Nimnul · Личное сообщение · #11 Bitfry пишет: Часто в первый раз dll грузится именно от ImageBase, а вот в следующий раз она уже в памяти висит и просто проецируется на твоё адресное пространство. А проецируется она до тех пор пока в область памяти этой длл не было записей, при первом изменении эта длл будет скопированна по другому физическому адресу и спроецированна на теже виртуальные адреса. ----- have a nice day |
eXeL@B —› Основной форум —› Отладка DLL |