Самомодифицирующийся код

Тема в разделе "WASM.BEGINNERS", создана пользователем Alexandr631, 11 фев 2007.

  1. Alexandr631

    Alexandr631 New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2007
    Сообщения:
    1
    Я пользуюсь компилятором Masm32.
    Пожалуйста скажите кто-нибудь как писать меняющийся код.
    Если пишу например команду
    mov byte ptr cs:[eax],my_var
    eax указывает на байт от которого зависит дальнейший ход выполнения. Программа запускается и на экране появляется сообщение об ошибке.
    B секции .data можно писать mov eax,3454 inc eax dec esi и другие.
    В .datu можно вносить любые изминения, но invoki jmpы callы Masm не компилирует, какие-то сообщения об ошибках выводит и все.
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    В сегмент кода cs нельзя писать в принципе, а в секцию кода можно, если установить ей атрибут writeble и обращаться к ней как к данным (через сегмент ds). Просто
    убери cs и сделай секцию кода RWE (или в проге вызови VirtualProtect) - и будет тебе счастие ;))
     
  3. koderr

    koderr New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2006
    Сообщения:
    205
    А никто не пробовал писать код, который модифицирует сам себя в цикле? и код каждый раз разный.

    Это что-то вроде телевизора, который показывает телевизор, который показывает телевизор...
     
  4. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    koderr
    Хм. Код следующего поколения будет меньше предыдужего. Так что много кадров не вложишь, наверное.