Найти длину команды

Тема в разделе "WASM.ASSEMBLER", создана пользователем xrc2, 4 авг 2008.

  1. xrc2

    xrc2 New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2008
    Сообщения:
    47
    Мне нужно пройтись по opcode'ам зная их hex значение и длину. Под отладчиком смотрю ф-ию MessageBoxA

    Код (Text):
    1. 77D8050B mov     edi, edi
    2. 77D8050D push    ebp
    3. 77D8050E mov     ebp, esp
    4. 77D80510 cmp     ds:dword_77DA041C, 0
    5. 77D80517 jz      short loc_77D8053D
    6. 77D80519 mov     eax, large fs:18h
    7. 77D8051F push    0
    В данном случае:
    push - занимает 1 байт
    mov - 2 байта
    cmp - ???? должен занимать 3 байта, а здесь почему целых 7? как определить?

    в hex:

    Код (Text):
    1. 0x77D8050B  8b ff 55 8b ec 83 3d 1c 04 da 77 00 74 24
    74 24 - это уже начинается jz...
     
  2. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Ужос..
     
  3. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Установи опцию, чтобы отображался опкод. Одни и те же команды в зависимости от входящих в них компонентов могут иметь разные длины. Более того абсолютно одинаковые команды могут кодироваться по-разному, например, add eax,IM / push IM и т.п.
     
  4. k_dmitry

    k_dmitry New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    9
    cmp :
    0x833D 1C04DA77 00

    0x83 - указывает что это cmp и что оно будет сравнивать че-то с байтом
    0x3D - указывает что будет сравнивать память по адресу в виде [disp32]
    0x1C04DA77 - адрес
    0x00 - 0
     
  5. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    k_dmitry
    Советую заглянуть в мануалы интела
     
  6. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    http://www.wasm.ru/forum/viewtopic.php?id=28542