опкоды и call

Тема в разделе "WASM.BEGINNERS", создана пользователем Gonzzik, 27 июл 2007.

  1. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    помогите разобратся
    Код (Text):
    1.       xor       eax,eax
    2.  
    3.       push      eax
    4.       push      eax
    5.       push      eax
    6.       lea        ecx,[Thread+ebx]
    7.       push      ecx
    8.       push      eax
    9.       push      eax
    10.   module.CreateThread:
    11.       call      00000000h
    функцией GetProcAddress нашел адрес CreateThread, на место нулей вставляю его
    Код (Text):
    1. mov [module.CreateThread+ebx+1],eax
    Смотрю в отладчике, кол всеравно не указывает туда куда надо, т.е. туда почемуто пишется адрес не тот что еах.
     
  2. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Gonzzik

    Потому-что это смещение от текущего адреса а не абсолютный offset
     
  3. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    а какой опи для кола с обсолютным офсетом
     
  4. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Gonzzik
    Обясню - ты нашел что адрес функции равен допустим 77777777h - но это линейный адрес который и выдает GetProcAddress, так вот если бы код был бы

    mov eax,address
    call eax

    и ты менял бы address в инструкции mov eax,address, то все работало бы на ура. А вот

    call address
    NextInstruction:

    Перейдет по адресу (offset NextInstruction + address) т.е. address в данном случае относительно NextInstruction а не 0000000h как ты считаешь
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А какое яблоко для красного помидора. какой вопрос такой ответ..
     
  6. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    PROFi спасибо