Я пользуюсь компилятором Masm32. Пожалуйста скажите кто-нибудь как писать меняющийся код. Если пишу например команду mov byte ptr cs:[eax],my_var eax указывает на байт от которого зависит дальнейший ход выполнения. Программа запускается и на экране появляется сообщение об ошибке. B секции .data можно писать mov eax,3454 inc eax dec esi и другие. В .datu можно вносить любые изминения, но invoki jmpы callы Masm не компилирует, какие-то сообщения об ошибках выводит и все.
В сегмент кода cs нельзя писать в принципе, а в секцию кода можно, если установить ей атрибут writeble и обращаться к ней как к данным (через сегмент ds). Просто убери cs и сделай секцию кода RWE (или в проге вызови VirtualProtect) - и будет тебе счастие )
А никто не пробовал писать код, который модифицирует сам себя в цикле? и код каждый раз разный. Это что-то вроде телевизора, который показывает телевизор, который показывает телевизор...
koderr Хм. Код следующего поколения будет меньше предыдужего. Так что много кадров не вложишь, наверное.