Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› SEH +1 |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 17 июля 2008 01:47 · Личное сообщение · #1 Вообщем трабла такая , у меня часто вызывается сех , это нужно програмно ! Когда выполняется первая АПИ функция , у меня прога падает , почему же ? ... потому что когда я попадаю на следующюю команду после АПИ то при исключении , прога попадает в нетот сех ! а следующий мой сех лежит чуть ниже, следующий после установленного не мной. Следовательно логика уже нарушина. Вопрос элементарный =) но я его не знаю. Нужно как то правильно обработать АПИ без добавления в стэк сех новой структуры. А лучше это чтобы выборочно как то было. Спасибо ... ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 17 июля 2008 10:12 · Личное сообщение · #2 |
|
Создано: 17 июля 2008 11:07 · Личное сообщение · #3 |
|
Создано: 17 июля 2008 14:15 · Поправил: mak · Личное сообщение · #4 asd понятно тем кто програмирует =) dragon Я видел просто ранее такую реализацию. И точно знаю , что это возможно. Так что если не известно это другой вопрос. код тут определение стэка на нулевой и мой в начале проги. . . . push push push push call MessageBox команда вызывающая исключение и попадающая не в мой сех код СЕх xxx xxx xxx xxx СЕх Стэк указатель не на мой СЕХ ;вершина стэка на момент уже выполненой АПИ указатель на мой СЕХ Стэк Но шас ту апи я гляну всеравно , но мне боле6 сех нужен P.S. поправил dragon Да в тему думаю ты всетаки прав. Просто там реализация где я смотрел была как то скрыта чтоли. Копаю далее. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 17 июля 2008 16:17 · Личное сообщение · #5 =) а вот какое дело , оказывается если делать скажем поиск апи и потом месадж бокс вызывать Call eax , где в еах есть адрес апи , то почему то сех не устанавливается =) , тот чужой. Может тогда в проге перерабатывать таблицу импотра в свою ??? хотя это наверно трудная реализация. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 17 июля 2008 18:48 · Личное сообщение · #6 |
|
Создано: 17 июля 2008 20:35 · Личное сообщение · #7 Да поспать это идея классная , как бы ты верно сказал , но оказывается что не так все просто =) , как не странно при вызове апи устанавливается сех новый , отрабатыввает апи и при возврате на след команду на вершине стэка , системный сех. Код простой там нет больше ничего что может так сделать. Скажем, вы написали самый лучший в мире обработчик исключений. Когда происходит что-то плохое, ваш обработчик определяет причину, регистрирует необходимые детали, решает проблему мирового голода и за неделю отменяет назначенную встречу. Кроме того, вы помещаете ваш обработчик в WinMain, чтобы вся программа была охвачена. Теперь, в некотором месте вы вызываете внешний компонент, который никак не можете контролировать. Этот компонент также устанавливает обработчик. При первом же исключении, этот обработчик выходит из программы. Ваш обработчик никогда не получит шанса выполниться, потому что другой обработчик оказался первым в списке обработчиков. Короче говоря, прелести SEH ограничены тем фактом, что обработчики эффективны, пока кто-то глубже в цепи запросов не установил свой собственный обработчик. www.wasm.ru/article.php?article=veh там все описано. Есть программы которые работают Без ВЕХ и не ставят новый сех. Поэтому вопрос актуален ... как это сделать ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 17 июля 2008 20:48 · Личное сообщение · #8 можно попробовать вот так сделать callx macro __xxx
тоесть этот кол будет в пределе моего кода. Переход всмысле ... но тогда надо импортлиб. Подключать , что тоже не очень удобно. Как можно этот jmp поставить рядом с колом ? ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 22 июля 2008 23:16 · Личное сообщение · #9 Млин там не все так просто , после АПИ выполненой падает !!! Гляньте плиз видео я снял специально =) инфа по востановлению добавлена. Спасибо ) d5c6_22.07.2008_CRACKLAB.rU.tgz - xxx.rar ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 22 июля 2008 23:37 · Личное сообщение · #10 mak дык это и так понятно, что после того как ты ставишь свой сех и апи и компоненты ставят свои обработчики и при исключении сами всё обрабатывают, тебе исключение дойдет если они посчитают что это не их ошибка. Если хочешь перехватывать все исключения, то нужно либо ставить VEH либо хукать KiUserExceptionDispatcher либо отлаживать самого себя. Всё, других вариантов нет. ----- Yann Tiersen best and do not fuck |
|
Создано: 23 июля 2008 00:19 · Личное сообщение · #11 =) понимаю такое мнение ... но я видел прогу которая работала в обход всего этого. Я попробую привинтить тогда вех всетаки .. но вариант другой всетаки я надеюсь кто то посоветует. Судите али нет я видел точно !!! без отладки без KiUserExceptionDispatcher и без веха ... ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 23 июля 2008 09:27 · Личное сообщение · #12 Каждая функция должна сама контролировать свои ошибки. Если при выполнениее АПИ произошла ошибка чтения памяти, которой нету или еще что-то, то почему она должна отдавать это исключение вызывающей программе? Подсистема же не знает, как ты там обработаешь эти ошибки и срабтает хэндлер в нтдлл, который и покажет тебе "отправлять, не отправлять отчет". ----- invoke OpenFire |
|
Создано: 23 июля 2008 19:40 · Личное сообщение · #13 |
|
Создано: 21 августа 2008 05:52 · Личное сообщение · #14 |
|
Создано: 21 августа 2008 12:43 · Личное сообщение · #15 =) да с запуском я уже разобрался. Тема старая , товарищ один поднял ее но его сообщения тут не вижу. Code:
тут будет колл в месаджбокс , если же сделать напрямую прога падает сразу , если же через еах то отрабатывает апи. И при возврате на следующую команду , которая опять должна вызвать исключение , она выполняется нормально , не вызывая исключения вообще никакого. Все регистры как во время пошагового исключения выполнения Месаджбокса такие же как после выполнения АПи кроме флага стэка и сеха. Решив поэкспериментировать я поставил ТРАПФЛАГ фручную , и прога сразу заработала до следующего вызова АПИ. Хотя в последующих действиях и в течении первого месаджбокса трап флаг был в 0. Я так понял после выполнения АПИ сбрасывается пошаговое выполнение. Как этому противостоять ? Файл номер 1 , где такой трюк не проходит. И файл номер 2 где выполняется все как надо по данной технике. f941_21.08.2008_CRACKLAB.rU.tgz - xxx.rar ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 03 октября 2008 05:29 · Личное сообщение · #16 |
|
Создано: 08 ноября 2011 16:20 · Личное сообщение · #17 |
|
Создано: 08 ноября 2011 16:22 · Личное сообщение · #18 |
|
Создано: 08 ноября 2011 16:53 · Личное сообщение · #19 Хватит уже лазить по всему форуму, выискивая древние и никому не нужные топики. 1 раз может и не водолаз, но когда это такой лавиной, это явно лишнее. | Сообщение посчитали полезным: redlord |
|
Создано: 08 ноября 2011 16:54 · Личное сообщение · #20 |
|
Создано: 08 ноября 2011 21:22 · Личное сообщение · #21 |
|
Создано: 08 ноября 2011 21:34 · Личное сообщение · #22 |
|
Создано: 08 ноября 2011 21:47 · Личное сообщение · #23 |
|
Создано: 08 ноября 2011 22:53 · Личное сообщение · #24 |
|
Создано: 08 ноября 2011 23:08 · Личное сообщение · #25 |
|
Создано: 08 ноября 2011 23:15 · Личное сообщение · #26 |
|
Создано: 08 ноября 2011 23:18 · Поправил: bowrouco · Личное сообщение · #27 ARCHANGEL Васм же, тот который загнулся с уходом от туда всех людей. Остался хип и бегинерс. А началось всё с подобного как и тут отношения. На аспаках мир клином же не сошёлся. | Сообщение посчитали полезным: HiEndsoft |
|
Создано: 09 ноября 2011 00:06 · Личное сообщение · #28 |
|
Создано: 09 ноября 2011 00:10 · Личное сообщение · #29 |
|
Создано: 09 ноября 2011 00:45 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› SEH +1 |