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

 eXeL@B —› Основной форум —› Отладка DLL
Посл.ответ Сообщение

Ранг: 10.1 (новичок)
Активность: 0=0
Статус: Участник

Создано: 20 декабря 2005 03:14
· Личное сообщение · #1

Есть программа у которой ввод и проверка рег.кода сделана в виде отдельной DLL'ки. Вопрос следующий. Как брякнуца в Оле на определенной процедуре (ну допустим забора из TEdit'a серийного номера, типа GetDlgItemTextA). Желательно ссылки на туториалы или на пальцах объясните. Заранее спасибо.




Ранг: 467.7 (мудрец), 5thx
Активность: 0.270
Статус: Участник
Иной :)

Создано: 20 декабря 2005 03:35 · Поправил: [HEX]
· Личное сообщение · #2

SimplyLex
Точно так же как и в запускаемой программе. На примере Олли:
Запускаешь программу под Оллей, жмёшь ALT+E и открываем окно в котором видны все подгруженные библиотеки. Выбираешь длл которую тебе надо отлаживать и жмёшь Enter. Попадаешь внутрь неё дальше все тоже самое как с обычной программой. Тоесть ставишь бряк на свою функцию отпускаешь Оллю на свободу, вводишь код, тыкаешь в кнопку и останавливаешься на своём бряке. Поидее особых проблем не должно возникнуть...

-----
Computer Security Laboratory




Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 20 декабря 2005 03:39
· Личное сообщение · #3

Options -> DebugOptions -> BreakOnNewModule(DLL)
Остановишься на входе в длл, а там все как обычно.
Кста, чо за длл-ка. Как наз-ся?

-----
TBR




Ранг: 10.1 (новичок)
Активность: 0=0
Статус: Участник

Создано: 20 декабря 2005 07:41
· Личное сообщение · #4

Grey пишет:
Кста, чо за длл-ка. Как наз-ся?

elcom_reg.dll
Я думаю это процерура регистрации, по типу той что была когда то в ElcomSoft'овских продуктах.



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 20 декабря 2005 07:46 · Поправил: Bitfry
· Личное сообщение · #5

Разница между exe и dll состоит только в том, что dll грузится не обязательно от ImageBase.
То есть если ты в CmbBar пишешь:
bp 401000
(допустим это точка входа в exe).
Ты точно знаешь, что и при следующей загрузке всё будет также.
А вот если ты в dll ставишь бряки, то почти наверняка они не будут иметь смысла при следующем старте программы.
Часто в первый раз dll грузится именно от ImageBase, а вот в следующий раз она уже в памяти висит и просто проецируется на твоё адресное пространство.
В этом случае она будет "садиться" из соображений оптимизации (я не знаю точно, но могу предположить, что это некая дефрагментация).
Короче - динамическая библиотека.
А так всё то же самое.

SimplyLex пишет:
elcom_reg.dll
Я думаю это процерура регистрации,

Обычно библиотека содержит не одну экспортируемую процедуру. Посмотри экспорт, там часто из имени всё понятно =)

-----
Всем привет, я вернулся




Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 20 декабря 2005 08:21
· Личное сообщение · #6

Частенько бывает, что проще обойти ДЛЛ.

-----
TBR





Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 20 декабря 2005 15:46
· Личное сообщение · #7

иногда, можно написать свою Dll пустышку, кот экспортирует нужные защите ф-ии



Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 20 декабря 2005 20:59
· Личное сообщение · #8

Может пора и ссылку дать?

-----
TBR




Ранг: 10.1 (новичок)
Активность: 0=0
Статус: Участник

Создано: 21 декабря 2005 00:18
· Личное сообщение · #9

Grey пишет:
Может пора и ссылку дать?

Могу и ссылку )))
http://mapilab.com/download/ http://mapilab.com/download/
MAPILab File Recovery for Office



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

Создано: 21 декабря 2005 00:33
· Личное сообщение · #10

Grey
Может пора и ссылку дать?
Точно - Павлик Морозов !

SimplyLex
В Оле грузишь прогу, жмешь Alt-E,выбираешь свою DLL, жмешь Ctr-N, выбираешь нужную функцию и ставишь бряк F2 (или ENTER и получаешь листинг данной фукции в окне Олли - а там ставишь бряк, как правило не на первой иструкции что-бы исключить проверку на INT3)




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 21 декабря 2005 11:02 · Поправил: Nimnul
· Личное сообщение · #11

Bitfry пишет:
Часто в первый раз dll грузится именно от ImageBase, а вот в следующий раз она уже в памяти висит и просто проецируется на твоё адресное пространство.


А проецируется она до тех пор пока в область памяти этой длл не было записей, при первом изменении эта длл будет скопированна по другому физическому адресу и спроецированна на теже виртуальные адреса.

-----
have a nice day



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


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