|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 8, 2004 23:55:15 Всё теперь всё работает ... хух... мда... теперь буду делать всё КРАСИВО =).... |
|
|
Дата: Июн 9, 2004 11:40:27 Объясни мне, а то я торможу - зачем ты уменьшал EIP на 1? |
|
|
Дата: Июн 9, 2004 15:43:33 Я же заменил CC на старый байт так?.. ну вот и мне надо чтоб процес пошёл опять по этому байту но только уже... выполнив его нормлаьно я и уменьшил .. адрес... выполнения на 1... поставил старый байт ... и снова запустил процесс.. теперь он заново прошёл по этому месту нормально без останова |
|
|
Дата: Июн 9, 2004 16:34:12 В момент срабатывания исключения EIP указывает как раз на твой CC, разве нет? Если да, то уменьшать его не надо, а если все-таки нет, значит, я что-то напутал. У тебя рабочий код есть, добавь в него проверку EIP, и напиши о результатах, если не трудно. |
|
|
Дата: Июн 9, 2004 16:52:10 EIP указывает на следующую после "пойманной" инструкцию. |
|
|
Дата: Июн 9, 2004 16:58:51 Я точно помню, что, когда я писал свой отладчик, то EIP я не уменьшал, и он у меня указывал именно на СС. Ладно, приду домой - проверю еще раз, о результатах напишу. |
|
|
Дата: Июн 9, 2004 17:09:03 EIP это инструкшан поинтер..... адрес на который указывает... EIP ВСЕГДА содержит код который будет выполнен следующим... ну проверь конечно... но результат должен быть именно такой же... |
|
|
Дата: Июн 9, 2004 20:56:40 Читаем туторы Ицзелиона про Debug API ;-) |
|
|
Дата: Июн 10, 2004 14:13:15 Проверил. Действительно надо отнимать 1, ты прав. А я ошибся, потому что вспомнил немного другой случай - обработка int 3 внутри EH с возвратом ExceptionContinueExecution - там 1 отнимать не нужно. Но тогда я совсем нифига не понимаю. Почему в отладчике EIP указывает на следующую инструкцию, а в обработчике EH - на инструкцию, вызвавшую исключение? Получается, что при возникновении int 3 сначала EIP увеличивается на 1, потом вызывается отладчик, и ему отдается контекст с увеличенным EIP. Потом, если отладчик сделает ContinueDebugEvent(..,..,DBG_EXCEPTION_NOT_HANDLED), то EIP уменьшается на 1, и вызывается обработчик исключения, которому отдается контекст с уменьшенным EIP? "Нич-чего не понимаю." А может быть, уменьшения нету, есть только увеличение, и так даже можно догадаться о наличии отладчика? :-\ |
|
|
Дата: Июн 10, 2004 15:36:03 +) EIP/IP содержит... всегда адрес инструкция которая подлежит выполнению +) (если его конечно ничто не будет модифицировать =))) OpenThread для совместимости с 9Х лучше не использовать... а еспользовать вместо него DuplicateHandle ... а вот чтоже сделать для того чтоб процесс... мог обратится ... к памяти созданной другим процессом.... VirtualAllocEx опять же не хорошо для совместимости.... можеть ... Файл мапинг... ? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.116 |