Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Возможны ли side effect'ы от наличия INT3 в коде |
Посл.ответ | Сообщение |
|
Создано: 16 сентября 2014 19:09 · Личное сообщение · #1 Приветствую. Есть дизассемблированный код примерно следующего вида: Code:
Инструкция Code:
Но поведение приложения изменяется, если заменить Code:
Code:
Code:
Скажите, пожалуйста, в чём может быть дело? Неужели от одного лишь наличия Code:
Заранее благодарю за возможные ответы. ![]() |
|
Создано: 16 сентября 2014 19:12 · Поправил: colorblind · Личное сообщение · #2 |
|
Создано: 16 сентября 2014 19:15 · Поправил: dosprog · Личное сообщение · #3 |
|
Создано: 16 сентября 2014 19:18 · Личное сообщение · #4 colorblind пишет: в ольке бряки через EBFE реализованы Точно? Просто в документации сказано следующее -- "Ordinary breakpoint, where the first byte of the command you want to break on is replaced by a special command INT3 (Trap to Debugger)". colorblind пишет: А когда ты туда клепаешь INT 3, то происходит необрабатываемое исключение Как оно происходит, если код с INT3 никогда не выполняется? В этом-то и вопрос. Добавлено спустя 2 минуты dosprog пишет: 1) Как это - TEST никогда не исполняется? Во время моих запусков приложения на него никогда не переходило исполнение. dosprog пишет: 2) Каково назначение и результат выполнения инструкции TEST? Какое назначение -- не знаю. Данная инструкция не выполняется, я писал об этом в начале. ![]() |
|
Создано: 16 сентября 2014 19:23 · Личное сообщение · #5 |
|
Создано: 16 сентября 2014 19:26 · Личное сообщение · #6 |
|
Создано: 16 сентября 2014 19:32 · Личное сообщение · #7 |
|
Создано: 16 сентября 2014 19:44 · Поправил: dosprog · Личное сообщение · #8 Archer пишет: На CC в ольке бряки по дефолту. Проверка целостности кода? )) Туплю. b0r3d0m, 1) Если в нетронутом коде на <TEST AL,AL> поставить hardware breakpoint, срабатывает ли на ней останов? 2) После подстановки int3 на ней отладчик останавливается или нет? 3) int3 забиваете в файле или в отладчике в памяти? ![]() |
|
Создано: 16 сентября 2014 21:44 · Личное сообщение · #9 Archer пишет: Проверка целостности кода? А как эту проверку можно осуществить, не подскажете? Запросы в поисковике выдают ссылки на различные статьи с формулами, но, я думаю, это можно как-то сделать программно, верно? dosprog пишет: 1) Если в нетронутом коде на <TEST AL,AL> поставить hardware breakpoint, срабатывает ли на ней останов? Нет, хотя, честно говоря, впервые ими пользуюсь. Может быть, ошибся где-то? Right click -> Breakpoint -> Hardware, on execution. Строчка не выделилась никаким цветом, как в случае с ordinary breakpoint, однако в меню появился вариант "Remove hardware breakpoint". dosprog пишет: 2) После подстановки int3 на ней отладчик останавливается или нет? Нет. dosprog пишет: 3) int3 забиваете в файле или в отладчике в памяти? В отладчике. ![]() |
|
Создано: 16 сентября 2014 22:57 · Личное сообщение · #10 Мало что понял, но попробуйте Hardware, on access на 001DAE99. Может и выловите контроль целостности. ----- Следуй за белым кроликом ![]() |
|
Создано: 16 сентября 2014 23:09 · Личное сообщение · #11 |
|
Создано: 16 сентября 2014 23:14 · Поправил: dosprog · Личное сообщение · #12 |
|
Создано: 16 сентября 2014 23:23 · Личное сообщение · #13 dosprog пишет: Сделайте, как говорит neomant, - если это оно, всё увидите. Я же уже пробовал и написал об этом: Нет, хотя, честно говоря, впервые ими пользуюсь. Может быть, ошибся где-то? Right click -> Breakpoint -> Hardware, on execution. Строчка не выделилась никаким цветом, как в случае с ordinary breakpoint, однако в меню появился вариант "Remove hardware breakpoint". ![]() |
|
Создано: 16 сентября 2014 23:26 · Поправил: dosprog · Личное сообщение · #14 b0r3d0m пишет: Я же уже пробовал и написал об этом: Я писал о Hardware BP on execution, а neomant писал о Hardware BP on access. А вообще ![]() |
|
Создано: 17 сентября 2014 00:00 · Личное сообщение · #15 dosprog пишет: Я писал о Hardware BP on execution, а neomant писал о Hardware BP on access. Всё, теперь понял, спасибо за объяснение. Да, в случае "Hardware BP on access" бряк сработал и выдал сообщение об ошибке со следующим текстом -- "Don't know how to bypass command at address XXXXXXXX. Try to change EIP or pass exception to program". Что это может означать? ![]() |
|
Создано: 17 сентября 2014 00:17 · Личное сообщение · #16 b0r3d0m Это может означать, что отладчик не знает куда ему идти дальше.Просит изменить eip или пропустить исключение. Поэтому можно нажать ОК, а затем Shift+F9, или пропатчить ольку от этой месаги, как и делают многие. Если файл не секретный глянуть можно как-то? А то насоветовать можно много, но лучше просто глянуть на этот чудо-кодес... ![]() |
|
Создано: 17 сентября 2014 11:33 · Личное сообщение · #17 Прошу прощения, насчёт срабатывания hardware breakpoint'а я ошибся -- на самом деле, он срабатывает несколькими инструкциями ранее, на "???", помеченных как "Unknown commands" в OllyDbg (о них я уже Djeck пишет: или пропатчить ольку от этой месаги, как и делают многие. А как это сделать, не подскажете? Djeck пишет: Если файл не секретный глянуть можно как-то? Я бы его и выложил, но для его корректной работы требуется довольно тяжеловесное окружение в несколько Гб. К тому же, тогда Вы можете решить, что я хочу, чтобы Вы решили данную задачу за меня вместо желания учиться. ![]() |
|
Создано: 17 сентября 2014 13:46 · Личное сообщение · #18 |
|
Создано: 17 сентября 2014 13:53 · Личное сообщение · #19 |
|
Создано: 18 сентября 2014 12:00 · Личное сообщение · #20 |
|
Создано: 18 сентября 2014 12:26 · Личное сообщение · #21 в мессаге от DeGlucker есть смысл ![]() ![]() ![]() ----- От многой мудрости много скорби, и умножающий знание умножает печаль ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Возможны ли side effect'ы от наличия INT3 в коде |