Показать сообщение отдельно

  #12  
Старый 24.04.2007, 21:21
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от TaNkist  
Что-то не смог найти реализацию этого смещения в статье. Вроде в коде esp не трогают.
кто поможет?
Хек, я же специально реализовал этот механизм, чтоб исключить появление нулей при изменении длины шэлкода))) но использовать его забыл)))
Код:
        mb_al   = buffer_len and 0xff
        mb_ah   = buffer_len shr 8
        xor     eax, eax
        if      mb_al > 0 & mb_ah > 0
          mov   ax, buffer_len
        else if mb_al > 0 & mb_ah = 0
          mov   ah, mb_al
        else if mb_al = 0 & mb_ah > 0
          mov   ah, mb_ah
        end if
        mov     ebp, esp
        add     ebp, ecode - Begin
Предполагалось вычесть из esp, eax, но я пропустил эту строку)))
Код:
        mb_al   = buffer_len and 0xff
        mb_ah   = buffer_len shr 8
        xor     eax, eax
        if      mb_al > 0 & mb_ah > 0
          mov   ax, buffer_len
        else if mb_al > 0 & mb_ah = 0
          mov   ah, mb_al
        else if mb_al = 0 & mb_ah > 0
          mov   ah, mb_ah
        end if
        sub     esp, eax
        mov     ebp, esp
        add     ebp, ecode - Begin
Кстати пока исправлял, заодно модернизировал ещё одну(теперь одну) инструкцию, вместо
Код:
        mov     ebp, esp
        add     ebp, ecode - Begin
Код:
        lea     ebp, [esp + ecode - Begin]