Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio, Dart Raiden, Alf (+5 невидимых) |
![]() |
eXeL@B —› Основной форум —› API Функция RaiseException или Команда процессора |
Посл.ответ | Сообщение |
|
Создано: 12 октября 2004 08:45 · Личное сообщение · #1 В программе Actual Windows Manager я столкнулся с такой проблеммой: Когда выполняется API функция RaiseException, регистр EIP становится не следующим после команды вызова, а неизвестно какой. Как узнать куда передается выполнение программы? Или же на какой адрес передается выполнение программы после вызова команды процессора SYSENTER? ![]() |
|
Создано: 12 октября 2004 23:59 · Личное сообщение · #2 |
|
Создано: 13 октября 2004 05:54 · Личное сообщение · #3 S_T_A_S_ описание RaiseException я пытался найти, дело в том, что если я что-то и находил, то там описывалось поверхностно и с этого описания нельзя было понять куда передается выполнение программы. У меня OllyDbg v1.09d, там SEH chain нет. Если не затруднит, то напиши в каком сегменте и покакому смещению находится этот обработчик или как узнать адрес обработчика. А SYSENTER это тоже самое что и int 2Eh, только на WinXP он запысывается как SYSENTER. Но куда идет переход после выполнения этого прерывания? ![]() |
|
Создано: 13 октября 2004 05:54 · Поправил: FOKUS · Личное сообщение · #4 |
|
Создано: 13 октября 2004 06:11 · Поправил: nice · Личное сообщение · #5 FOKUS Не обманывай дядюшек, все там есть: Menu->View->SEH Chain Только что посмотрел в 9д правда нет, сорри... "Но куда идет переход после выполнения этого прерывания?" - в ядро ОС в 0 кольцо. Это было расписано в книге: Джеффри РИХТЕР. Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows. http://alexsoft.home.nov.ru/download/prog/Richter__2004_10_06.rar http://alexsoft.home.nov.ru/download/prog/Richter__2004_10_06.rar ----- Подписи - ЗЛО! Нужно убирать! ![]() |
|
Создано: 13 октября 2004 07:16 · Личное сообщение · #6 FOKUS пишет: в каком сегменте и покакому смещению находится этот обработчик или как узнать адрес обработчика. Прога наверняка ставит свои обработчик(и), иначе зачем ей нужно RaiseException. Почитай упаковщики #2 на wasm.ru, там есть про SEH. FOKUS пишет: SYSENTER это тоже самое что и int 2Eh, только на WinXP он запысывается как SYSENTER. Это 2 различные команды, 0F 34 и CD 2E. Ведут они в KiSystemService(). Подробнее есть у Шрайбера. Отлаживать мона айсом. ![]() |
![]() |
eXeL@B —› Основной форум —› API Функция RaiseException или Команда процессора |