Правка кода процедуры в runtime
asm
mov al, byte ptr cs:[@edit] //-прекрасно работает-
mov al, 32
mov byte ptr cs:[@edit], al //-при выполнении этой строки вылетает ошибка "access violetion at address..."-
jmp @link
@edit:
db 45
@link:
end
Возможно ли вообще исправить код процедуры, если да то каким образом?
1) Использовать API-функции ReadProcessMemory/WriteProcessMemory и писать без применения ассемблера.
2) В скомпилированном exe'шнике поправить с помощью специальной утилиты атрибуты сегмента кода, разрешив запись в него.
P.S. Строго говоря регистр CS в защищенном режиме содержит селектор, а не адрес сегмента.