Привет всем, народ кто подскажет как определить тип создавшегося эксепшена в оле... Access violation when writing to [00130000] Access violation when reading [FFFFFFFF] Нет доступа к памяти или деление на 0 или недопустимая операция...непонятно что где...может утилы есть или коды расшифровка...хотя кодов как таковых не видел...вобщем интересно разобраться
ээээээээ... ну вот: Code: mov ax,0x6 mov bx,0x0 div bx F9 смотрим в окно лога... Видим: Integer division by zero Смотрим в смом низу, там: Integer division by zero - use Shift F7/F8/F9 .... Вот те и деление на ноль... и тд и тп
согласен показывает, без проблем..вопрос в другом.. запускаем прогу..атачимся олей начинаем мучать прогу смотрим в отладчике вылетел ескепшн например can't read [0x12345678]...и все и что тут понятно...из за чего вылетело исключение фиг знает...тоесть другими словами получив тупо такое непонятное исключение как определить что же случилось в приложении такого и из-за чего появилось в проге
открываем олю, пишем Code: 7C901231 90 NOP 7C901232 90 NOP 7C901233 90 NOP 7C901234 90 NOP 7C901235 90 NOP 7C901236 90 NOP 7C901237 33C0 XOR EAX,EAX 7C901239 > 8900 MOV DWORD PTR DS:[EAX],EAX Жмем F9 Оля брякается на 7C901239 > 8900 MOV DWORD PTR DS:[EAX],EAX и пишет: Access violation when writing to [00000000] - use Shift+F7/F8/F9 to pass exception to program таким образом это и есть то место, на котором исключение вывалилось. А если нужна расшировка кодов статусов (C0000xxx / STATUS_xxx) то я писал прогу: http://gr8.cih.ms/uploads/ntstatus.exe
+ в окне лога пишется исключение и адрес его возникновения: Log data, item 0 Address=7C901239 Message=Access violation when writing to [00000000]
+ ко всему, что мы с Great'ом написали в окне дизасма пишутся команды, взглянув на которые можно понять, какого хера нет доступа к такой то области памяти
Оля ясно ж вроде написала: "Access violation when writing" - нельзя записать, "Access violation when reading" - нельзя прочитать... и т.д. Может быть, что в проге, к которой ты приаттачился, установлен свой обработчик исключений, так что исключение создаётся специально...
Так же стоит отметить, что в kernel32 исключения нарушения доступа используются для внутренних целей.