Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   Как определить тип ексепшина (https://forum.antichat.xyz/showthread.php?t=68944)

s0lar 01.05.2008 02:35

Как определить тип ексепшина
 
Привет всем, народ кто подскажет как определить тип создавшегося эксепшена в оле...
Access violation when writing to [00130000]
Access violation when reading [FFFFFFFF]
Нет доступа к памяти или деление на 0 или недопустимая операция...непонятно что где...может утилы есть или коды расшифровка...хотя кодов как таковых не видел...вобщем интересно разобраться

taha 01.05.2008 07:16

ээээээээ...
ну вот:
Код:

mov ax,0x6
mov bx,0x0
div bx

F9
смотрим в окно лога...
Видим: Integer division by zero
Смотрим в смом низу, там: Integer division by zero - use Shift F7/F8/F9 ....
Вот те и деление на ноль...
и тд и тп

s0lar 01.05.2008 09:07

Цитата:

Сообщение от TAHA
ээээээээ...
ну вот:
Код:

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]...и все и что тут понятно...из за чего вылетело исключение фиг знает...тоесть другими словами получив тупо такое непонятное исключение как определить что же случилось в приложении такого и из-за чего появилось в проге

_Great_ 01.05.2008 09:20

открываем олю, пишем
Код:

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

_Great_ 01.05.2008 09:22

+ в окне лога пишется исключение и адрес его возникновения:

Log data, item 0
Address=7C901239
Message=Access violation when writing to [00000000]

taha 01.05.2008 09:26

+ ко всему, что мы с Great'ом написали
в окне дизасма пишутся команды, взглянув на которые можно понять, какого хера нет доступа к такой то области памяти

desTiny 01.05.2008 21:10

Цитата:

Сообщение от s0lar
Привет всем, народ кто подскажет как определить тип создавшегося эксепшена в оле...
Access violation when writing to [00130000]
Access violation when reading [FFFFFFFF]
Нет доступа к памяти или деление на 0 или недопустимая операция...непонятно что где...может утилы есть или коды расшифровка...хотя кодов как таковых не видел...вобщем интересно разобраться

Оля ясно ж вроде написала: "Access violation when writing" - нельзя записать, "Access violation when reading" - нельзя прочитать... и т.д.

Может быть, что в проге, к которой ты приаттачился, установлен свой обработчик исключений, так что исключение создаётся специально...

_Great_ 02.05.2008 09:28

Так же стоит отметить, что в kernel32 исключения нарушения доступа используются для внутренних целей.

s0lar 02.05.2008 14:33

ок ..будем разбираться... всем сенкью вери матч


Время: 18:10