Как определить тип ексепшина

Discussion in 'Реверсинг' started by s0lar, 1 May 2008.

  1. s0lar

    s0lar Elder - Старейшина

    Joined:
    16 Mar 2008
    Messages:
    63
    Likes Received:
    7
    Reputations:
    1
    Привет всем, народ кто подскажет как определить тип создавшегося эксепшена в оле...
    Access violation when writing to [00130000]
    Access violation when reading [FFFFFFFF]
    Нет доступа к памяти или деление на 0 или недопустимая операция...непонятно что где...может утилы есть или коды расшифровка...хотя кодов как таковых не видел...вобщем интересно разобраться
     
  2. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    ээээээээ...
    ну вот:
    Code:
    mov ax,0x6
    mov bx,0x0
    div bx
    F9
    смотрим в окно лога...
    Видим: Integer division by zero
    Смотрим в смом низу, там: Integer division by zero - use Shift F7/F8/F9 ....
    Вот те и деление на ноль...
    и тд и тп
     
  3. s0lar

    s0lar Elder - Старейшина

    Joined:
    16 Mar 2008
    Messages:
    63
    Likes Received:
    7
    Reputations:
    1
    согласен показывает, без проблем..вопрос в другом..
    запускаем прогу..атачимся олей начинаем мучать прогу смотрим в отладчике вылетел ескепшн например can't read [0x12345678]...и все и что тут понятно...из за чего вылетело исключение фиг знает...тоесть другими словами получив тупо такое непонятное исключение как определить что же случилось в приложении такого и из-за чего появилось в проге
     
    #3 s0lar, 1 May 2008
    Last edited: 1 May 2008
  4. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    открываем олю, пишем
    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
     
  5. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    + в окне лога пишется исключение и адрес его возникновения:

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

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    + ко всему, что мы с Great'ом написали
    в окне дизасма пишутся команды, взглянув на которые можно понять, какого хера нет доступа к такой то области памяти
     
  7. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Оля ясно ж вроде написала: "Access violation when writing" - нельзя записать, "Access violation when reading" - нельзя прочитать... и т.д.

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

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    Так же стоит отметить, что в kernel32 исключения нарушения доступа используются для внутренних целей.
     
    1 person likes this.
  9. s0lar

    s0lar Elder - Старейшина

    Joined:
    16 Mar 2008
    Messages:
    63
    Likes Received:
    7
    Reputations:
    1
    ок ..будем разбираться... всем сенкью вери матч