Первые проблемы.... дельта смещение

Тема в разделе "WASM.BEGINNERS", создана пользователем Thread, 12 июл 2005.

  1. Thread

    Thread New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2005
    Сообщения:
    26
    Адрес:
    Ukraine
    Приветик... )) Вопрос возможно Вам покажется ламерским, но я в асме совсем новичок... )))

    Вообщем, "Путеводитель по написанию вирусов под Win32"...--> "Ring-3 программирование на уровне пользователя..."

    Проблема на этом участке кода:
    Код (Text):
    1.  
    2. ;---[ CUT HERE ]----------------------------
    3.  
    4.         .586p
    5.         .model  flat
    6.  
    7.  extrn  ExitProcess:PROC
    8.  
    9.         .data
    10.  
    11.  limit  equ     5
    12.  
    13.         db      0
    14.  
    15.  ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-  ·-·-·;
    16.  ;....
    17.  ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-  ·-·-·;
    18.  
    19.         .code
    20.  
    21.  test:
    22.         call    delta
    23.  delta:
    24.         pop     ebp
    25.         sub     ebp,offset delta ; <--ПРОБЛЕМА ТУТ.. при прогонке под отладчиком EBP после этой стр. равен 0х00000000
    26.                  ;почему..? судя по дальнейшему коду, нулю он никак не должен быть равен...
    27.  
    28.         mov     esi,[esp]
    29.         and     esi,0FFFF0000h
    30.         call    GetK32
    31.  
    32.         push    00000000h
    33.         call    ExitProcess
    34.  
    35.  ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-  ·-·-·;
    36.  ;...... comments                          
    37.  ;-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-·-  ·-·-·;
    38.  
    39. GetK32:
    40.  
    41.  __1:
    42.         cmp     byte ptr [ebp+K32_Limit],00h
    43.         jz      WeFailed
    44.  
    45.         cmp     word ptr [esi],"ZM"
    46.         jz      CheckPE
    47.  
    48.  __2:
    49.         sub     esi,10000h
    50.         dec     byte ptr [ebp+K32_Limit]
    51.         jmp     __1
    52.  
    53. ;.......продолжение кода
    54.  
     
  2. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    Код (Text):
    1.  
    2. test:
    3.         call    delta ;= push offset delta
    4.                       ;  jmp delta;  
    5.  delta:
    6.         pop     ebp   ;ebp<-offset delta
    7.         sub     ebp offset delta
    8. ;  offset delta- offset delta = 0
    9.  


    так что всё правильно
     
  3. Thread

    Thread New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2005
    Сообщения:
    26
    Адрес:
    Ukraine
    Код (Text):
    1.  
    2. call    delta ;= push offset delta
    3.               ;  jmp delta;  
    4.  


    Млин.. ну конечно же... Спасибо!

    staier`у РЕСПЕКТ!