Сейчас на форуме: Slinger (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Бряки в user32? |
Посл.ответ | Сообщение |
|
Создано: 18 февраля 2007 15:07 · Поправил: 0xy · Личное сообщение · #1 ...Случайно попался мне на глаза тутор RSI для новичков: RSI пишет: Теперь будем ставить бряк на MessageBoxA. Что нам надо сделать: 1) Выбираем пункт View -> Exucutable Modules (Ctrl+E) 2) Ставим курсор на библиотеку USER32.DLL именно в ней находится данная функция 3) Нажимаем (Ctrl+N) это значит показать все функции данной библиотеки 4) В появившемся списке ищем MessageBoxA и ставим на нее курсор 5) Теперь ставим бряк на нее(F2) Но ведь, насколько мне известно, на самом деле такое невозможно! Секции кода системных либ (kernel, user, gdi, vervion и еще нескольких)--READ ONLY--соответственно, int3 бряк не поставится. А железный обрабатывается криво: Оля его не перехватывает. Можно разлочить, но брякать нужно оч аккуратно... Или эта ироблема только в 9x, а в NT ее нет??? ![]() |
|
Создано: 18 февраля 2007 20:00 · Личное сообщение · #2 1. Всё проще: ставим плаг CommandBar и пишем в нём "bp MessageBoxA". Всё. Int3-бряк будет на первой команде функции. 2. Каждый процесс обладает собственным виртуальным пространством. Насколько я понял, страница памяти, принадлежащая данному процессу, связана с физическим расположением общей для всех dll, до тех пор, пока ты не изменишь в ней хоть один байт. А потом эта страница копируется исключительно для данного процесса. Как это было в Win9x понятия не имею =/. ----- Всем привет, я вернулся ![]() |
|
Создано: 18 февраля 2007 21:08 · Личное сообщение · #3 |
|
Создано: 18 февраля 2007 21:33 · Личное сообщение · #4 |
|
Создано: 19 февраля 2007 02:37 · Личное сообщение · #5 |
|
Создано: 19 февраля 2007 08:43 · Поправил: 0xy · Личное сообщение · #6 Bitfry пишет: Насколько я понял, страница памяти, принадлежащая данному процессу, связана с физическим расположением общей для всех dll, до тех пор, пока ты не изменишь в ней хоть один байт. А потом эта страница копируется исключительно для данного процесса. Если в NT это так, тогда понятно. AlexZ пишет: В восьмых виндах нельзя ставить бряки внутри системных либ (просто не встанут Поставить то можно, но либа останется общей для всех процессов, со всеми вытекающими... ![]() PE_Kill пишет: Для отладки там создаются переходники А как они создаются? Я знаю только один способ: создать dll--переходник и пропатчить импорт в файле. Но если нсть прот--проверит crc, и ![]() ![]() |
|
Создано: 19 февраля 2007 09:06 · Поправил: AlexZ · Личное сообщение · #7 0xy пишет: Или ка-то можно получить ее персональный экземпляр??? Может как-то и можно. Насколько я понял, страница памяти, принадлежащая данному процессу, связана с физическим расположением общей для всех dll, до тех пор, пока ты не изменишь в ней хоть один байт. А потом эта страница копируется исключительно для данного процесса. Честно говоря, я всегда думал, что в ХР выинда выдаёт всем по экземпляру ДЛЛки зарание, а не при каких-то условиях. ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 19 февраля 2007 09:18 · Личное сообщение · #8 |
![]() |
eXeL@B —› Основной форум —› Бряки в user32? |